From: Lauri Kasanen Date: Tue, 17 Dec 2013 18:03:41 +0000 (+0100) Subject: wget: user-friendly fallback to http X-Git-Tag: 1_22_0~9 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4967a41ba1d17090e764952975c651b22fd183d1;p=oweals%2Fbusybox.git 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 Signed-off-by: Denys Vlasenko --- diff --git a/networking/wget.c b/networking/wget.c index cfbaceced..d6c509edc 100644 --- a/networking/wget.c +++ b/networking/wget.c @@ -274,14 +274,21 @@ static void parse_url(const char *src_url, struct host_info *h) free(h->allocated); h->allocated = url = xstrdup(src_url); - if (strncmp(url, "http://", 7) == 0) { - h->port = bb_lookup_port("http", "tcp", 80); - h->host = url + 7; - h->is_ftp = 0; - } else if (strncmp(url, "ftp://", 6) == 0) { + if (strncmp(url, "ftp://", 6) == 0) { h->port = bb_lookup_port("ftp", "tcp", 21); h->host = url + 6; 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 bb_error_msg_and_die("not an http or ftp url: %s", sanitize_string(url));