aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/multi.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/multi.c b/lib/multi.c
index e4773d06d..159e51e53 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -462,6 +462,13 @@ CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles)
}
}
}
+ else {
+ /* failure detected */
+ Curl_posttransfer(easy->easy_handle);
+ Curl_done(&easy->easy_conn, easy->result);
+ Curl_disconnect(easy->easy_conn); /* close the connection */
+ easy->easy_conn = NULL; /* no more connection */
+ }
break;
case CURLM_STATE_DO_MORE: