Dmitriy Sergeyev found and fixed a multi interface flaw when using asynch

name resolves. It could get stuck in the wrong state.
This commit is contained in:
Daniel Stenberg 2006-08-31 12:53:39 +00:00
parent c9c8ee3796
commit d7168a82e2
3 changed files with 14 additions and 3 deletions

View file

@ -639,8 +639,12 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
is already freed and gone */
easy->easy_conn = NULL; /* no more connection */
else {
/* FIX: what if protocol_connect is TRUE here?! */
multistate(easy, CURLM_STATE_WAITCONNECT);
/* call again please so that we get the next socket setup */
result = CURLM_CALL_MULTI_PERFORM;
if(protocol_connect)
multistate(easy, CURLM_STATE_DO);
else
multistate(easy, CURLM_STATE_WAITCONNECT);
}
}