From 496002ea1cd76af7fff27166e8a310ed64a434ba Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 1 Mar 2010 21:59:07 +0000 Subject: [PATCH] - Wesley Miaw reported bug #2958179 which identified a case of looping during OpenSSL based SSL handshaking even though the multi interface was used and there was no good reason for it. http://curl.haxx.se/bug/view.cgi?id=2958179 --- CHANGES | 7 +++++++ RELEASE-NOTES | 3 ++- lib/ssluse.c | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 4a79a4c46..7201555c9 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,13 @@ Changelog +Daniel Stenberg (1 Mar 2010) +- Wesley Miaw reported bug #2958179 which identified a case of looping during + OpenSSL based SSL handshaking even though the multi interface was used and + there was no good reason for it. + + http://curl.haxx.se/bug/view.cgi?id=2958179 + Daniel Stenberg (26 Feb 2010) - Pat Ray in bug #2958474 pointed out an off-by-one case when receiving a chunked-encoding trailer. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index b6bd52512..fc63380fc 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -21,6 +21,7 @@ This release includes the following bugfixes: o SMTP: use angle brackets in RCPT TO o curl --trace-time not using local time o off-by-one in the chunked encoding trailer parser + o superfluous blocking for OpenSSL-based SSH connects and multi interface This release includes the following known bugs: @@ -30,6 +31,6 @@ This release would not have looked like this without help, code, reports and advice from friends like these: Steven M. Schweda, Yang Tse, Jack Zhang, Tom Donovan, Martin Hager, - Daniel Fandrich, Patrick Monnerat, Pat Ray + Daniel Fandrich, Patrick Monnerat, Pat Ray, Wesley Miaw Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/ssluse.c b/lib/ssluse.c index 99cf3c3b1..a1b760e08 100644 --- a/lib/ssluse.c +++ b/lib/ssluse.c @@ -2423,7 +2423,7 @@ ossl_connect_common(struct connectdata *conn, } retcode = ossl_connect_step2(conn, sockindex); - if(retcode) + if(retcode || (data->state.used_interface == Curl_if_multi)) return retcode; } /* repeat step2 until all transactions are done. */