rpms/curl/F-13 curl-7.20.1-82e9b78.patch, NONE, 1.1 curl-7.20.1-test-delay.patch, NONE, 1.1 curl.spec, 1.144, 1.145 curl-7.19.7-s390-sleep.patch, 1.3, NONE

Kamil Dudka kdudka at fedoraproject.org
Sat Apr 24 22:37:58 UTC 2010


Author: kdudka

Update of /cvs/extras/rpms/curl/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv10836

Modified Files:
	curl.spec 
Added Files:
	curl-7.20.1-82e9b78.patch curl-7.20.1-test-delay.patch 
Removed Files:
	curl-7.19.7-s390-sleep.patch 
Log Message:
- upstream patch preventing SSL handshake timeout underflow
- eliminated 1s delay in vast mojority of test-cases

curl-7.20.1-82e9b78.patch:
 CHANGES   |    4 ++++
 lib/nss.c |   10 +++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

--- NEW FILE curl-7.20.1-82e9b78.patch ---
>From 82e9b78a388ab539c8784cd853adf6e4a97d52c5 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka at redhat.com>
Date: Sat, 24 Apr 2010 23:21:13 +0200
Subject: [PATCH] nss: fix SSL handshake timeout underflow

 CHANGES   |    4 ++++
 lib/nss.c |   10 +++++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/CHANGES b/CHANGES
index ed1bc29..d1fbd9b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
 
                                   Changelog
 
+Kamil Dudka (24 Apr 2010)
+- Fixed SSL handshake timeout underflow in libcurl-NSS, which caused test405
+  to hang on a slow machine.
+
 Kamil Dudka (4 Apr 2010)
 - Refactorized interface of Curl_ssl_recv()/Curl_ssl_send().
 
diff --git a/lib/nss.c b/lib/nss.c
index cc6d920..fdbc9dc 100644
--- a/lib/nss.c
+++ b/lib/nss.c
@@ -1022,6 +1022,7 @@ CURLcode Curl_nss_connect(struct connectdata *conn, int sockindex)
   int curlerr;
   const int *cipher_to_enable;
   PRSocketOptionData sock_opt;
+  long time_left;
   PRUint32 timeout;
 
   curlerr = CURLE_SSL_CONNECT_ERROR;
@@ -1299,8 +1300,15 @@ CURLcode Curl_nss_connect(struct connectdata *conn, int sockindex)
 
   SSL_SetURL(connssl->handle, conn->host.name);
 
+  /* check timeout situation */
+  time_left = Curl_timeleft(conn, NULL, TRUE);
+  if(time_left < 0L) {
+    failf(data, "timed out before SSL handshake");
+    goto error;
+  }
+  timeout = PR_MillisecondsToInterval((PRUint32) time_left);
+
   /* Force the handshake now */
-  timeout = PR_MillisecondsToInterval(Curl_timeleft(conn, NULL, TRUE));
   if(SSL_ForceHandshakeWithTimeout(connssl->handle, timeout) != SECSuccess) {
     if(conn->data->set.ssl.certverifyresult == SSL_ERROR_BAD_CERT_DOMAIN)
       curlerr = CURLE_PEER_FAILED_VERIFICATION;

curl-7.20.1-test-delay.patch:
 test513 |    2 +-
 test514 |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- NEW FILE curl-7.20.1-test-delay.patch ---
diff -up curl-7.20.1/tests/data/test513.delay curl-7.20.1/tests/data/test513
--- curl-7.20.1/tests/data/test513.delay	2010-04-22 10:00:08.326108258 +0100
+++ curl-7.20.1/tests/data/test513	2010-04-22 11:09:08.342100834 +0100
@@ -17,7 +17,7 @@ lib513
  <name>
 send HTTP POST using read callback that returns CURL_READFUNC_ABORT
  </name>
- <command>
+ <command delay="1">
 http://%HOSTIP:%HTTPPORT/513
 </command>
 </client>
diff -up curl-7.20.1/tests/data/test514.delay curl-7.20.1/tests/data/test514
--- curl-7.20.1/tests/data/test514.delay	2010-04-22 10:00:08.326108258 +0100
+++ curl-7.20.1/tests/data/test514	2010-04-22 11:09:40.192203636 +0100
@@ -29,7 +29,7 @@ lib514
  <name>
 First set options to POST and then to make HEAD
  </name>
- <command>
+ <command delay="1">
 http://%HOSTIP:%HTTPPORT/514
 </command>
 </client>


Index: curl.spec
===================================================================
RCS file: /cvs/extras/rpms/curl/F-13/curl.spec,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -p -r1.144 -r1.145
--- curl.spec	21 Apr 2010 19:20:22 -0000	1.144
+++ curl.spec	24 Apr 2010 22:37:57 -0000	1.145
@@ -19,6 +19,9 @@ Patch2: curl-7.20.0-ff87111.patch
 # bz #565972
 Patch3: curl-7.20.0-ef1ac36.patch
 
+# upstream commit 82e9b78a388ab539c8784cd853adf6e4a97d52c5
+Patch4: curl-7.20.1-82e9b78.patch
+
 # patch making libcurl multilib ready
 Patch101: curl-7.20.0-multilib.patch
 
@@ -31,7 +34,7 @@ Patch103: curl-7.19.4-debug.patch
 # suppress occasional failure of curl test-suite on s390; caused more likely
 # by the test-suite infrastructure than (lib)curl itself
 # http://curl.haxx.se/mail/lib-2009-12/0031.html
-Patch104: curl-7.19.7-s390-sleep.patch
+Patch104: curl-7.20.1-test-delay.patch
 
 # use localhost6 instead of ip6-localhost in the curl test-suite
 Patch105: curl-7.19.7-localhost6.patch
@@ -120,6 +123,7 @@ done
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
 # Fedora patches
 %patch101 -p1
@@ -226,8 +230,11 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/aclocal/libcurl.m4
 
 %changelog
-* Wed Apr 21 2010 Kamil Dudka <kdudka at redhat.com> 7.20.0-4
+* Sun Apr 25 2010 Kamil Dudka <kdudka at redhat.com> 7.20.0-4
 - make curl-config multilib ready again (#584107)
+- upstream patch preventing SSL handshake timeout underflow
+- eliminated 1s delay in vast mojority of test-cases, patch contributed
+  by Paul Howarth
 
 * Wed Apr 07 2010 Kamil Dudka <kdudka at redhat.com> 7.20.0-3
 - add missing quote in libcurl.m4 (#576252)


--- curl-7.19.7-s390-sleep.patch DELETED ---



More information about the scm-commits mailing list