[curl] avoid unnecessary timeout event when waiting for 100-continue (#767490)

Kamil Dudka kdudka at fedoraproject.org
Sun Dec 25 22:41:15 UTC 2011


commit 6322c91cccd0950dc6aa559658823b160d92bf7f
Author: Kamil Dudka <kdudka at redhat.com>
Date:   Sun Dec 25 23:28:57 2011 +0100

    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 deletions(-)
---
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 <kdudka at redhat.com>
+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 <kdudka at redhat.com> 7.23.0-3
+- avoid unnecessary timeout event when waiting for 100-continue (#767490)
+
 * Mon Nov 21 2011 Kamil Dudka <kdudka at redhat.com> 7.23.0-2
 - curl -JO now uses -O name if no C-D header comes (upstream commit c532604)
 


More information about the scm-commits mailing list