X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fretr.c;h=1c587a2cb4bc0dd372915df3ad6a13ac696b03de;hp=1af6d258d8378ff5a489c0667939ead362fda908;hb=2f6aa1d7417df1dfc58597777686fbd77179b9fd;hpb=1cee0861627ce56a880fa300960136aac0cf0fe1 diff --git a/src/retr.c b/src/retr.c index 1af6d258..1c587a2c 100644 --- a/src/retr.c +++ b/src/retr.c @@ -1,6 +1,7 @@ /* File retrieval. Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. + 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, + Inc. This file is part of GNU Wget. @@ -32,9 +33,7 @@ as that of the covered work. */ #include #include -#ifdef HAVE_UNISTD_H -# include -#endif /* HAVE_UNISTD_H */ +#include #include #include #include @@ -209,8 +208,8 @@ fd_read_body (int fd, FILE *out, wgint toread, wgint startpos, { int ret = 0; - static char dlbuf[16384]; - int dlbufsize = sizeof (dlbuf); + int dlbufsize = BUFSIZ; + char *dlbuf = xmalloc (BUFSIZ); struct ptimer *timer = NULL; double last_successful_read_tm = 0; @@ -388,6 +387,8 @@ fd_read_body (int fd, FILE *out, wgint toread, wgint startpos, if (qtywritten) *qtywritten += sum_written; + free (dlbuf); + return ret; } @@ -731,7 +732,8 @@ retrieve_url (struct url * orig_parsed, const char *origurl, char **file, #endif || (proxy_url && proxy_url->scheme == SCHEME_HTTP)) { - result = http_loop (u, &mynewloc, &local_file, refurl, dt, proxy_url, iri); + result = http_loop (u, orig_parsed, &mynewloc, &local_file, refurl, dt, + proxy_url, iri); } else if (u->scheme == SCHEME_FTP) { @@ -867,23 +869,18 @@ retrieve_url (struct url * orig_parsed, const char *origurl, char **file, DEBUGP (("[Couldn't fallback to non-utf8 for %s\n", quote (url))); } - if (local_file && *dt & RETROKF) + if (local_file && u && *dt & RETROKF) { register_download (u->url, local_file); + if (redirection_count && 0 != strcmp (origurl, u->url)) register_redirection (origurl, u->url); + if (*dt & TEXTHTML) register_html (u->url, local_file); - if (*dt & RETROKF) - { - register_download (u->url, local_file); - if (redirection_count && 0 != strcmp (origurl, u->url)) - register_redirection (origurl, u->url); - if (*dt & TEXTHTML) - register_html (u->url, local_file); - if (*dt & TEXTCSS) - register_css (u->url, local_file); - } + + if (*dt & TEXTCSS) + register_css (u->url, local_file); } if (file)