diff --git a/src/Makefile.inc b/src/Makefile.inc index cd890accc..09bd9e804 100644 --- a/src/Makefile.inc +++ b/src/Makefile.inc @@ -13,7 +13,8 @@ CURLX_ONES = \ ../lib/strtoofft.c \ ../lib/strdup.c \ ../lib/rawstr.c \ - ../lib/nonblock.c + ../lib/nonblock.c \ + ../lib/timeval.c CURL_CFILES = \ tool_binmode.c \ diff --git a/src/tool_cb_prg.c b/src/tool_cb_prg.c index 9facd9e76..b94442be8 100644 --- a/src/tool_cb_prg.c +++ b/src/tool_cb_prg.c @@ -49,12 +49,12 @@ int tool_progress_cb(void *clientp, double percent; int barwidth; int num; - time_t now = time(NULL); + struct timeval now = curlx_tvnow(); struct ProgressData *bar = (struct ProgressData *)clientp; curl_off_t total; curl_off_t point; - if(bar->prevtime == now) /* wait with update */ + if(curlx_tvdiff(now, bar->prevtime) < 200) /* allow 5 Hz */ return 0; /* expected transfer size */ diff --git a/src/tool_cb_prg.h b/src/tool_cb_prg.h index ceb85980c..a20645e86 100644 --- a/src/tool_cb_prg.h +++ b/src/tool_cb_prg.h @@ -29,7 +29,7 @@ struct ProgressData { int calls; curl_off_t prev; - time_t prevtime; + struct timeval prevtime; int width; FILE *out; /* where to write everything to */ curl_off_t initial_size;