From 68857e40d69ef792bfcc6d7395c65305a4117c51 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Fri, 8 Jun 2012 23:02:57 +0200 Subject: [PATCH] ssl: fix duplicated SSL handshake with multi interface and proxy Bug: https://bugzilla.redhat.com/788526 Reported by: Enrico Scholz --- RELEASE-NOTES | 3 ++- lib/sslgen.c | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 44dda1f03..fa85b190b 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 a77fd7874..14649a9ec 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); +#else + *done = TRUE; /* fallback to BLOCKING */ + res = curlssl_connect(conn, sockindex); +#endif /* non-blocking connect support */ 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); -#endif /* non-blocking connect support */ } /*