mirror of
https://github.com/curl/curl.git
synced 2026-04-15 18:31:46 +03:00
connect: for CONNECT_ONLY, CURLOPT_TIMEOUT does not apply
Since using CONNECT_ONLY is by defintion only a connect, we make the timeleft function return 0 after the connection is done so that it does not - surprisingly - timeout later. Fixes #18991 Reported-by: Pavel P Closes #19204
This commit is contained in:
parent
3692cd837e
commit
48d314f262
2 changed files with 4 additions and 4 deletions
|
|
@ -123,7 +123,7 @@ timediff_t Curl_timeleft(struct Curl_easy *data,
|
|||
before the connect timeout expires and we must acknowledge whichever
|
||||
timeout that is reached first. The total timeout is set per entire
|
||||
operation, while the connect timeout is set per connect. */
|
||||
if(data->set.timeout <= 0 && !duringconnect)
|
||||
if((!data->set.timeout || data->set.connect_only) && !duringconnect)
|
||||
return 0; /* no timeout in place or checked, return "no limit" */
|
||||
|
||||
if(!nowp) {
|
||||
|
|
@ -131,9 +131,9 @@ timediff_t Curl_timeleft(struct Curl_easy *data,
|
|||
nowp = &now;
|
||||
}
|
||||
|
||||
if(data->set.timeout > 0) {
|
||||
if(data->set.timeout) {
|
||||
timeleft_ms = data->set.timeout -
|
||||
curlx_timediff(*nowp, data->progress.t_startop);
|
||||
curlx_timediff(*nowp, data->progress.t_startop);
|
||||
if(!timeleft_ms)
|
||||
timeleft_ms = -1; /* 0 is "no limit", fake 1 ms expiry */
|
||||
if(!duringconnect)
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ timediff_t Curl_pp_state_timeout(struct Curl_easy *data,
|
|||
full response to arrive before we bail out */
|
||||
timeout_ms = response_time - curlx_timediff(now, pp->response);
|
||||
|
||||
if((data->set.timeout > 0) && !disconnecting) {
|
||||
if(data->set.timeout && !disconnecting) {
|
||||
/* if timeout is requested, find out how much overall remains */
|
||||
timediff_t timeout2_ms = Curl_timeleft(data, &now, FALSE);
|
||||
/* pick the lowest number */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue