multi: call the progress function only once and allow abort
1) no need to call the progress function twice when in the CURLM_STATE_TOOFAST state. 2) Make sure that the progress callback's return code is acknowledged when used
This commit is contained in:
Родитель
51a757c11b
Коммит
01c2b397aa
|
@ -1307,7 +1307,6 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
||||||
|
|
||||||
case CURLM_STATE_TOOFAST: /* limit-rate exceeded in either direction */
|
case CURLM_STATE_TOOFAST: /* limit-rate exceeded in either direction */
|
||||||
/* if both rates are within spec, resume transfer */
|
/* if both rates are within spec, resume transfer */
|
||||||
Curl_pgrsUpdate(easy->easy_conn);
|
|
||||||
if( ( ( easy->easy_handle->set.max_send_speed == 0 ) ||
|
if( ( ( easy->easy_handle->set.max_send_speed == 0 ) ||
|
||||||
( easy->easy_handle->progress.ulspeed <
|
( easy->easy_handle->progress.ulspeed <
|
||||||
easy->easy_handle->set.max_send_speed ) ) &&
|
easy->easy_handle->set.max_send_speed ) ) &&
|
||||||
|
@ -1528,8 +1527,8 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
||||||
|
|
||||||
multistate(easy, CURLM_STATE_COMPLETED);
|
multistate(easy, CURLM_STATE_COMPLETED);
|
||||||
}
|
}
|
||||||
else
|
else if(Curl_pgrsUpdate(easy->easy_conn))
|
||||||
Curl_pgrsUpdate(easy->easy_conn);
|
easy->result = CURLE_ABORTED_BY_CALLBACK;
|
||||||
}
|
}
|
||||||
} while(0);
|
} while(0);
|
||||||
if((CURLM_STATE_COMPLETED == easy->state) && !easy->msg) {
|
if((CURLM_STATE_COMPLETED == easy->state) && !easy->msg) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче