mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
one less call
This commit is contained in:
parent
58de6f0033
commit
857224758e
26
src/recur.c
26
src/recur.c
@ -154,7 +154,7 @@ url_dequeue (struct url_queue *queue,
|
|||||||
|
|
||||||
static bool download_child_p (const struct urlpos *, struct url *, int,
|
static bool download_child_p (const struct urlpos *, struct url *, int,
|
||||||
struct url *, struct hash_table *);
|
struct url *, struct hash_table *);
|
||||||
static bool descend_redirect_p (const char *, const char *, int,
|
static bool descend_redirect_p (const char *, struct url *, int,
|
||||||
struct url *, struct hash_table *);
|
struct url *, struct hash_table *);
|
||||||
|
|
||||||
|
|
||||||
@ -264,10 +264,21 @@ retrieve_tree (const char *start_url)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int dt = 0;
|
int dt = 0, url_err;
|
||||||
char *redirected = NULL;
|
char *redirected = NULL;
|
||||||
|
struct url *url_parsed = url_parse (url, &url_err);
|
||||||
|
|
||||||
status = retrieve_url (url, &file, &redirected, referer, &dt, false);
|
if (!url_parsed)
|
||||||
|
{
|
||||||
|
char *error = url_error (url, url_err);
|
||||||
|
logprintf (LOG_NOTQUIET, "%s: %s.\n", url, error);
|
||||||
|
xfree (error);
|
||||||
|
status = URLERROR;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
status = retrieve_url (url, &file, &redirected, referer, &dt, false);
|
||||||
|
}
|
||||||
|
|
||||||
if (html_allowed && file && status == RETROK
|
if (html_allowed && file && status == RETROK
|
||||||
&& (dt & RETROKF) && (dt & TEXTHTML))
|
&& (dt & RETROKF) && (dt & TEXTHTML))
|
||||||
@ -294,7 +305,7 @@ retrieve_tree (const char *start_url)
|
|||||||
want to follow it. */
|
want to follow it. */
|
||||||
if (descend)
|
if (descend)
|
||||||
{
|
{
|
||||||
if (!descend_redirect_p (redirected, url, depth,
|
if (!descend_redirect_p (redirected, url_parsed, depth,
|
||||||
start_url_parsed, blacklist))
|
start_url_parsed, blacklist))
|
||||||
descend = false;
|
descend = false;
|
||||||
else
|
else
|
||||||
@ -306,6 +317,7 @@ retrieve_tree (const char *start_url)
|
|||||||
xfree (url);
|
xfree (url);
|
||||||
url = redirected;
|
url = redirected;
|
||||||
}
|
}
|
||||||
|
url_free(url_parsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opt.spider)
|
if (opt.spider)
|
||||||
@ -656,14 +668,13 @@ download_child_p (const struct urlpos *upos, struct url *parent, int depth,
|
|||||||
it is merely a simple-minded wrapper around download_child_p. */
|
it is merely a simple-minded wrapper around download_child_p. */
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
descend_redirect_p (const char *redirected, const char *original, int depth,
|
descend_redirect_p (const char *redirected, struct url *orig_parsed, int depth,
|
||||||
struct url *start_url_parsed, struct hash_table *blacklist)
|
struct url *start_url_parsed, struct hash_table *blacklist)
|
||||||
{
|
{
|
||||||
struct url *orig_parsed, *new_parsed;
|
struct url *new_parsed;
|
||||||
struct urlpos *upos;
|
struct urlpos *upos;
|
||||||
bool success;
|
bool success;
|
||||||
|
|
||||||
orig_parsed = url_parse (original, NULL);
|
|
||||||
assert (orig_parsed != NULL);
|
assert (orig_parsed != NULL);
|
||||||
|
|
||||||
new_parsed = url_parse (redirected, NULL);
|
new_parsed = url_parse (redirected, NULL);
|
||||||
@ -675,7 +686,6 @@ descend_redirect_p (const char *redirected, const char *original, int depth,
|
|||||||
success = download_child_p (upos, orig_parsed, depth,
|
success = download_child_p (upos, orig_parsed, depth,
|
||||||
start_url_parsed, blacklist);
|
start_url_parsed, blacklist);
|
||||||
|
|
||||||
url_free (orig_parsed);
|
|
||||||
url_free (new_parsed);
|
url_free (new_parsed);
|
||||||
xfree (upos);
|
xfree (upos);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user