From 1fa3b90235c40b0932f4e8f9edb592140a9299ec Mon Sep 17 00:00:00 2001 From: hniksic Date: Mon, 18 Feb 2002 22:09:57 -0800 Subject: [PATCH] [svn] Handle starting URL of recursing download being non-parsable. Published in . --- src/ChangeLog | 5 +++++ src/recur.c | 19 ++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) 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. */