diff --git a/0002-curl-7.32.0-c639d725.patch b/0002-curl-7.32.0-c639d725.patch new file mode 100644 index 0000000..df38dd2 --- /dev/null +++ b/0002-curl-7.32.0-c639d725.patch @@ -0,0 +1,43 @@ +From 8ec06ee49bac9191260b21e52c932da1101d83ef Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Mon, 9 Sep 2013 13:10:53 +0200 +Subject: [PATCH] url: handle abortion by read/write callbacks, too + +Otherwise, the FTP protocol would unnecessarily hang 60 seconds if +aborted in the CURLOPT_HEADERFUNCTION callback. + +Reported by: Tomas Mlcoch +Bug: https://bugzilla.redhat.com/1005686 + +[upstream commit c639d725a37c91fb49bb3a689cb2596fad3a0645] +--- + lib/url.c | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/lib/url.c b/lib/url.c +index 7cec5bc..80e1e67 100644 +--- a/lib/url.c ++++ b/lib/url.c +@@ -5666,12 +5666,18 @@ CURLcode Curl_done(struct connectdata **connp, + conn->dns_entry = NULL; + } + +- if(status == CURLE_ABORTED_BY_CALLBACK) ++ switch(status) { ++ case CURLE_ABORTED_BY_CALLBACK: ++ case CURLE_READ_ERROR: ++ case CURLE_WRITE_ERROR: + /* When we're aborted due to a callback return code it basically have to + be counted as premature as there is trouble ahead if we don't. We have + many callbacks and protocols work differently, we could potentially do + this more fine-grained in the future. */ + premature = TRUE; ++ default: ++ break; ++ } + + /* this calls the protocol-specific function pointer previously set */ + if(conn->handler->done) +-- +1.7.1 + diff --git a/curl.spec b/curl.spec index b716b68..aa109a0 100644 --- a/curl.spec +++ b/curl.spec @@ -1,7 +1,7 @@ Summary: A utility for getting files from remote servers (FTP, HTTP, and others) Name: curl Version: 7.32.0 -Release: 1%{?dist} +Release: 2%{?dist} License: MIT Group: Applications/Internet Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma @@ -10,6 +10,9 @@ Source2: curlbuild.h # make sure that NSS is initialized prior to calling PK11_GenerateRandom() Patch1: 0001-curl-7.32.0-204126a5.patch +# avoid delay if FTP is aborted in CURLOPT_HEADERFUNCTION callback (#1005686) +Patch2: 0002-curl-7.32.0-c639d725.patch + # patch making libcurl multilib ready Patch101: 0101-curl-7.32.0-multilib.patch @@ -108,6 +111,7 @@ documentation of the library, too. # upstream patches %patch1 -p1 +%patch2 -p1 # Fedora patches %patch101 -p1 @@ -226,6 +230,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/aclocal/libcurl.m4 %changelog +* Mon Sep 09 2013 Kamil Dudka 7.32.0-2 +- avoid delay if FTP is aborted in CURLOPT_HEADERFUNCTION callback (#1005686) + * Mon Aug 12 2013 Kamil Dudka 7.32.0-1 - new upstream release - make sure that NSS is initialized prior to calling PK11_GenerateRandom()