From 5325b92a0a3c2b29a4be03ed88c14972114774af Mon Sep 17 00:00:00 2001 From: Marc Hoersken Date: Mon, 1 Jun 2020 08:32:21 +0200 Subject: select: always use Sleep in Curl_wait_ms on Win32 Since Win32 almost always will also have USE_WINSOCK, we can reduce complexity and always use Sleep there. Assisted-by: Jay Satiro Reviewed-by: Daniel Stenberg Follow up to #5343 Closes #5489 --- lib/select.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/lib/select.c b/lib/select.c index 08468216f..ca0e24fb1 100644 --- a/lib/select.c +++ b/lib/select.c @@ -86,16 +86,12 @@ int Curl_wait_ms(timediff_t timeout_ms) } #if defined(MSDOS) delay(timeout_ms); -#elif defined(USE_WINSOCK) +#elif defined(WIN32) /* prevent overflow, timeout_ms is typecast to ULONG/DWORD. */ -#if TIMEDIFF_T_MAX > ULONG_MAX - if(timeout_ms > ULONG_MAX) -#if ULONG_MAX < INFINITE - timeout_ms = ULONG_MAX; -#else +#if TIMEDIFF_T_MAX >= ULONG_MAX + if(timeout_ms >= ULONG_MAX) timeout_ms = ULONG_MAX-1; - /* avoid waiting forever */ -#endif + /* don't use ULONG_MAX, because that is equal to INFINITE */ #endif Sleep((ULONG)timeout_ms); #else @@ -119,14 +115,6 @@ int Curl_wait_ms(timediff_t timeout_ms) #endif pending_tv.tv_sec = (time_t)tv_sec; pending_tv.tv_usec = (suseconds_t)tv_usec; -#elif defined(WIN32) /* maybe also others in the future */ -#if TIMEDIFF_T_MAX > LONG_MAX - /* tv_sec overflow check on Windows there we know it is long */ - if(tv_sec > LONG_MAX) - tv_sec = LONG_MAX; -#endif - pending_tv.tv_sec = (long)tv_sec; - pending_tv.tv_usec = (long)tv_usec; #else #if TIMEDIFF_T_MAX > INT_MAX /* tv_sec overflow check in case time_t is signed */ -- cgit v1.2.3