X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fhttp.c;h=331c2e7923ecf4ef14c495c20a7c0b42ce640d7c;hp=ace3bfe56d1ba4adb8aea31c5884a2a45b6e233c;hb=b7f54921f6618df7750c07ff8807b9f4b0baff06;hpb=04e4bd614db762d241f8f59da6c768f1064cc792 diff --git a/src/http.c b/src/http.c index ace3bfe5..331c2e79 100644 --- a/src/http.c +++ b/src/http.c @@ -2609,6 +2609,7 @@ http_loop (struct url *u, char **newloc, char **local_file, const char *referer, struct_stat st; bool send_head_first = true; char *file_name; + bool force_full_retrieve = false; /* Assert that no value for *LOCAL_FILE was passed. */ assert (local_file == NULL || *local_file == NULL); @@ -2732,7 +2733,9 @@ Spider mode enabled. Check if remote file exists.\n")); *dt &= ~HEAD_ONLY; /* Decide whether or not to restart. */ - if (opt.always_rest + if (force_full_retrieve) + hstat.restval = hstat.len; + else if (opt.always_rest && got_name && stat (hstat.local_file, &st) == 0 && S_ISREG (st.st_mode)) @@ -2920,8 +2923,11 @@ The sizes do not match (local %s) -- retrieving.\n"), } } else - logputs (LOG_VERBOSE, - _("Remote file is newer, retrieving.\n")); + { + force_full_retrieve = true; + logputs (LOG_VERBOSE, + _("Remote file is newer, retrieving.\n")); + } logputs (LOG_VERBOSE, "\n"); }