mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Don't abort when one URL references more than one file.
Published in <sxs1yhz0w1m.fsf@florida.arsdigita.de>.
This commit is contained in:
parent
5b575eef31
commit
f031900662
@ -1,3 +1,8 @@
|
||||
2001-12-13 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||
|
||||
* recur.c (register_download): Don't abort when one URL references
|
||||
two different files.
|
||||
|
||||
2001-12-13 Hrvoje Niksic <hniksic@arsdigita.com>
|
||||
|
||||
* http.c (gethttp): Check for conn->scheme, not u->scheme, before
|
||||
|
27
src/recur.c
27
src/recur.c
@ -746,13 +746,32 @@ register_download (const char *url, const char *file)
|
||||
dissociate_urls_from_file (file);
|
||||
}
|
||||
|
||||
hash_table_put (dl_file_url_map, xstrdup (file), xstrdup (url));
|
||||
|
||||
url_only:
|
||||
/* A URL->FILE mapping is not possible without a FILE->URL mapping.
|
||||
If the latter were present, it should have been removed by the
|
||||
above `if'. */
|
||||
assert (!hash_table_contains (dl_url_file_map, url));
|
||||
above `if'. So we could write:
|
||||
|
||||
assert (!hash_table_contains (dl_url_file_map, url));
|
||||
|
||||
The above is correct when running in recursive mode where the
|
||||
same URL always resolves to the same file. But if you do
|
||||
something like:
|
||||
|
||||
wget URL URL
|
||||
|
||||
then the first URL will resolve to "FILE", and the other to
|
||||
"FILE.1". In that case, FILE.1 will not be found in
|
||||
dl_file_url_map, but URL will still point to FILE in
|
||||
dl_url_file_map. */
|
||||
if (hash_table_get_pair (dl_url_file_map, url, &old_url, &old_file))
|
||||
{
|
||||
hash_table_remove (dl_url_file_map, url);
|
||||
xfree (old_url);
|
||||
xfree (old_file);
|
||||
}
|
||||
|
||||
hash_table_put (dl_file_url_map, xstrdup (file), xstrdup (url));
|
||||
url_only:
|
||||
hash_table_put (dl_url_file_map, xstrdup (url), xstrdup (file));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user