summaryrefslogtreecommitdiff
path: root/networking/wget.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/wget.c')
-rw-r--r--networking/wget.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/networking/wget.c b/networking/wget.c
index cfbaceced..d6c509edc 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -274,15 +274,22 @@ 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));
// FYI: