From 2b59e90c549a02670ec790a1d1fabf1e1d09706f Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 4 Mar 2004 15:12:12 +0000 Subject: [PATCH] fix progress data to be updated properly for file: transfers, as reported by Jesse Noller --- lib/file.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/file.c b/lib/file.c index e10fa8108..e411ac16d 100644 --- a/lib/file.c +++ b/lib/file.c @@ -174,6 +174,7 @@ CURLcode Curl_file(struct connectdata *conn) char *buf = data->state.buffer; curl_off_t bytecount = 0; int fd; + struct timeval now = Curl_tvnow(); /* get the fd from the connection phase */ fd = conn->proto.file->fd; @@ -239,6 +240,8 @@ CURLcode Curl_file(struct connectdata *conn) if(conn->resume_from) lseek(fd, conn->resume_from, SEEK_SET); + Curl_pgrsTime(data, TIMER_STARTTRANSFER); + while (res == CURLE_OK) { nread = read(fd, buf, BUFSIZE-1); @@ -258,8 +261,12 @@ CURLcode Curl_file(struct connectdata *conn) if(res) return res; + Curl_pgrsSetDownloadCounter(data, (double)bytecount); + if(Curl_pgrsUpdate(conn)) res = CURLE_ABORTED_BY_CALLBACK; + else + res = Curl_speedcheck (data, now); } if(Curl_pgrsUpdate(conn)) res = CURLE_ABORTED_BY_CALLBACK;