From: Mike Crowe Date: Fri, 18 Feb 2011 22:19:14 +0000 (+0100) Subject: multi: close connection on timeout X-Git-Tag: curl-7_21_5~151 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c4369f34b9b493cbed4e7bcafa77614e9d55055d;p=thirdparty%2Fcurl.git multi: close connection on timeout After a request times out, the connection wasn't properly closed and prevented to get re-used, so subsequent transfers could still mistakenly get to use the previously aborted connection. --- diff --git a/lib/multi.c b/lib/multi.c index 31127028dd..91d92df90b 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1003,6 +1003,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, Curl_tvdiff(now, data->progress.t_startsingle), k->bytecount, k->size); } + + /* Force the connection closed because the server could continue to + send us stuff at any time. (The disconnect_conn logic used below + doesn't work at this point). */ + easy->easy_conn->bits.close = TRUE; easy->result = CURLE_OPERATION_TIMEDOUT; multistate(easy, CURLM_STATE_COMPLETED); break;