1
0
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:
mtortonesi 2006-08-21 06:38:15 -07:00
parent a9c3209a9b
commit 8c45a34a55
2 changed files with 60 additions and 52 deletions

View File

@ -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

View File

@ -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;
}