aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2015-03-21 22:42:43 +0100
committerDaniel Stenberg <daniel@haxx.se>2015-03-26 08:14:22 +0100
commit318ad8d767a982b33c828d08bf9eddb5b32d21df (patch)
treea215a5cf0d7d3e4f2b6decdd277f45eb6646cf58 /lib
parent83835f7185217416d18e3c54109016a78a71d492 (diff)
multi: on a request completion, check all CONNECT_PEND transfers
... even if they don't have an associated connection anymore. It could leave the waiting transfers pending with no active one on the connection. Bug: http://curl.haxx.se/bug/view.cgi?id=1465 Reported-by: Jiri Dvorak
Diffstat (limited to 'lib')
-rw-r--r--lib/multi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/multi.c b/lib/multi.c
index 94c216e95..4dc7f632a 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1701,14 +1701,15 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
data->state.pipe_broke = FALSE;
+ /* Check if we can move pending requests to send pipe */
+ Curl_multi_process_pending_handles(multi);
+
if(data->easy_conn) {
/* if this has a connection, unsubscribe from the pipelines */
data->easy_conn->writechannel_inuse = FALSE;
data->easy_conn->readchannel_inuse = FALSE;
Curl_removeHandleFromPipeline(data, data->easy_conn->send_pipe);
Curl_removeHandleFromPipeline(data, data->easy_conn->recv_pipe);
- /* Check if we can move pending requests to send pipe */
- Curl_multi_process_pending_handles(multi);
if(disconnect_conn) {
/* Don't attempt to send data over a connection that timed out */