diff options
Diffstat (limited to 'lib/progress.c')
-rw-r--r-- | lib/progress.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/lib/progress.c b/lib/progress.c index 740ff2887..2f80704ae 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -149,14 +149,9 @@ int Curl_pgrsDone(struct connectdata *conn) return 0; } -/* reset all times except redirect, and reset the known transfer sizes */ -void Curl_pgrsResetTimesSizes(struct Curl_easy *data) +/* reset the known transfer sizes */ +void Curl_pgrsResetTransferSizes(struct Curl_easy *data) { - data->progress.t_nslookup = 0; - data->progress.t_connect = 0; - data->progress.t_pretransfer = 0; - data->progress.t_starttransfer = 0; - Curl_pgrsSetDownloadSize(data, -1); Curl_pgrsSetUploadSize(data, -1); } @@ -181,6 +176,7 @@ void Curl_pgrsTime(struct Curl_easy *data, timerid timer) case TIMER_STARTSINGLE: /* This is set at the start of each single fetch */ data->progress.t_startsingle = now; + data->progress.is_t_startransfer_set = false; break; case TIMER_STARTACCEPT: data->progress.t_acceptdata = now; @@ -205,10 +201,11 @@ void Curl_pgrsTime(struct Curl_easy *data, timerid timer) * This prevents repeated invocations of the function from incorrectly * changing the t_starttransfer time. */ - if (*delta > data->progress.t_redirect) { + if(data->progress.is_t_startransfer_set) { return; } else { + data->progress.is_t_startransfer_set = true; break; } case TIMER_POSTRANSFER: @@ -222,7 +219,7 @@ void Curl_pgrsTime(struct Curl_easy *data, timerid timer) time_t us = Curl_tvdiff_us(now, data->progress.t_startsingle); if(!us) us++; /* make sure at least one microsecond passed */ - *delta = us; + *delta += us; } } @@ -230,6 +227,7 @@ void Curl_pgrsStartNow(struct Curl_easy *data) { data->progress.speeder_c = 0; /* reset the progress meter display */ data->progress.start = Curl_tvnow(); + data->progress.is_t_startransfer_set = false; data->progress.ul_limit_start.tv_sec = 0; data->progress.ul_limit_start.tv_usec = 0; data->progress.dl_limit_start.tv_sec = 0; |