From: hniksic Date: Tue, 19 Feb 2002 06:09:57 +0000 (-0800) Subject: [svn] Handle starting URL of recursing download being non-parsable. X-Git-Tag: v1.13~1833 X-Git-Url: http://sjero.net/git/?p=wget;a=commitdiff_plain;h=1fa3b90235c40b0932f4e8f9edb592140a9299ec [svn] Handle starting URL of recursing download being non-parsable. Published in . --- diff --git a/src/ChangeLog b/src/ChangeLog index e22b1bbc..15139f19 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2002-02-19 Hrvoje Niksic + + * recur.c (retrieve_tree): Handle the case when start_url doesn't + parse. + 2002-02-19 Andreas Damm * wget.h (DO_REALLOC_FROM_ALLOCA): Multiply with sizeof(type) when diff --git a/src/recur.c b/src/recur.c index a20f7d5f..a1fe72ae 100644 --- a/src/recur.c +++ b/src/recur.c @@ -186,15 +186,24 @@ retrieve_tree (const char *start_url) uerr_t status = RETROK; /* The queue of URLs we need to load. */ - struct url_queue *queue = url_queue_new (); + struct url_queue *queue; /* The URLs we do not wish to enqueue, because they are already in the queue, but haven't been downloaded yet. */ - struct hash_table *blacklist = make_string_hash_table (0); + struct hash_table *blacklist; - /* We'll need various components of this, so better get it over with - now. */ - struct url *start_url_parsed = url_parse (start_url, NULL); + int up_error_code; + struct url *start_url_parsed = url_parse (start_url, &up_error_code); + + if (!start_url_parsed) + { + logprintf (LOG_NOTQUIET, "%s: %s.\n", start_url, + url_error (up_error_code)); + return URLERROR; + } + + queue = url_queue_new (); + blacklist = make_string_hash_table (0); /* Enqueue the starting URL. Use start_url_parsed->url rather than just URL so we enqueue the canonical form of the URL. */