multi: move the ending condition into the loop as well

... as it was before I changed the loop in commit e04ccbd50. It caused
test 2030 and 2032 to fail.
This commit is contained in:
Daniel Stenberg 2014-11-18 20:51:54 +01:00
parent 36f7b399de
commit b77ff4d589

View File

@ -956,7 +956,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
data->state.pipe_broke = FALSE; data->state.pipe_broke = FALSE;
data->easy_conn = NULL; data->easy_conn = NULL;
break; continue;
} }
if(!data->easy_conn && if(!data->easy_conn &&
@ -1750,22 +1750,23 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
rc = CURLM_CALL_MULTI_PERFORM; rc = CURLM_CALL_MULTI_PERFORM;
} }
} }
if(CURLM_STATE_COMPLETED == data->mstate) {
/* now fill in the Curl_message with this info */
msg = &data->msg;
msg->extmsg.msg = CURLMSG_DONE;
msg->extmsg.easy_handle = data;
msg->extmsg.data.result = result;
rc = multi_addmsg(multi, msg);
multistate(data, CURLM_STATE_MSGSENT);
}
} while(rc == CURLM_CALL_MULTI_PERFORM); } while(rc == CURLM_CALL_MULTI_PERFORM);
data->result = result; data->result = result;
if(CURLM_STATE_COMPLETED == data->mstate) {
/* now fill in the Curl_message with this info */
msg = &data->msg;
msg->extmsg.msg = CURLMSG_DONE;
msg->extmsg.easy_handle = data;
msg->extmsg.data.result = result;
rc = multi_addmsg(multi, msg);
multistate(data, CURLM_STATE_MSGSENT);
}
return rc; return rc;
} }