From d978f85d553686714ce408e90280cbcce692f5d4 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 20 Jun 2007 21:57:28 +0000 Subject: [PATCH] Adam Piggott filed bug report #1740263 (http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when getting a large amount of URLs with curl, they were fetched slower and slower... which turned out to be because the --libcurl data collecting which wrongly always was enabled, but no longer is... --- CHANGES | 7 +++++++ RELEASE-NOTES | 3 ++- src/main.c | 26 ++++++++++++++++---------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/CHANGES b/CHANGES index 1de71feb5..18bdd0102 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,13 @@ Changelog +Daniel S (20 June 2007) +- Adam Piggott filed bug report #1740263 + (http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when + getting a large amount of URLs with curl, they were fetched slower and + slower... which turned out to be because the --libcurl data collecting which + wrongly always was enabled, but no longer is... + Daniel S (18 June 2007) - Robson Braga Araujo filed bug report #1739100 (http://curl.haxx.se/bug/view.cgi?id=1739100) that mentioned that libcurl diff --git a/RELEASE-NOTES b/RELEASE-NOTES index b452628cc..21fa2b506 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -59,6 +59,7 @@ This release includes the following bugfixes: o builds fine on 64bit HP-UX o multi interface HTTP CONNECT glitch o list FTP root directories when login dir is not root + o no longer slows down when getting very many URLs on the same command line This release includes the following known bugs: @@ -85,6 +86,6 @@ advice from friends like these: Frank Hempel, Michael Wallner, Jeff Pohlmeyer, Tobias Rundström, Anders Gustafsson, James Bursa, Kristian Gunstone, Feng Tu, Andre Guibert de Bruet, Rob Crittenden, Rich Rauenzahn, Tom Regner, - Dave Vasilevsky, Shmulik Regev, Robson Braga Araujo + Dave Vasilevsky, Shmulik Regev, Robson Braga Araujo, Adam Piggott Thanks! (and sorry if I forgot to mention someone) diff --git a/src/main.c b/src/main.c index 9124747f2..716162126 100644 --- a/src/main.c +++ b/src/main.c @@ -3354,13 +3354,15 @@ output_expected(const char* url, const char* uploadfile) return FALSE; /* non-HTTP upload, probably no output should be expected */ } -#define my_setopt(x,y,z) _my_setopt(x, #y, y, z) +#define my_setopt(x,y,z) _my_setopt(x, config, #y, y, z) static struct curl_slist *easycode; -CURLcode _my_setopt(CURL *curl, const char *name, CURLoption tag, ...); +CURLcode _my_setopt(CURL *curl, struct Configurable *config, const char *name, + CURLoption tag, ...); -CURLcode _my_setopt(CURL *curl, const char *name, CURLoption tag, ...) +CURLcode _my_setopt(CURL *curl, struct Configurable *config, const char *name, + CURLoption tag, ...) { va_list arg; CURLcode ret; @@ -3409,14 +3411,18 @@ CURLcode _my_setopt(CURL *curl, const char *name, CURLoption tag, ...) ret = curl_easy_setopt(curl, tag, oval); } - bufp = curl_maprintf("%scurl_easy_setopt(hnd, %s, %s);%s", - remark?"/* ":"", name, value, - remark?" [REMARK] */":""); + if(config->libcurl) { + /* we only use this for real if --libcurl was used */ - if (!bufp || !curl_slist_append(easycode, bufp)) - ret = CURLE_OUT_OF_MEMORY; - if (bufp) - curl_free(bufp); + bufp = curl_maprintf("%scurl_easy_setopt(hnd, %s, %s);%s", + remark?"/* ":"", name, value, + remark?" [REMARK] */":""); + + if (!bufp || !curl_slist_append(easycode, bufp)) + ret = CURLE_OUT_OF_MEMORY; + if (bufp) + curl_free(bufp); + } va_end(arg); return ret;