wget: user-friendly fallback to http
GNU wget: wget google.com // ok bb before: wget google.com // wget: not an http or ftp url function old new delta parse_url 317 339 +22 Signed-off-by: Lauri Kasanen <curaga@operamail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
4b26f82c78
commit
4967a41ba1
@ -274,14 +274,21 @@ static void parse_url(const char *src_url, struct host_info *h)
|
|||||||
free(h->allocated);
|
free(h->allocated);
|
||||||
h->allocated = url = xstrdup(src_url);
|
h->allocated = url = xstrdup(src_url);
|
||||||
|
|
||||||
if (strncmp(url, "http://", 7) == 0) {
|
if (strncmp(url, "ftp://", 6) == 0) {
|
||||||
h->port = bb_lookup_port("http", "tcp", 80);
|
|
||||||
h->host = url + 7;
|
|
||||||
h->is_ftp = 0;
|
|
||||||
} else if (strncmp(url, "ftp://", 6) == 0) {
|
|
||||||
h->port = bb_lookup_port("ftp", "tcp", 21);
|
h->port = bb_lookup_port("ftp", "tcp", 21);
|
||||||
h->host = url + 6;
|
h->host = url + 6;
|
||||||
h->is_ftp = 1;
|
h->is_ftp = 1;
|
||||||
|
} else
|
||||||
|
if (strncmp(url, "http://", 7) == 0) {
|
||||||
|
h->host = url + 7;
|
||||||
|
http:
|
||||||
|
h->port = bb_lookup_port("http", "tcp", 80);
|
||||||
|
h->is_ftp = 0;
|
||||||
|
} else
|
||||||
|
if (!strstr(url, "//")) {
|
||||||
|
// GNU wget is user-friendly and falls back to http://
|
||||||
|
h->host = url;
|
||||||
|
goto http;
|
||||||
} else
|
} else
|
||||||
bb_error_msg_and_die("not an http or ftp url: %s", sanitize_string(url));
|
bb_error_msg_and_die("not an http or ftp url: %s", sanitize_string(url));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user