[BACK]Return to util.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ftp

Diff for /src/usr.bin/ftp/util.c between version 1.85 and 1.86

version 1.85, 2017/09/05 05:37:35 version 1.86, 2017/12/23 20:04:23
Line 744 
Line 744 
  *   with flag = 0   *   with flag = 0
  * - After the transfer, call with flag = 1   * - After the transfer, call with flag = 1
  */   */
 static struct timeval start;  static struct timespec start;
   
 char *action;  char *action;
   
Line 757 
Line 757 
          */           */
         static const char prefixes[] = " KMGTP";          static const char prefixes[] = " KMGTP";
   
         static struct timeval lastupdate;          static struct timespec lastupdate;
         static off_t lastsize;          static off_t lastsize;
         static char *title = NULL;          static char *title = NULL;
         struct timeval now, td, wait;          struct timespec now, td, wait;
         off_t cursize, abbrevsize;          off_t cursize, abbrevsize;
         double elapsed;          double elapsed;
         int ratio, barlength, i, remaining, overhead = 30;          int ratio, barlength, i, remaining, overhead = 30;
         char buf[512];          char buf[512];
   
         if (flag == -1) {          if (flag == -1) {
                 (void)gettimeofday(&start, NULL);                  clock_gettime(CLOCK_MONOTONIC, &start);
                 lastupdate = start;                  lastupdate = start;
                 lastsize = restart_point;                  lastsize = restart_point;
         }          }
         (void)gettimeofday(&now, NULL);          clock_gettime(CLOCK_MONOTONIC, &now);
         if (!progress || filesize < 0)          if (!progress || filesize < 0)
                 return;                  return;
         cursize = bytes + restart_point;          cursize = bytes + restart_point;
Line 851 
Line 851 
             " %5lld %c%c ", (long long)abbrevsize, prefixes[i],              " %5lld %c%c ", (long long)abbrevsize, prefixes[i],
             prefixes[i] == ' ' ? ' ' : 'B');              prefixes[i] == ' ' ? ' ' : 'B');
   
         timersub(&now, &lastupdate, &wait);          timespecsub(&now, &lastupdate, &wait);
         if (cursize > lastsize) {          if (cursize > lastsize) {
                 lastupdate = now;                  lastupdate = now;
                 lastsize = cursize;                  lastsize = cursize;
                 if (wait.tv_sec >= STALLTIME) { /* fudge out stalled time */                  if (wait.tv_sec >= STALLTIME) { /* fudge out stalled time */
                         start.tv_sec += wait.tv_sec;                          start.tv_sec += wait.tv_sec;
                         start.tv_usec += wait.tv_usec;                          start.tv_nsec += wait.tv_nsec;
                 }                  }
                 wait.tv_sec = 0;                  wait.tv_sec = 0;
         }          }
   
         timersub(&now, &start, &td);          timespecsub(&now, &start, &td);
         elapsed = td.tv_sec + (td.tv_usec / 1000000.0);          elapsed = td.tv_sec + (td.tv_nsec / 1000000000.0);
   
         if (flag == 1) {          if (flag == 1) {
                 i = (int)elapsed / 3600;                  i = (int)elapsed / 3600;
Line 921 
Line 921 
 void  void
 ptransfer(int siginfo)  ptransfer(int siginfo)
 {  {
         struct timeval now, td;          struct timespec now, td;
         double elapsed;          double elapsed;
         off_t bs;          off_t bs;
         int meg, remaining, hh;          int meg, remaining, hh;
Line 930 
Line 930 
         if (!verbose && !siginfo)          if (!verbose && !siginfo)
                 return;                  return;
   
         (void)gettimeofday(&now, NULL);          clock_gettime(CLOCK_MONOTONIC, &now);
         timersub(&now, &start, &td);          timespecsub(&now, &start, &td);
         elapsed = td.tv_sec + (td.tv_usec / 1000000.0);          elapsed = td.tv_sec + (td.tv_nsec / 1000000000.0);
         bs = bytes / (elapsed == 0.0 ? 1 : elapsed);          bs = bytes / (elapsed == 0.0 ? 1 : elapsed);
         meg = 0;          meg = 0;
         if (bs > (1024 * 1024))          if (bs > (1024 * 1024))

Legend:
Removed from v.1.85  
changed lines
  Added in v.1.86