[git commit] wget: user-friendly fallback to http

Denys Vlasenko vda.linux at googlemail.com
Tue Dec 17 18:09:43 UTC 2013


commit: http://git.busybox.net/busybox/commit/?id=4967a41ba1d17090e764952975c651b22fd183d1
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

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 at operamail.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/wget.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/networking/wget.c b/networking/wget.c
index cfbacec..d6c509e 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:


More information about the busybox-cvs mailing list