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

Diff for /src/usr.bin/ssh/ssh-keyscan.c between version 1.18 and 1.19

version 1.18, 2001/03/03 06:53:12 version 1.19, 2001/03/03 21:19:41
Line 37 
Line 37 
 #define MAXCON (maxfd - 10)  #define MAXCON (maxfd - 10)
   
 extern char *__progname;  extern char *__progname;
 fd_set read_wait;  fd_set *read_wait;
   size_t read_wait_size;
 int ncon;  int ncon;
   
 /*  /*
Line 341 
Line 342 
         gettimeofday(&fdcon[s].c_tv, NULL);          gettimeofday(&fdcon[s].c_tv, NULL);
         fdcon[s].c_tv.tv_sec += timeout;          fdcon[s].c_tv.tv_sec += timeout;
         TAILQ_INSERT_TAIL(&tq, &fdcon[s], c_link);          TAILQ_INSERT_TAIL(&tq, &fdcon[s], c_link);
         FD_SET(s, &read_wait);          FD_SET(s, read_wait);
         ncon++;          ncon++;
         return (s);          return (s);
 }  }
Line 358 
Line 359 
                 xfree(fdcon[s].c_data);                  xfree(fdcon[s].c_data);
         fdcon[s].c_status = CS_UNUSED;          fdcon[s].c_status = CS_UNUSED;
         TAILQ_REMOVE(&tq, &fdcon[s], c_link);          TAILQ_REMOVE(&tq, &fdcon[s], c_link);
         FD_CLR(s, &read_wait);          FD_CLR(s, read_wait);
         ncon--;          ncon--;
 }  }
   
Line 461 
Line 462 
 void  void
 conloop(void)  conloop(void)
 {  {
         fd_set r, e;          fd_set *r, *e;
         struct timeval seltime, now;          struct timeval seltime, now;
         int i;          int i;
         con *c;          con *c;
Line 481 
Line 482 
         } else          } else
                 seltime.tv_sec = seltime.tv_usec = 0;                  seltime.tv_sec = seltime.tv_usec = 0;
   
         r = e = read_wait;          r = xmalloc(read_wait_size);
         while (select(maxfd, &r, NULL, &e, &seltime) == -1 &&          memcpy(r, read_wait, read_wait_size);
           e = xmalloc(read_wait_size);
           memcpy(e, read_wait, read_wait_size);
   
           while (select(maxfd, r, NULL, e, &seltime) == -1 &&
             (errno == EAGAIN || errno == EINTR))              (errno == EAGAIN || errno == EINTR))
                 ;                  ;
   
         for (i = 0; i < maxfd; i++) {          for (i = 0; i < maxfd; i++) {
                 if (FD_ISSET(i, &e)) {                  if (FD_ISSET(i, e)) {
                         error("%s: exception!", fdcon[i].c_name);                          error("%s: exception!", fdcon[i].c_name);
                         confree(i);                          confree(i);
                 } else if (FD_ISSET(i, &r))                  } else if (FD_ISSET(i, r))
                         conread(i);                          conread(i);
         }          }
           xfree(r);
           xfree(e);
   
         c = tq.tqh_first;          c = tq.tqh_first;
         while (c && (c->c_tv.tv_sec < now.tv_sec ||          while (c && (c->c_tv.tv_sec < now.tv_sec ||
Line 590 
Line 597 
                 fdlim_set(maxfd);                  fdlim_set(maxfd);
         fdcon = xmalloc(maxfd * sizeof(con));          fdcon = xmalloc(maxfd * sizeof(con));
         memset(fdcon, 0, maxfd * sizeof(con));          memset(fdcon, 0, maxfd * sizeof(con));
   
           read_wait_size = howmany(maxfd, NFDBITS) * sizeof(fd_mask);
           read_wait = xmalloc(read_wait_size);
           memset(read_wait, 0, read_wait_size);
   
         do {          do {
                 while (ncon < MAXCON) {                  while (ncon < MAXCON) {

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19