mirror of
https://github.com/curl/curl.git
synced 2024-11-27 05:50:21 +08:00
Curl_poll + Curl_wait_ms: fix timeout return value
Curl_poll and Curl_wait_ms require the fix applied to Curl_socket_check in commitsb61e8b8
andc771968
: When poll or select are interrupted and coincides with the timeout elapsing, the functions return -1 indicating an error instead of 0 for the timeout.
This commit is contained in:
parent
33a95659e2
commit
97d2e4bd75
12
lib/select.c
12
lib/select.c
@ -108,8 +108,10 @@ int Curl_wait_ms(int timeout_ms)
|
||||
if(error && error_not_EINTR)
|
||||
break;
|
||||
pending_ms = timeout_ms - elapsed_ms;
|
||||
if(pending_ms <= 0)
|
||||
if(pending_ms <= 0) {
|
||||
r = 0; /* Simulate a "call timed out" case */
|
||||
break;
|
||||
}
|
||||
} while(r == -1);
|
||||
#endif /* USE_WINSOCK */
|
||||
if(r)
|
||||
@ -432,8 +434,10 @@ int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms)
|
||||
break;
|
||||
if(timeout_ms > 0) {
|
||||
pending_ms = timeout_ms - elapsed_ms;
|
||||
if(pending_ms <= 0)
|
||||
if(pending_ms <= 0) {
|
||||
r = 0; /* Simulate a "call timed out" case */
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while(r == -1);
|
||||
|
||||
@ -517,8 +521,10 @@ int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms)
|
||||
break;
|
||||
if(timeout_ms > 0) {
|
||||
pending_ms = timeout_ms - elapsed_ms;
|
||||
if(pending_ms <= 0)
|
||||
if(pending_ms <= 0) {
|
||||
r = 0; /* Simulate a "call timed out" case */
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while(r == -1);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user