easy: do not ignore poll() failures other than EINTR
This commit is contained in:
parent
83a42ee20e
commit
491e026ccd
@ -53,6 +53,7 @@ This release includes the following bugfixes:
|
|||||||
o docs: updates HTML index and general improvements
|
o docs: updates HTML index and general improvements
|
||||||
o curlbuild.h.dist: enhance non-configure GCC ABI detection logic
|
o curlbuild.h.dist: enhance non-configure GCC ABI detection logic
|
||||||
o sasl: Fixed null pointer reference when decoding empty digest challenge [8]
|
o sasl: Fixed null pointer reference when decoding empty digest challenge [8]
|
||||||
|
o easy: do not ignore poll() failures other than EINTR
|
||||||
|
|
||||||
This release includes the following known bugs:
|
This release includes the following known bugs:
|
||||||
|
|
||||||
|
12
lib/easy.c
12
lib/easy.c
@ -441,11 +441,19 @@ CURLcode curl_easy_perform(CURL *easy)
|
|||||||
|
|
||||||
while(!done && !mcode) {
|
while(!done && !mcode) {
|
||||||
int still_running;
|
int still_running;
|
||||||
|
int ret;
|
||||||
|
|
||||||
mcode = curl_multi_wait(multi, NULL, 0, 1000, NULL);
|
mcode = curl_multi_wait(multi, NULL, 0, 1000, &ret);
|
||||||
|
|
||||||
|
if(mcode == CURLM_OK) {
|
||||||
|
if(ret == -1) {
|
||||||
|
/* poll() failed not on EINTR, indicate a network problem */
|
||||||
|
code = CURLE_RECV_ERROR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if(mcode == CURLM_OK)
|
|
||||||
mcode = curl_multi_perform(multi, &still_running);
|
mcode = curl_multi_perform(multi, &still_running);
|
||||||
|
}
|
||||||
|
|
||||||
/* only read 'still_running' if curl_multi_perform() return OK */
|
/* only read 'still_running' if curl_multi_perform() return OK */
|
||||||
if((mcode == CURLM_OK) && !still_running) {
|
if((mcode == CURLM_OK) && !still_running) {
|
||||||
|
Loading…
Reference in New Issue
Block a user