Date: Saturday, January 28, 2012 @ 08:13:35 Author: dreisner Revision: 147941
upgpkg: curl 7.24.0-2 - fix keepalive tuning regression in CLI tool Added: curl/trunk/0001-include-headers-for-tcp-keepalives.patch Modified: curl/trunk/PKGBUILD Deleted: curl/trunk/fix-J-with-O-regression.patch -----------------------------------------------+ 0001-include-headers-for-tcp-keepalives.patch | 31 +++++ PKGBUILD | 8 - fix-J-with-O-regression.patch | 142 ------------------------ 3 files changed, 36 insertions(+), 145 deletions(-) Added: 0001-include-headers-for-tcp-keepalives.patch =================================================================== --- 0001-include-headers-for-tcp-keepalives.patch (rev 0) +++ 0001-include-headers-for-tcp-keepalives.patch 2012-01-28 13:13:35 UTC (rev 147941) @@ -0,0 +1,31 @@ +From d906981b20d41466d040e6cc2570099c8d665f7f Mon Sep 17 00:00:00 2001 +From: Dave Reisner <[email protected]> +Date: Sat, 28 Jan 2012 08:05:02 -0500 +Subject: [PATCH] include headers for tcp-keepalives + +--- + src/tool_cb_skt.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/src/tool_cb_skt.c b/src/tool_cb_skt.c +index 156c110..e74d5e4 100644 +--- a/src/tool_cb_skt.c ++++ b/src/tool_cb_skt.c +@@ -27,6 +27,14 @@ + # include <sys/socket.h> + #endif + ++#ifdef HAVE_NETINET_TCP_H ++# include <netinet/tcp.h> ++#endif ++ ++#ifdef HAVE_NETINET_IN_H ++# include <netinet/in.h> ++#endif ++ + #define ENABLE_CURLX_PRINTF + /* use our own printf() functions */ + #include "curlx.h" +-- +1.7.8.4 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2012-01-28 11:36:42 UTC (rev 147940) +++ PKGBUILD 2012-01-28 13:13:35 UTC (rev 147941) @@ -7,7 +7,7 @@ pkgname=curl pkgver=7.24.0 -pkgrel=1 +pkgrel=2 pkgdesc="An URL retrival utility and library" arch=('i686' 'x86_64') url="http://curl.haxx.se" @@ -15,11 +15,11 @@ depends=('ca-certificates' 'libssh2' 'openssl' 'zlib') options=('!libtool') source=("http://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc} - fix-J-with-O-regression.patch + 0001-include-headers-for-tcp-keepalives.patch curlbuild.h) md5sums=('b93420f80a2baaa61a0f45214eddc2ba' '710242df6bc318d16eea611e7d1b1410' - 'aa4539ec4f4a2dad1663dc22dd3ab0a1' + '84833972c2ff36abb2bfdd4ac065c2e5' '751bd433ede935c8fae727377625a8ae') ptrsize=$(cpp <<<'__SIZEOF_POINTER__' | sed '/^#/d') @@ -34,6 +34,8 @@ build() { cd "$pkgname-$pkgver" + patch -Np1 < "$srcdir/0001-include-headers-for-tcp-keepalives.patch" + ./configure \ --prefix=/usr \ --mandir=/usr/share/man \ Deleted: fix-J-with-O-regression.patch =================================================================== --- fix-J-with-O-regression.patch 2012-01-28 11:36:42 UTC (rev 147940) +++ fix-J-with-O-regression.patch 2012-01-28 13:13:35 UTC (rev 147941) @@ -1,142 +0,0 @@ -From c532604b137cae2e2814280778f914e4cd0460d1 Mon Sep 17 00:00:00 2001 -From: Daniel Stenberg <[email protected]> -Date: Sun, 20 Nov 2011 23:33:46 +0100 -Subject: [PATCH] -J -O: use -O name if no Content-Disposition header comes! - -A regression between 7.22.0 and 7.23.0 -- downloading a file with the -flags -O and -J results in the content being written to stdout if and -only if there was no Content-Disposition header in the http response. If -there is a C-D header with a filename attribute, the output is correctly -written. - -Reported by: Dave Reisner -Bug: http://curl.haxx.se/mail/archive-2011-11/0030.html ---- - src/tool_cb_hdr.c | 3 +- - src/tool_operate.c | 59 ++++++++++++++++++++++---------------------- - src/tool_operhlp.c | 18 +++++++++++++ - tests/data/Makefile.am | 2 +- - tests/data/test1210 | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ - 5 files changed, 112 insertions(+), 33 deletions(-) - create mode 100644 tests/data/test1210 - -diff --git a/src/tool_cb_hdr.c b/src/tool_cb_hdr.c -index fb24b45..dea7338 100644 ---- a/src/tool_cb_hdr.c -+++ b/src/tool_cb_hdr.c -@@ -66,8 +66,7 @@ size_t tool_header_cb(void *ptr, size_t size, size_t nmemb, void *userdata) - } - #endif - -- if(!outs->filename && (cb > 20) && -- checkprefix("Content-disposition:", str)) { -+ if((cb > 20) && checkprefix("Content-disposition:", str)) { - const char *p = str + 20; - - /* look for the 'filename=' parameter -diff --git a/src/tool_operate.c b/src/tool_operate.c -index 7ab815f..1e88120 100644 ---- a/src/tool_operate.c -+++ b/src/tool_operate.c -@@ -576,41 +576,40 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) - - if((urlnode->flags & GETOUT_USEREMOTE) - && config->content_disposition) { -- /* Our header callback sets the filename */ -+ /* Our header callback MIGHT set the filename */ - DEBUGASSERT(!outs.filename); - } -- else { -- if(config->resume_from_current) { -- /* We're told to continue from where we are now. Get the size -- of the file as it is now and open it for append instead */ -- struct_stat fileinfo; -- /* VMS -- Danger, the filesize is only valid for stream files */ -- if(0 == stat(outfile, &fileinfo)) -- /* set offset to current file size: */ -- config->resume_from = fileinfo.st_size; -- else -- /* let offset be 0 */ -- config->resume_from = 0; -- } - -- if(config->resume_from) { -- /* open file for output: */ -- FILE *file = fopen(outfile, config->resume_from?"ab":"wb"); -- if(!file) { -- helpf(config->errors, "Can't open '%s'!\n", outfile); -- res = CURLE_WRITE_ERROR; -- goto quit_urls; -- } -- outs.fopened = TRUE; -- outs.stream = file; -- outs.init = config->resume_from; -- } -- else { -- outs.stream = NULL; /* open when needed */ -+ if(config->resume_from_current) { -+ /* We're told to continue from where we are now. Get the size -+ of the file as it is now and open it for append instead */ -+ struct_stat fileinfo; -+ /* VMS -- Danger, the filesize is only valid for stream files */ -+ if(0 == stat(outfile, &fileinfo)) -+ /* set offset to current file size: */ -+ config->resume_from = fileinfo.st_size; -+ else -+ /* let offset be 0 */ -+ config->resume_from = 0; -+ } -+ -+ if(config->resume_from) { -+ /* open file for output: */ -+ FILE *file = fopen(outfile, config->resume_from?"ab":"wb"); -+ if(!file) { -+ helpf(config->errors, "Can't open '%s'!\n", outfile); -+ res = CURLE_WRITE_ERROR; -+ goto quit_urls; - } -- outs.filename = outfile; -- outs.s_isreg = TRUE; -+ outs.fopened = TRUE; -+ outs.stream = file; -+ outs.init = config->resume_from; -+ } -+ else { -+ outs.stream = NULL; /* open when needed */ - } -+ outs.filename = outfile; -+ outs.s_isreg = TRUE; - } - - if(uploadfile && !stdin_upload(uploadfile)) { -diff --git a/src/tool_operhlp.c b/src/tool_operhlp.c -index 808d2d5..4c1697b 100644 ---- a/src/tool_operhlp.c -+++ b/src/tool_operhlp.c -@@ -178,6 +178,24 @@ CURLcode get_url_file_name(char **filename, const char *url) - return CURLE_OUT_OF_MEMORY; - } - } -+ -+ /* in case we built debug enabled, we allow an environment variable -+ * named CURL_TESTDIR to prefix the given file name to put it into a -+ * specific directory -+ */ -+#ifdef DEBUGBUILD -+ { -+ char *tdir = curlx_getenv("CURL_TESTDIR"); -+ if(tdir) { -+ char buffer[512]; /* suitably large */ -+ snprintf(buffer, sizeof(buffer), "%s/%s", tdir, *filename); -+ Curl_safefree(*filename); -+ *filename = strdup(buffer); /* clone the buffer */ -+ curl_free(tdir); -+ } -+ } -+#endif -+ - return CURLE_OK; - } - --- -1.7.7.3
