diff options
author | Daniel Stenberg <daniel@haxx.se> | 2001-10-26 11:25:03 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2001-10-26 11:25:03 +0000 |
commit | babb985f1a7155b01f0483a817db3b0c2437c588 (patch) | |
tree | 2d70612242035b0685cdb07cc4311a02548009ff /lib | |
parent | b22a5f756c79f7fc23f04647363123efd22d7ef1 (diff) |
made 'timespent' a double, which makes more accurate calculations for quick
downloads
Diffstat (limited to 'lib')
-rw-r--r-- | lib/progress.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/progress.c b/lib/progress.c index 571879b8a..9e53f4b99 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -187,6 +187,7 @@ int Curl_pgrsUpdate(struct connectdata *conn) double total_transfer; double total_expected_transfer; + double timespent; struct SessionHandle *data = conn->data; @@ -224,17 +225,17 @@ int Curl_pgrsUpdate(struct connectdata *conn) now = Curl_tvnow(); /* what time is it */ /* The exact time spent so far (from the start) */ - data->progress.timespent = Curl_tvdiff (now, data->progress.start)/1000; + timespent = (double)Curl_tvdiff (now, data->progress.start)/1000; + + data->progress.timespent = (long)timespent; /* The average download speed this far */ data->progress.dlspeed = - data->progress.downloaded/(data->progress.timespent? - data->progress.timespent:1); + data->progress.downloaded/(timespent>0.01?timespent:1); /* The average upload speed this far */ data->progress.ulspeed = - data->progress.uploaded/(data->progress.timespent? - data->progress.timespent:1); + data->progress.uploaded/(timespent>0.01?timespent:1); if(data->progress.lastshow == Curl_tvlong(now)) return 0; /* never update this more than once a second if the end isn't @@ -281,8 +282,10 @@ int Curl_pgrsUpdate(struct connectdata *conn) data->progress.speeder[checkindex])/((double)span_ms/1000); } else - /* the first second we only have one speed information to use */ - data->progress.current_speed = data->progress.speeder[nowindex]; + /* the first second we use the main average */ + data->progress.current_speed = + (data->progress.ulspeed>data->progress.dlspeed)? + data->progress.ulspeed:data->progress.dlspeed; if(data->progress.flags & PGRS_HIDE) return 0; |