From: Micah Cowan Date: Tue, 9 Oct 2007 07:12:51 +0000 (-0700) Subject: Put send_head_first check where it needs to be. X-Git-Tag: v1.13~519 X-Git-Url: http://sjero.net/git/?p=wget;a=commitdiff_plain;h=e402ae37f4ef475525e64820323e0861590d2511 Put send_head_first check where it needs to be. --- diff --git a/src/ChangeLog b/src/ChangeLog index e6e4d480..6b742600 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2007-10-08 Micah Cowan + + * http.c (http_loop): Add send_head_first conditional back + around code that needs it, but not around the last-modified + header-parsing stuff this time. Removed no-longer-useful (was it + ever?) restart_loop boolean, continuing unconditionally at end + of send_head_first conditional block (if we haven't jumped out). + 2007-10-04 Micah Cowan * http.c (http_loop): We've got_name if content_disposition diff --git a/src/http.c b/src/http.c index b82abdda..67e9a989 100644 --- a/src/http.c +++ b/src/http.c @@ -2545,7 +2545,7 @@ Remote file does not exist -- broken link!!!\n")); /* Did we get the time-stamp? */ if (!got_head) { - bool restart_loop = false; + got_head = true; /* no more time-stamping */ if (opt.timestamping && !hstat.remote_time) { @@ -2563,92 +2563,87 @@ Last-modified header invalid -- time-stamp ignored.\n")); time_came_from_head = true; } - /* The time-stamping section. */ - if (opt.timestamping) + if (send_head_first) { - if (hstat.orig_file_name) /* Perform the following checks only - if the file we're supposed to - download already exists. */ + /* The time-stamping section. */ + if (opt.timestamping) { - if (hstat.remote_time && - tmr != (time_t) (-1)) + if (hstat.orig_file_name) /* Perform the following + checks only if the file + we're supposed to + download already exists. */ { - /* Now time-stamping can be used validly. Time-stamping - means that if the sizes of the local and remote file - match, and local file is newer than the remote file, - it will not be retrieved. Otherwise, the normal - download procedure is resumed. */ - if (hstat.orig_file_tstamp >= tmr) + if (hstat.remote_time && + tmr != (time_t) (-1)) { - if (hstat.contlen == -1 - || hstat.orig_file_size == hstat.contlen) + /* Now time-stamping can be used validly. + Time-stamping means that if the sizes of + the local and remote file match, and local + file is newer than the remote file, it will + not be retrieved. Otherwise, the normal + download procedure is resumed. */ + if (hstat.orig_file_tstamp >= tmr) { - logprintf (LOG_VERBOSE, _("\ + if (hstat.contlen == -1 + || hstat.orig_file_size == hstat.contlen) + { + logprintf (LOG_VERBOSE, _("\ Server file no newer than local file `%s' -- not retrieving.\n\n"), - hstat.orig_file_name); - ret = RETROK; - goto exit; - } - else - { - logprintf (LOG_VERBOSE, _("\ + hstat.orig_file_name); + ret = RETROK; + goto exit; + } + else + { + logprintf (LOG_VERBOSE, _("\ The sizes do not match (local %s) -- retrieving.\n"), - number_to_static_string (hstat.orig_file_size)); + number_to_static_string (hstat.orig_file_size)); + } } - } - else - logputs (LOG_VERBOSE, - _("Remote file is newer, retrieving.\n")); + else + logputs (LOG_VERBOSE, + _("Remote file is newer, retrieving.\n")); - logputs (LOG_VERBOSE, "\n"); + logputs (LOG_VERBOSE, "\n"); + } } + + /* free_hstat (&hstat); */ + hstat.timestamp_checked = true; } - /* free_hstat (&hstat); */ - hstat.timestamp_checked = true; - restart_loop = true; - } - - if (opt.spider) - { - if (opt.recursive) + if (opt.spider) { - if (*dt & TEXTHTML) + if (opt.recursive) { - logputs (LOG_VERBOSE, _("\ + if (*dt & TEXTHTML) + { + logputs (LOG_VERBOSE, _("\ Remote file exists and could contain links to other resources -- retrieving.\n\n")); - restart_loop = true; + } + else + { + logprintf (LOG_VERBOSE, _("\ +Remote file exists but does not contain any link -- not retrieving.\n\n")); + ret = RETROK; /* RETRUNNEEDED is not for caller. */ + goto exit; + } } - else + else { logprintf (LOG_VERBOSE, _("\ -Remote file exists but does not contain any link -- not retrieving.\n\n")); +Remote file exists but recursion is disabled -- not retrieving.\n\n")); ret = RETROK; /* RETRUNNEEDED is not for caller. */ goto exit; } } - else - { - logprintf (LOG_VERBOSE, _("\ -Remote file exists but recursion is disabled -- not retrieving.\n\n")); - ret = RETROK; /* RETRUNNEEDED is not for caller. */ - goto exit; - } - } - if (send_head_first) - { got_name = true; - restart_loop = true; - } - - got_head = true; /* no more time-stamping */ - *dt &= ~HEAD_ONLY; - count = 0; /* the retrieve count for HEAD is reset */ - - if (restart_loop) - continue; - } + *dt &= ~HEAD_ONLY; + count = 0; /* the retrieve count for HEAD is reset */ + continue; + } /* send_head_first */ + } /* !got_head */ if ((tmr != (time_t) (-1)) && ((hstat.len == hstat.contlen) ||