aboutsummaryrefslogtreecommitdiff
path: root/lib/gtls.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2008-11-11 22:19:27 +0000
committerDaniel Stenberg <daniel@haxx.se>2008-11-11 22:19:27 +0000
commit4cbc0f6c2e9557e7aad07abd62e6b836f78134e1 (patch)
tree6774b3454069d4ef8f83b08c72ea0987c9cf3bf8 /lib/gtls.c
parent1b9eff64fa05db155cb5646f25fb3749dcfe0d34 (diff)
- Rainer Canavan filed bug #2255627
(http://curl.haxx.se/bug/view.cgi?id=2255627) which pointed out that a program using libcurl's multi interface to download a HTTPS page with a libcurl built powered by OpenSSL, would easily get silly and instead hand over SSL details as data instead of the actual HTTP headers and body. This happened because libcurl would consider the connection handshake done too early. This problem was introduced at September 22nd 2008 with my fix of the bug #2107377 The correct fix is now instead done within the GnuTLS-handling code, as both the OpenSSL and the NSS code already deal with this situation in similar fashion. I added test case 560 in an attempt to verify this fix, but unfortunately it didn't trigger it even before this fix!
Diffstat (limited to 'lib/gtls.c')
-rw-r--r--lib/gtls.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/gtls.c b/lib/gtls.c
index 17f40ea7d..4a3232cc7 100644
--- a/lib/gtls.c
+++ b/lib/gtls.c
@@ -263,6 +263,11 @@ Curl_gtls_connect(struct connectdata *conn,
struct in_addr addr;
#endif
+ if(conn->ssl[sockindex].state == ssl_connection_complete)
+ /* to make us tolerant against being called more than once for the
+ same connection */
+ return CURLE_OK;
+
if(!gtls_inited)
_Curl_gtls_init();