From 9f7f6a62ff3bf2fcf87c9ff64c6c090c1940fd70 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 --- RELEASE-NOTES | 2 ++ lib/transfer.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 304380c69..1d569b3b5 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -47,6 +47,7 @@ This release includes the following bugfixes: o timer: restore PRETRANSFER timing [27] o libcurl.m4: Fix quoting arguments of AC_LANG_PROGRAM [28] o appconnect time fixed for non-blocking connect ssl backends [29] + o do not include SSL handshake into time spent waiting for 100-continue [32] This release includes the following known bugs: @@ -97,3 +98,4 @@ References to bug reports and discussions on issues: [29] = http://curl.haxx.se/mail/lib-2011-12/0211.html [30] = http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTACCEPTTIMOUTMS [31] = http://curl.haxx.se/mail/lib-2011-12/0133.html + [32] = https://bugzilla.redhat.com/767490 diff --git a/lib/transfer.c b/lib/transfer.c index af48253b1..21bf2464c 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);