1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-12 12:35:04 -05:00

timeouts: move ms timeouts to timediff_t from int and long

Now that all functions in select.[ch] take timediff_t instead
of the limited int or long, we can remove type conversions
and related preprocessor checks to silence compiler warnings.

Avoiding conversions from time_t was already done in 842f73de.

Based upon #5262
Supersedes #5214, #5220 and #5221
Follow up to #5343 and #5479
Closes #5490
This commit is contained in:
Marc Hoersken 2020-06-01 08:49:20 +02:00
parent e2de2d5397
commit 3186f50054
No known key found for this signature in database
GPG Key ID: 61E03CBED7BC859E
5 changed files with 13 additions and 9 deletions

View File

@ -286,7 +286,7 @@ int Curl_resolver_getsock(struct connectdata *conn,
* return number of sockets it worked on * return number of sockets it worked on
*/ */
static int waitperform(struct connectdata *conn, int timeout_ms) static int waitperform(struct connectdata *conn, timediff_t timeout_ms)
{ {
struct Curl_easy *data = conn->data; struct Curl_easy *data = conn->data;
int nfds; int nfds;
@ -437,9 +437,13 @@ CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
while(!result) { while(!result) {
struct timeval *tvp, tv, store; struct timeval *tvp, tv, store;
int itimeout; int itimeout;
int timeout_ms; timediff_t timeout_ms;
itimeout = (timeout > (long)INT_MAX) ? INT_MAX : (int)timeout; #if TIMEDIFF_T_MAX > INT_MAX
itimeout = (timeout > INT_MAX) ? INT_MAX : (int)timeout;
#else
itimeout = (int)timeout;
#endif
store.tv_sec = itimeout/1000; store.tv_sec = itimeout/1000;
store.tv_usec = (itimeout%1000)*1000; store.tv_usec = (itimeout%1000)*1000;
@ -450,7 +454,7 @@ CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
second is left, otherwise just use 1000ms to make sure the progress second is left, otherwise just use 1000ms to make sure the progress
callback gets called frequent enough */ callback gets called frequent enough */
if(!tvp->tv_sec) if(!tvp->tv_sec)
timeout_ms = (int)(tvp->tv_usec/1000); timeout_ms = (timediff_t)(tvp->tv_usec/1000);
else else
timeout_ms = 1000; timeout_ms = 1000;
@ -470,7 +474,7 @@ CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
else if(timediff > timeout) else if(timediff > timeout)
timeout = -1; timeout = -1;
else else
timeout -= (long)timediff; timeout -= timediff;
now = now2; /* for next loop */ now = now2; /* for next loop */
} }
if(timeout < 0) if(timeout < 0)

View File

@ -510,7 +510,7 @@ static CURLcode wait_or_timeout(struct Curl_multi *multi, struct events *ev)
before = Curl_now(); before = Curl_now();
/* wait for activity or timeout */ /* wait for activity or timeout */
pollrc = Curl_poll(fds, numfds, (int)ev->ms); pollrc = Curl_poll(fds, numfds, ev->ms);
after = Curl_now(); after = Curl_now();

View File

@ -1255,7 +1255,7 @@ static CURLMcode Curl_multi_wait(struct Curl_multi *multi,
timeout */ timeout */
else if((sleep_ms < 0) && extrawait) else if((sleep_ms < 0) && extrawait)
sleep_ms = timeout_ms; sleep_ms = timeout_ms;
Curl_wait_ms((int)sleep_ms); Curl_wait_ms(sleep_ms);
} }
} }

View File

@ -69,7 +69,7 @@ int Curl_blockread_all(struct connectdata *conn, /* connection data */
break; break;
} }
if(!timeout_ms) if(!timeout_ms)
timeout_ms = TIME_T_MAX; timeout_ms = TIMEDIFF_T_MAX;
if(SOCKET_READABLE(sockfd, timeout_ms) <= 0) { if(SOCKET_READABLE(sockfd, timeout_ms) <= 0) {
result = ~CURLE_OK; result = ~CURLE_OK;
break; break;

View File

@ -1315,7 +1315,7 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done)
DWORD readfile_read; DWORD readfile_read;
int err; int err;
#else #else
int interval_ms; timediff_t interval_ms;
struct pollfd pfd[2]; struct pollfd pfd[2];
int poll_cnt; int poll_cnt;
curl_off_t total_dl = 0; curl_off_t total_dl = 0;