mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Fixed a timestamping related bug in HTTP downloads.
This commit is contained in:
parent
a9c3209a9b
commit
8c45a34a55
@ -1,3 +1,7 @@
|
||||
2006-08-21 Mauro Tortonesi <mauro@ferrara.linux.it>
|
||||
|
||||
* http.c: Fixed timestamping-related bug.
|
||||
|
||||
2006-08-16 Mauro Tortonesi <mauro@ferrara.linux.it>
|
||||
|
||||
* http.c: Fixed bug which broke --continue feature. Now if -c is
|
||||
|
34
src/http.c
34
src/http.c
@ -1740,9 +1740,6 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
|
||||
}
|
||||
}
|
||||
|
||||
DEBUGP (("hs->local_file is: %s %s\n", hs->local_file,
|
||||
file_exists_p (hs->local_file) ? "(existing)" : "(not existing)"));
|
||||
|
||||
/* TODO: perform this check only once. */
|
||||
if (file_exists_p (hs->local_file))
|
||||
{
|
||||
@ -1806,7 +1803,7 @@ File `%s' already there; not retrieving.\n\n"), hs->local_file);
|
||||
/* Try to stat() the .orig file. */
|
||||
if (stat (filename_plus_orig_suffix, &st) == 0)
|
||||
{
|
||||
local_dot_orig_file_exists = 1;
|
||||
local_dot_orig_file_exists = true;
|
||||
local_filename = filename_plus_orig_suffix;
|
||||
}
|
||||
}
|
||||
@ -2019,8 +2016,6 @@ File `%s' already there; not retrieving.\n\n"), hs->local_file);
|
||||
else
|
||||
*dt &= ~TEXTHTML;
|
||||
|
||||
DEBUGP (("TEXTHTML is %s.\n", *dt | TEXTHTML ? "on": "off"));
|
||||
|
||||
if (opt.html_extension && (*dt & TEXTHTML))
|
||||
/* -E / --html-extension / html_extension = on was specified, and this is a
|
||||
text/html file. If some case-insensitive variation on ".htm[l]" isn't
|
||||
@ -2230,7 +2225,7 @@ http_loop (struct url *u, char **newloc, char **local_file, const char *referer,
|
||||
int *dt, struct url *proxy)
|
||||
{
|
||||
int count;
|
||||
bool got_head = false; /* used for time-stamping */
|
||||
bool got_head = false; /* used for time-stamping and filename detection */
|
||||
bool got_name = false;
|
||||
char *tms;
|
||||
const char *tmrate;
|
||||
@ -2433,6 +2428,8 @@ http_loop (struct url *u, char **newloc, char **local_file, const char *referer,
|
||||
/* Did we get the time-stamp? */
|
||||
if (!got_head)
|
||||
{
|
||||
bool restart_loop = false;
|
||||
|
||||
if (opt.timestamping && !hstat.remote_time)
|
||||
{
|
||||
logputs (LOG_NOTQUIET, _("\
|
||||
@ -2446,15 +2443,13 @@ Last-modified header missing -- time-stamps turned off.\n"));
|
||||
logputs (LOG_VERBOSE, _("\
|
||||
Last-modified header invalid -- time-stamp ignored.\n"));
|
||||
}
|
||||
}
|
||||
|
||||
/* The time-stamping section. */
|
||||
if (opt.timestamping && !got_head)
|
||||
if (opt.timestamping)
|
||||
{
|
||||
if (hstat.orig_file_name) /* Perform this check only if the file we're
|
||||
supposed to download already exists. */
|
||||
{
|
||||
got_head = true; /* no more time-stamping */
|
||||
*dt &= ~HEAD_ONLY;
|
||||
count = 0; /* the retrieve count for HEAD is reset */
|
||||
|
||||
if (hstat.remote_time && tmr != (time_t) (-1))
|
||||
{
|
||||
/* Now time-stamping can be used validly. Time-stamping
|
||||
@ -2485,15 +2480,24 @@ The sizes do not match (local %s) -- retrieving.\n"),
|
||||
|
||||
logputs (LOG_VERBOSE, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* free_hstat (&hstat); */
|
||||
hstat.timestamp_checked = true;
|
||||
continue;
|
||||
restart_loop = true;
|
||||
}
|
||||
|
||||
if (opt.always_rest && !got_name)
|
||||
if (opt.always_rest)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user