aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/multi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/multi.c b/lib/multi.c
index 21ed99c74..f97345a6f 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -339,9 +339,12 @@ CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles)
if(connected)
easy->result = Curl_protocol_connect(easy->easy_conn, NULL);
- if(CURLE_OK != easy->result)
+ if(CURLE_OK != easy->result) {
/* failure detected */
+ Curl_disconnect(easy->easy_conn); /* close the connection */
+ easy->easy_conn = NULL; /* no more connection */
break;
+ }
if(connected) {
/* after the connect has completed, go DO */