Commit 2b59e90c authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

fix progress data to be updated properly for file: transfers, as reported

by Jesse Noller
parent 59a30e6d
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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;