From: Giuseppe Scrivano Date: Tue, 13 Jul 2010 23:23:17 +0000 (+0200) Subject: Take the maximum value between RETR and SIZE bytes counts for the file size X-Git-Tag: v1.13~124 X-Git-Url: http://sjero.net/git/?p=wget;a=commitdiff_plain;h=6ef8c69c9d34bbb750ddcd2062e668fb0d941cff Take the maximum value between RETR and SIZE bytes counts for the file size --- diff --git a/src/ChangeLog b/src/ChangeLog index 78dfb977..d337b4a7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2010-07-14 Giuseppe Scrivano + + * ftp.c (max): Add definition. + (getftp): Consider for`expected_bytes' the greatest value between the bytes + count returned by SIZE and the bytes count returned by RETR. + 2010-07-11 Giuseppe Scrivano * http.c (http_loop): New variable `force_full_retrieve'. If the remote diff --git a/src/ftp.c b/src/ftp.c index 298f4b98..c5ac8303 100644 --- a/src/ftp.c +++ b/src/ftp.c @@ -63,6 +63,8 @@ as that of the covered work. */ #define LIST_FILENAME ".listing" #endif +#define max(a, b) ((a > b) ? (a) : (b)) + typedef struct { int st; /* connection status */ @@ -1019,7 +1021,9 @@ Error in server response, closing control connection.\n")); if (!opt.server_response) logputs (LOG_VERBOSE, _("done.\n")); - expected_bytes = ftp_expected_bytes (ftp_last_respline); + + expected_bytes = max (ftp_expected_bytes (ftp_last_respline), + expected_bytes); } /* do retrieve */ if (cmd & DO_LIST) @@ -1065,7 +1069,8 @@ Error in server response, closing control connection.\n")); } if (!opt.server_response) logputs (LOG_VERBOSE, _("done.\n")); - expected_bytes = ftp_expected_bytes (ftp_last_respline); + expected_bytes = max (ftp_expected_bytes (ftp_last_respline), + expected_bytes); } /* cmd & DO_LIST */ if (!(cmd & (DO_LIST | DO_RETR)) || (opt.spider && !(cmd & DO_LIST)))