From 35089a4289747bb4b15f00cf602d28fa3c913fdf Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Mon, 23 Sep 2002 12:44:45 +0000
Subject: [PATCH] properly disconnect failed connections

---
 lib/multi.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/multi.c b/lib/multi.c
index 21ed99c743..f97345a6fd 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 */
-- 
GitLab