1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

[svn] Read the data in skip_short_body directly.

This commit is contained in:
hniksic 2003-11-30 06:33:00 -08:00
parent 2f357b5eb8
commit 381457408a
3 changed files with 23 additions and 14 deletions

View File

@ -1,3 +1,8 @@
2003-11-30 Hrvoje Niksic <hniksic@xemacs.org>
* http.c (skip_short_body): Renamed skip_body to skip_short_body;
don't bother calling fd_read_body.
2003-11-30 Hrvoje Niksic <hniksic@xemacs.org>
* retr.c (fd_read_body): Sanitize arguments and document them

View File

@ -740,27 +740,31 @@ parse_content_range (const char *hdr, long *first_byte_ptr,
return 1;
}
/* Read the body of the request, but don't store it anywhere. This is
useful when reading error responses that are not logged anywhere,
but which need to be read so the same connection can be reused. */
/* Read the body of the request, but don't store it anywhere and don't
display a progress gauge. This is useful for reading the error
responses whose bodies don't need to be displayed or logged, but
which need to be read anyway. */
static void
skip_body (int fd, long contlen)
skip_short_body (int fd, long contlen)
{
int oldverbose;
long dummy;
/* Skipping the body doesn't make sense if the content length is
unknown because, in that case, persistent connections cannot be
used. (#### This is not the case with HTTP/1.1 where they can
still be used with the magic of the "chunked" transfer!) */
if (contlen == -1)
return;
DEBUGP (("Skipping %ld bytes of body data... ", contlen));
oldverbose = opt.verbose;
opt.verbose = 0;
fd_read_body (fd, NULL, contlen, 1, 0, &dummy, NULL);
opt.verbose = oldverbose;
while (contlen > 0)
{
char dlbuf[512];
int ret = fd_read (fd, dlbuf, MIN (contlen, sizeof (dlbuf)), -1);
if (ret <= 0)
return;
contlen -= ret;
}
DEBUGP (("done.\n"));
}
/* Persistent connections. Currently, we cache the most recently used
@ -1470,7 +1474,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
if (statcode == HTTP_STATUS_UNAUTHORIZED)
{
/* Authorization is required. */
skip_body (sock, contlen);
skip_short_body (sock, contlen);
CLOSE_FINISH (sock);
if (auth_tried_already || !(user && passwd))
{
@ -1575,7 +1579,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
hs->newloc ? hs->newloc : _("unspecified"),
hs->newloc ? _(" [following]") : "");
if (keep_alive)
skip_body (sock, contlen);
skip_short_body (sock, contlen);
CLOSE_FINISH (sock);
xfree_null (type);
return NEWLOCATION;

View File

@ -179,7 +179,7 @@ static struct {
{ "passwd", &opt.ftp_pass, cmd_string },
{ "postdata", &opt.post_data, cmd_string },
{ "postfile", &opt.post_file_name, cmd_file },
{ "preservepermissions", &opt.preserve_perm, cmd_boolean },
{ "preservepermissions", &opt.preserve_perm, cmd_boolean },
{ "progress", &opt.progress_type, cmd_spec_progress },
{ "proxypasswd", &opt.proxy_passwd, cmd_string },
{ "proxyuser", &opt.proxy_user, cmd_string },