mirror of
https://github.com/curl/curl.git
synced 2026-07-25 09:47:49 +03:00
multi: do CURLM_CALL_MULTI_PERFORM at two more places
... when it does a state transition but there is no particular socket or
timer activity. This was made apparent when commit b5bb84c removed a
superfluous timer expiry.
Reported-by: Dan Fandrich.
Fixes #12033
Closes #12056
This commit is contained in:
parent
9243ed6f4b
commit
07008ee8ac
1 changed files with 4 additions and 1 deletions
|
|
@ -2125,9 +2125,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
|||
}
|
||||
if(!result)
|
||||
result = protocol_connect(data, &protocol_connected);
|
||||
if(!result && !protocol_connected)
|
||||
if(!result && !protocol_connected) {
|
||||
/* switch to waiting state */
|
||||
multistate(data, MSTATE_PROTOCONNECTING);
|
||||
rc = CURLM_CALL_MULTI_PERFORM;
|
||||
}
|
||||
else if(!result) {
|
||||
/* protocol connect has completed, go WAITDO or DO */
|
||||
multistate(data, MSTATE_DO);
|
||||
|
|
@ -2214,6 +2216,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
|||
/* DO was not completed in one function call, we must continue
|
||||
DOING... */
|
||||
multistate(data, MSTATE_DOING);
|
||||
rc = CURLM_CALL_MULTI_PERFORM;
|
||||
}
|
||||
|
||||
/* after DO, go DO_DONE... or DO_MORE */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue