From: Kamil Dudka Date: Fri, 8 Jun 2012 21:02:57 +0000 (+0200) Subject: ssl: fix duplicated SSL handshake with multi interface and proxy X-Git-Tag: curl-7_27_0~249 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=68857e40d69ef792bfcc6d7395c65305a4117c51;p=thirdparty%2Fcurl.git ssl: fix duplicated SSL handshake with multi interface and proxy Bug: https://bugzilla.redhat.com/788526 Reported by: Enrico Scholz --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 44dda1f037..fa85b190b0 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -24,6 +24,7 @@ This release includes the following bugfixes: o cmdline: made -D option work with -O and -J o configure: Fix libcurl.pc and curl-config generation for static MingW* cross builds + o ssl: fix duplicated SSL handshake with multi interface and proxy [1] This release includes the following known bugs: @@ -39,4 +40,4 @@ advice from friends like these: References to bug reports and discussions on issues: - + [1] = https://bugzilla.redhat.com/788526 diff --git a/lib/sslgen.c b/lib/sslgen.c index a77fd78740..14649a9ec5 100644 --- a/lib/sslgen.c +++ b/lib/sslgen.c @@ -211,18 +211,18 @@ CURLcode Curl_ssl_connect_nonblocking(struct connectdata *conn, int sockindex, bool *done) { -#ifdef curlssl_connect_nonblocking CURLcode res; /* mark this is being ssl requested from here on. */ conn->ssl[sockindex].use = TRUE; +#ifdef curlssl_connect_nonblocking res = curlssl_connect_nonblocking(conn, sockindex, done); - if(!res && *done) - Curl_pgrsTime(conn->data, TIMER_APPCONNECT); /* SSL is connected */ - return res; #else *done = TRUE; /* fallback to BLOCKING */ - return Curl_ssl_connect(conn, sockindex); + res = curlssl_connect(conn, sockindex); #endif /* non-blocking connect support */ + if(!res && *done) + Curl_pgrsTime(conn->data, TIMER_APPCONNECT); /* SSL is connected */ + return res; } /*