From: Steven Schubiger Date: Tue, 2 Mar 2010 20:41:32 +0000 (+0100) Subject: Check stricter for supported URL scheme. X-Git-Tag: v1.13~193 X-Git-Url: http://sjero.net/git/?p=wget;a=commitdiff_plain;h=33d8b23dfd9bbcfd247908d948a22a9783fc060b Check stricter for supported URL scheme. --- diff --git a/src/ChangeLog b/src/ChangeLog index 0ee92fdc..216a8102 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2010-03-02 Steven Schubiger + + * retr.c (retrieve_from_file): Improve checking for a URL + by invoking url_valid_scheme instead of url_has_scheme. + + * url.c (url_valid_scheme): New function. + + * url.h: Add declaration for url_valid_scheme. + 2010-03-02 Steven Schubiger * retr.c (retrieve_from_file): Free memory of input file. diff --git a/src/retr.c b/src/retr.c index 55d5be78..74b9dccb 100644 --- a/src/retr.c +++ b/src/retr.c @@ -899,7 +899,7 @@ retrieve_from_file (const char *file, bool html, int *count) set_uri_encoding (iri, opt.locale, true); set_content_encoding (iri, opt.locale); - if (url_has_scheme (url)) + if (url_valid_scheme (url)) { int dt,url_err; uerr_t status; diff --git a/src/url.c b/src/url.c index d0b94a98..ffc62a7e 100644 --- a/src/url.c +++ b/src/url.c @@ -463,6 +463,13 @@ url_has_scheme (const char *url) return *p == ':'; } +bool +url_valid_scheme (const char *url) +{ + enum url_scheme scheme = url_scheme (url); + return scheme != SCHEME_INVALID; +} + int scheme_default_port (enum url_scheme scheme) { diff --git a/src/url.h b/src/url.h index 278b71dd..0c0d87a3 100644 --- a/src/url.h +++ b/src/url.h @@ -94,6 +94,7 @@ void url_free (struct url *); enum url_scheme url_scheme (const char *); bool url_has_scheme (const char *); +bool url_valid_scheme (const char *); int scheme_default_port (enum url_scheme); void scheme_disable (enum url_scheme);