diff options
-rw-r--r-- | lib/progress.c | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/lib/progress.c b/lib/progress.c index 31808aa8c..dffaa074e 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -369,26 +369,13 @@ void Curl_pgrsSetUploadSize(struct Curl_easy *data, curl_off_t size) } } -/* returns the average speed */ -static curl_off_t trspeed(curl_off_t size, curl_off_t us) +/* returns the average speed in bytes / second */ +static curl_off_t trspeed(curl_off_t size, /* number of bytes */ + curl_off_t us) /* microseconds */ { - curl_off_t sec; - if(size < CURL_OFF_T_MAX/1000000) { - if(us < 1) - return size * 1000000; - return (size * 1000000) / us; - } - else if(size < CURL_OFF_T_MAX/1000) { - curl_off_t ms = us/1000; - if(ms < 1) - return size * 1000; - return (size * 1000) / ms; - } - sec = us / 1000000; - if(sec < 1) - return size; - - return size / sec; + if(us < 1) + return size * 1000000; + return (curl_off_t)((long double)size/us * 1000000); } /* returns TRUE if it's time to show the progress meter */ |