mirror of
https://github.com/moparisthebest/curl
synced 2024-12-24 00:58:48 -05:00
multi: set the EXPIRE_*TIMEOUT timers at TIMER_STARTSINGLE time
To make sure Curl_timeleft() also thinks the timeout has been reached when one of the EXPIRE_*TIMEOUTs expires. Bug: https://curl.haxx.se/mail/lib-2019-01/0073.html Reported-by: Zhao Yisha Closes #3501
This commit is contained in:
parent
427fa512be
commit
6f61933adf
@ -1454,6 +1454,12 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
|||||||
case CURLM_STATE_CONNECT:
|
case CURLM_STATE_CONNECT:
|
||||||
/* Connect. We want to get a connection identifier filled in. */
|
/* Connect. We want to get a connection identifier filled in. */
|
||||||
Curl_pgrsTime(data, TIMER_STARTSINGLE);
|
Curl_pgrsTime(data, TIMER_STARTSINGLE);
|
||||||
|
if(data->set.timeout)
|
||||||
|
Curl_expire(data, data->set.timeout, EXPIRE_TIMEOUT);
|
||||||
|
|
||||||
|
if(data->set.connecttimeout)
|
||||||
|
Curl_expire(data, data->set.connecttimeout, EXPIRE_CONNECTTIMEOUT);
|
||||||
|
|
||||||
result = Curl_connect(data, &async, &protocol_connect);
|
result = Curl_connect(data, &async, &protocol_connect);
|
||||||
if(CURLE_NO_CONNECTION_AVAILABLE == result) {
|
if(CURLE_NO_CONNECTION_AVAILABLE == result) {
|
||||||
/* There was no connection available. We will go to the pending
|
/* There was no connection available. We will go to the pending
|
||||||
|
@ -1558,12 +1558,6 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
|
|||||||
Curl_pgrsResetTransferSizes(data);
|
Curl_pgrsResetTransferSizes(data);
|
||||||
Curl_pgrsStartNow(data);
|
Curl_pgrsStartNow(data);
|
||||||
|
|
||||||
if(data->set.timeout)
|
|
||||||
Curl_expire(data, data->set.timeout, EXPIRE_TIMEOUT);
|
|
||||||
|
|
||||||
if(data->set.connecttimeout)
|
|
||||||
Curl_expire(data, data->set.connecttimeout, EXPIRE_CONNECTTIMEOUT);
|
|
||||||
|
|
||||||
/* In case the handle is re-used and an authentication method was picked
|
/* In case the handle is re-used and an authentication method was picked
|
||||||
in the session we need to make sure we only use the one(s) we now
|
in the session we need to make sure we only use the one(s) we now
|
||||||
consider to be fine */
|
consider to be fine */
|
||||||
|
Loading…
Reference in New Issue
Block a user