From 6322c91cccd0950dc6aa559658823b160d92bf7f Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Sun, 25 Dec 2011 23:28:57 +0100 Subject: [PATCH] avoid unnecessary timeout event when waiting for 100-continue (#767490) --- 0002-curl-7.23.0-9f7f6a6.patch | 32 ++++++++++++++++++++++++++++++++ curl.spec | 9 ++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 0002-curl-7.23.0-9f7f6a6.patch diff --git a/0002-curl-7.23.0-9f7f6a6.patch b/0002-curl-7.23.0-9f7f6a6.patch new file mode 100644 index 0000000..f653d72 --- /dev/null +++ b/0002-curl-7.23.0-9f7f6a6.patch @@ -0,0 +1,32 @@ +From a8063d1e74cd86d0bbabee87aa57e660a08aca62 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Sun, 25 Dec 2011 22:37:24 +0100 +Subject: [PATCH] transfer: avoid unnecessary timeout event when waiting for 100-continue + +The commit 9dd85bc unintentionally changed the way we compute the time +spent waiting for 100-continue. In particular, when using a SSL client +certificate, the time spent by SSL handshake was included and could +cause the CURL_TIMEOUT_EXPECT_100 timeout to be mistakenly fired up. + +Bug: https://bugzilla.redhat.com/767490 +Reported by: Mamoru Tasaka +--- + lib/transfer.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/lib/transfer.c b/lib/transfer.c +index e56fffd..3d82571 100644 +--- a/lib/transfer.c ++++ b/lib/transfer.c +@@ -2364,7 +2364,7 @@ Curl_setup_transfer( + (data->state.proto.http->sending == HTTPSEND_BODY)) { + /* wait with write until we either got 100-continue or a timeout */ + k->exp100 = EXP100_AWAITING_CONTINUE; +- k->start100 = k->start; ++ k->start100 = Curl_tvnow(); + + /* set a timeout for the multi interface */ + Curl_expire(data, CURL_TIMEOUT_EXPECT_100); +-- +1.7.1 + diff --git a/curl.spec b/curl.spec index 0c28a4f..2dd2ba8 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.23.0 -Release: 2%{?dist} +Release: 3%{?dist} License: MIT Group: Applications/Internet Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma @@ -11,6 +11,9 @@ Source3: hide_selinux.c # -J -O: use -O name if no Content-Disposition header comes! Patch1: 0001-curl-7.23.0-c532604.patch +# transfer: avoid unnecessary timeout event when waiting for 100-continue +Patch2: 0002-curl-7.23.0-9f7f6a6.patch + # patch making libcurl multilib ready Patch101: 0101-curl-7.21.1-multilib.patch @@ -111,6 +114,7 @@ done # upstream patches %patch1 -p1 +%patch2 -p1 # Fedora patches %patch101 -p1 @@ -224,6 +228,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/aclocal/libcurl.m4 %changelog +* Sun Dec 25 2011 Kamil Dudka 7.23.0-3 +- avoid unnecessary timeout event when waiting for 100-continue (#767490) + * Mon Nov 21 2011 Kamil Dudka 7.23.0-2 - curl -JO now uses -O name if no C-D header comes (upstream commit c532604)