aboutsummaryrefslogtreecommitdiff
path: root/lib/multi.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-07-31 15:30:31 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-08-01 07:43:24 +0200
commitb1616dad8f088d873d88f88b4d884335a4ca285f (patch)
tree31637b618958b051693d23591042468243fe0b35 /lib/multi.c
parent7c14dde9240a6a113358fe551f378328a41477e2 (diff)
timediff: make it 64 bit (if possible) even with 32 bit time_t
... to make it hold microseconds too. Fixes #4165 Closes #4168
Diffstat (limited to 'lib/multi.c')
-rwxr-xr-xlib/multi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/multi.c b/lib/multi.c
index 9b6801db7..6e16eafe0 100755
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -2838,7 +2838,7 @@ multi_addtimeout(struct Curl_easy *data,
*
* Expire replaces a former timeout using the same id if already set.
*/
-void Curl_expire(struct Curl_easy *data, time_t milli, expire_id id)
+void Curl_expire(struct Curl_easy *data, timediff_t milli, expire_id id)
{
struct Curl_multi *multi = data->multi;
struct curltime *nowp = &data->state.expiretime;
@@ -2852,7 +2852,7 @@ void Curl_expire(struct Curl_easy *data, time_t milli, expire_id id)
DEBUGASSERT(id < EXPIRE_LAST);
set = Curl_now();
- set.tv_sec += milli/1000;
+ set.tv_sec += (time_t)(milli/1000); /* might be a 64 to 32 bit conversion */
set.tv_usec += (unsigned int)(milli%1000)*1000;
if(set.tv_usec >= 1000000) {