mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
[svn] Check for wildcards in unescaped URL path.
This commit is contained in:
parent
79c4490734
commit
ee18acce0a
@ -1,3 +1,12 @@
|
|||||||
|
2005-05-08 Hrvoje Niksic <hniksic@xemacs.org>
|
||||||
|
|
||||||
|
* http.c (http_loop): Check for wildcards in the URL path
|
||||||
|
component, not in the whole URL.
|
||||||
|
|
||||||
|
* ftp.c (ftp_loop): Check for wildcards in URL path before
|
||||||
|
unescaping, so the users can escape globbing metacharacters with %
|
||||||
|
escapes.
|
||||||
|
|
||||||
2005-05-08 Hrvoje Niksic <hniksic@xemacs.org>
|
2005-05-08 Hrvoje Niksic <hniksic@xemacs.org>
|
||||||
|
|
||||||
* init.c (run_command): Correctly interpret the return value of
|
* init.c (run_command): Correctly interpret the return value of
|
||||||
|
18
src/ftp.c
18
src/ftp.c
@ -1850,15 +1850,25 @@ ftp_loop (struct url *u, int *dt, struct url *proxy)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int wild = has_wildcards_p (u->file);
|
int ispattern = 0;
|
||||||
if ((opt.ftp_glob && wild) || opt.recursive || opt.timestamping)
|
if (opt.ftp_glob)
|
||||||
|
{
|
||||||
|
/* Treat the URL as a pattern if the file name part of the
|
||||||
|
URL path contains wildcards. (Don't check for u->file
|
||||||
|
because it is unescaped and therefore doesn't leave users
|
||||||
|
the option to escape literal '*' as %2A.) */
|
||||||
|
char *file_part = strrchr (u->path, '/');
|
||||||
|
if (!file_part)
|
||||||
|
file_part = u->path;
|
||||||
|
ispattern = has_wildcards_p (file_part);
|
||||||
|
}
|
||||||
|
if (ispattern || opt.recursive || opt.timestamping)
|
||||||
{
|
{
|
||||||
/* ftp_retrieve_glob is a catch-all function that gets called
|
/* ftp_retrieve_glob is a catch-all function that gets called
|
||||||
if we need globbing, time-stamping or recursion. Its
|
if we need globbing, time-stamping or recursion. Its
|
||||||
third argument is just what we really need. */
|
third argument is just what we really need. */
|
||||||
res = ftp_retrieve_glob (u, &con,
|
res = ftp_retrieve_glob (u, &con,
|
||||||
(opt.ftp_glob && wild)
|
ispattern ? GLOB_GLOBALL : GLOB_GETONE);
|
||||||
? GLOB_GLOBALL : GLOB_GETONE);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
res = ftp_loop_internal (u, NULL, &con);
|
res = ftp_loop_internal (u, NULL, &con);
|
||||||
|
@ -2004,10 +2004,8 @@ http_loop (struct url *u, char **newloc, char **local_file, const char *referer,
|
|||||||
|
|
||||||
*newloc = NULL;
|
*newloc = NULL;
|
||||||
|
|
||||||
/* Warn on (likely bogus) wildcard usage in HTTP. Don't use
|
/* Warn on (likely bogus) wildcard usage in HTTP. */
|
||||||
has_wildcards_p because it would also warn on `?', and we know that
|
if (has_wildcards_p (u->path))
|
||||||
shows up in CGI paths a *lot*. */
|
|
||||||
if (strchr (u->url, '*'))
|
|
||||||
logputs (LOG_VERBOSE, _("Warning: wildcards not supported in HTTP.\n"));
|
logputs (LOG_VERBOSE, _("Warning: wildcards not supported in HTTP.\n"));
|
||||||
|
|
||||||
xzero (hstat);
|
xzero (hstat);
|
||||||
|
Loading…
Reference in New Issue
Block a user