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

Diff for /src/usr.bin/ssh/channels.c between version 1.54 and 1.55

version 1.54, 2000/05/01 20:21:40 version 1.55, 2000/05/02 19:33:12
Line 147 
Line 147 
         return c;          return c;
 }  }
   
   void
   set_nonblock(int fd)
   {
           int val;
           val = fcntl(fd, F_GETFL, 0);
           if (val < 0) {
                   error("fcntl(%d, F_GETFL, 0): %s", fd, strerror(errno));
                   return;
           }
           if (val & O_NONBLOCK)
                   return;
           debug("fd %d setting O_NONBLOCK", fd);
           val |= O_NONBLOCK;
           if (fcntl(fd, F_SETFL, val) == -1)
                   error("fcntl(%d, F_SETFL, O_NONBLOCK): %s", fd, strerror(errno));
   }
   
 /*  /*
  * register filedescriptors for a channel, used when allocating a channel or   * Register filedescriptors for a channel, used when allocating a channel or
  * when the channel consumer/producer is ready, e.g. shell exec'd   * when the channel consumer/producer is ready, e.g. shell exec'd
  */   */
   
Line 163 
Line 180 
         if (efd > channel_max_fd_value)          if (efd > channel_max_fd_value)
                 channel_max_fd_value = efd;                  channel_max_fd_value = efd;
         /* XXX set close-on-exec -markus */          /* XXX set close-on-exec -markus */
   
         c->rfd = rfd;          c->rfd = rfd;
         c->wfd = wfd;          c->wfd = wfd;
         c->sock = (rfd == wfd) ? rfd : -1;          c->sock = (rfd == wfd) ? rfd : -1;
         c->efd = efd;          c->efd = efd;
         c->extended_usage = extusage;          c->extended_usage = extusage;
           if (rfd != -1)
                   set_nonblock(rfd);
           if (wfd != -1)
                   set_nonblock(wfd);
           if (efd != -1)
                   set_nonblock(efd);
 }  }
   
 /*  /*

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.55