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

Diff for /src/usr.bin/ssh/scp.c between version 1.9 and 1.10

version 1.9, 1999/10/03 20:43:12 version 1.10, 1999/10/04 01:59:56
Line 1052 
Line 1052 
         exit(1);          exit(1);
 }  }
   
   /*
    * ensure all of data on socket comes through. f==read || f==write
    */
   int
   atomicio(f, fd, s, n)
   int (*f)();
   char *s;
   {
           int res, pos = 0;
   
           while (n>pos) {
                   res = (f)(fd, s+pos, n-pos);
                   switch (res) {
                   case -1:
                           if (errno==EINTR || errno==EAGAIN)
                                   continue;
                   case 0:
                           return (res);
                   default:
                           pos += res;
                   }
           }
           return (pos);
   }
   
 void  void
 alarmtimer(int wait)  alarmtimer(int wait)
 {  {
Line 1112 
Line 1137 
                 abbrevsize >>= 10;                  abbrevsize >>= 10;
         }          }
         snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " %5qd %c%c ",          snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " %5qd %c%c ",
                 (quad_t)abbrevsize, prefixes[i], prefixes[i] == ' ' ? ' ' :              (quad_t)abbrevsize, prefixes[i], prefixes[i] == ' ' ? ' ' :
                 'B');              'B');
   
         timersub(&now, &lastupdate, &wait);          timersub(&now, &lastupdate, &wait);
         if (cursize > lastsize) {          if (cursize > lastsize) {
Line 1131 
Line 1156 
   
         if (statbytes <= 0 || elapsed <= 0.0 || cursize > totalbytes) {          if (statbytes <= 0 || elapsed <= 0.0 || cursize > totalbytes) {
                 snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),                  snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
                         "   --:-- ETA");                      "   --:-- ETA");
         } else if (wait.tv_sec >= STALLTIME) {          } else if (wait.tv_sec >= STALLTIME) {
                 snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),                  snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
                         " - stalled -");                      " - stalled -");
         } else {          } else {
                 remaining = (int)(totalbytes / (statbytes / elapsed) - elapsed);                  remaining = (int)(totalbytes / (statbytes / elapsed) - elapsed);
                 i = elapsed / 3600;                  i = elapsed / 3600;
                 if (i)                  if (i)
                         snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),                          snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
                                 "%2d:", i);                              "%2d:", i);
                 else                  else
                         snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),                          snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
                                 "   ");                              "   ");
                 i = remaining % 3600;                  i = remaining % 3600;
                 snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),                  snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
                         "%02d:%02d ETA", i / 60, i % 60);                      "%02d:%02d ETA", i / 60, i % 60);
         }          }
         write(fileno(stdout), buf, strlen(buf));          atomicio(write, fileno(stdout), buf, strlen(buf));
   
         if (flag == -1) {          if (flag == -1) {
                 signal(SIGALRM, (void *)updateprogressmeter);                  signal(SIGALRM, (void *)updateprogressmeter);
                 alarmtimer(1);                  alarmtimer(1);
         } else if (flag == 1) {          } else if (flag == 1) {
                         alarmtimer(0);                  alarmtimer(0);
                         putc('\n', stdout);                  write(fileno(stdout), "\n", 1);
         }          }
         fflush(stdout);  
 }  }
   
 int  int

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10