mirror of
https://github.com/curl/curl.git
synced 2026-08-24 11:23:31 +03:00
timediff: return timediff_t from the time diff functions
... to cater for systems with unsigned time_t variables. - Renamed the functions to curlx_timediff and Curl_timediff_us. - Added overflow protection for both of them in either direction for both 32 bit and 64 bit time_ts - Reprefixed the curlx_time functions to use Curl_* Reported-by: Peter Piekarski Fixes #2004 Closes #2005
This commit is contained in:
parent
016c6a6abb
commit
b9d25f9a6b
22 changed files with 214 additions and 110 deletions
|
|
@ -212,13 +212,13 @@ void Curl_pgrsTime(struct Curl_easy *data, timerid timer)
|
|||
/* this is the normal end-of-transfer thing */
|
||||
break;
|
||||
case TIMER_REDIRECT:
|
||||
data->progress.t_redirect = Curl_tvdiff_us(now, data->progress.start);
|
||||
data->progress.t_redirect = Curl_timediff_us(now, data->progress.start);
|
||||
break;
|
||||
}
|
||||
if(delta) {
|
||||
time_t us = Curl_tvdiff_us(now, data->progress.t_startsingle);
|
||||
if(!us)
|
||||
us++; /* make sure at least one microsecond passed */
|
||||
timediff_t us = Curl_timediff_us(now, data->progress.t_startsingle);
|
||||
if(us < 1)
|
||||
us = 1; /* make sure at least one microsecond passed */
|
||||
*delta += us;
|
||||
}
|
||||
}
|
||||
|
|
@ -274,7 +274,7 @@ long Curl_pgrsLimitWaitTime(curl_off_t cursize,
|
|||
return -1;
|
||||
|
||||
minimum = (time_t) (CURL_OFF_T_C(1000) * size / limit);
|
||||
actual = Curl_tvdiff(now, start);
|
||||
actual = Curl_timediff(now, start);
|
||||
|
||||
if(actual < minimum)
|
||||
/* this is a conversion on some systems (64bit time_t => 32bit long) */
|
||||
|
|
@ -373,7 +373,7 @@ int Curl_pgrsUpdate(struct connectdata *conn)
|
|||
now = Curl_tvnow(); /* what time is it */
|
||||
|
||||
/* The time spent so far (from the start) */
|
||||
data->progress.timespent = Curl_tvdiff_us(now, data->progress.start);
|
||||
data->progress.timespent = Curl_timediff_us(now, data->progress.start);
|
||||
timespent = (curl_off_t)data->progress.timespent/1000000; /* seconds */
|
||||
|
||||
/* The average download speed this far */
|
||||
|
|
@ -413,7 +413,7 @@ int Curl_pgrsUpdate(struct connectdata *conn)
|
|||
|
||||
/* first of all, we don't do this if there's no counted seconds yet */
|
||||
if(countindex) {
|
||||
time_t span_ms;
|
||||
timediff_t span_ms;
|
||||
|
||||
/* Get the index position to compare with the 'nowindex' position.
|
||||
Get the oldest entry possible. While we have less than CURR_TIME
|
||||
|
|
@ -422,8 +422,8 @@ int Curl_pgrsUpdate(struct connectdata *conn)
|
|||
data->progress.speeder_c%CURR_TIME:0;
|
||||
|
||||
/* Figure out the exact time for the time span */
|
||||
span_ms = Curl_tvdiff(now,
|
||||
data->progress.speeder_time[checkindex]);
|
||||
span_ms = Curl_timediff(now,
|
||||
data->progress.speeder_time[checkindex]);
|
||||
if(0 == span_ms)
|
||||
span_ms = 1; /* at least one millisecond MUST have passed */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue