[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.156 and 1.157

version 1.156, 2002/01/05 10:43:40 version 1.157, 2002/01/09 17:16:00
Line 703 
Line 703 
 }  }
   
 static void  static void
 channel_pre_open_15(Channel *c, fd_set * readset, fd_set * writeset)  channel_pre_open(Channel *c, fd_set * readset, fd_set * writeset)
 {  {
         /* test whether sockets are 'alive' for read/write */          u_int limit = compat20 ? c->remote_window : packet_get_maxsize();
         if (c->istate == CHAN_INPUT_OPEN)  
                 if (buffer_len(&c->input) < packet_get_maxsize())  
                         FD_SET(c->sock, readset);  
         if (c->ostate == CHAN_OUTPUT_OPEN ||  
             c->ostate == CHAN_OUTPUT_WAIT_DRAIN) {  
                 if (buffer_len(&c->output) > 0) {  
                         FD_SET(c->sock, writeset);  
                 } else if (c->ostate == CHAN_OUTPUT_WAIT_DRAIN) {  
                         chan_obuf_empty(c);  
                 }  
         }  
 }  
   
 static void  
 channel_pre_open_20(Channel *c, fd_set * readset, fd_set * writeset)  
 {  
         if (c->istate == CHAN_INPUT_OPEN &&          if (c->istate == CHAN_INPUT_OPEN &&
             c->remote_window > 0 &&              limit > 0 &&
             buffer_len(&c->input) < c->remote_window)              buffer_len(&c->input) < limit)
                 FD_SET(c->rfd, readset);                  FD_SET(c->rfd, readset);
         if (c->ostate == CHAN_OUTPUT_OPEN ||          if (c->ostate == CHAN_OUTPUT_OPEN ||
             c->ostate == CHAN_OUTPUT_WAIT_DRAIN) {              c->ostate == CHAN_OUTPUT_WAIT_DRAIN) {
Line 735 
Line 720 
                 }                  }
         }          }
         /** XXX check close conditions, too */          /** XXX check close conditions, too */
         if (c->efd != -1) {          if (compat20 && c->efd != -1) {
                 if (c->extended_usage == CHAN_EXTENDED_WRITE &&                  if (c->extended_usage == CHAN_EXTENDED_WRITE &&
                     buffer_len(&c->extended) > 0)                      buffer_len(&c->extended) > 0)
                         FD_SET(c->efd, writeset);                          FD_SET(c->efd, writeset);
Line 867 
Line 852 
   
         if (ret == 1) {          if (ret == 1) {
                 c->type = SSH_CHANNEL_OPEN;                  c->type = SSH_CHANNEL_OPEN;
                 if (compat20)                  channel_pre_open(c, readset, writeset);
                         channel_pre_open_20(c, readset, writeset);  
                 else  
                         channel_pre_open_15(c, readset, writeset);  
         } else if (ret == -1) {          } else if (ret == -1) {
                 log("X11 connection rejected because of wrong authentication.");                  log("X11 connection rejected because of wrong authentication.");
                 debug("X11 rejected %d i%d/o%d", c->self, c->istate, c->ostate);                  debug("X11 rejected %d i%d/o%d", c->self, c->istate, c->ostate);
Line 1422 
Line 1404 
 }  }
   
 static void  static void
 channel_post_open_1(Channel *c, fd_set * readset, fd_set * writeset)  channel_post_open(Channel *c, fd_set * readset, fd_set * writeset)
 {  {
         if (c->delayed)          if (c->delayed)
                 return;                  return;
         channel_handle_rfd(c, readset, writeset);          channel_handle_rfd(c, readset, writeset);
         channel_handle_wfd(c, readset, writeset);          channel_handle_wfd(c, readset, writeset);
 }          if (!compat20)
   
 static void  
 channel_post_open_2(Channel *c, fd_set * readset, fd_set * writeset)  
 {  
         if (c->delayed)  
                 return;                  return;
         channel_handle_rfd(c, readset, writeset);  
         channel_handle_wfd(c, readset, writeset);  
         channel_handle_efd(c, readset, writeset);          channel_handle_efd(c, readset, writeset);
   
         channel_check_window(c);          channel_check_window(c);
 }  }
   
Line 1460 
Line 1434 
 static void  static void
 channel_handler_init_20(void)  channel_handler_init_20(void)
 {  {
         channel_pre[SSH_CHANNEL_OPEN] =                 &channel_pre_open_20;          channel_pre[SSH_CHANNEL_OPEN] =                 &channel_pre_open;
         channel_pre[SSH_CHANNEL_X11_OPEN] =             &channel_pre_x11_open;          channel_pre[SSH_CHANNEL_X11_OPEN] =             &channel_pre_x11_open;
         channel_pre[SSH_CHANNEL_PORT_LISTENER] =        &channel_pre_listener;          channel_pre[SSH_CHANNEL_PORT_LISTENER] =        &channel_pre_listener;
         channel_pre[SSH_CHANNEL_RPORT_LISTENER] =       &channel_pre_listener;          channel_pre[SSH_CHANNEL_RPORT_LISTENER] =       &channel_pre_listener;
Line 1469 
Line 1443 
         channel_pre[SSH_CHANNEL_CONNECTING] =           &channel_pre_connecting;          channel_pre[SSH_CHANNEL_CONNECTING] =           &channel_pre_connecting;
         channel_pre[SSH_CHANNEL_DYNAMIC] =              &channel_pre_dynamic;          channel_pre[SSH_CHANNEL_DYNAMIC] =              &channel_pre_dynamic;
   
         channel_post[SSH_CHANNEL_OPEN] =                &channel_post_open_2;          channel_post[SSH_CHANNEL_OPEN] =                &channel_post_open;
         channel_post[SSH_CHANNEL_PORT_LISTENER] =       &channel_post_port_listener;          channel_post[SSH_CHANNEL_PORT_LISTENER] =       &channel_post_port_listener;
         channel_post[SSH_CHANNEL_RPORT_LISTENER] =      &channel_post_port_listener;          channel_post[SSH_CHANNEL_RPORT_LISTENER] =      &channel_post_port_listener;
         channel_post[SSH_CHANNEL_X11_LISTENER] =        &channel_post_x11_listener;          channel_post[SSH_CHANNEL_X11_LISTENER] =        &channel_post_x11_listener;
         channel_post[SSH_CHANNEL_AUTH_SOCKET] =         &channel_post_auth_listener;          channel_post[SSH_CHANNEL_AUTH_SOCKET] =         &channel_post_auth_listener;
         channel_post[SSH_CHANNEL_CONNECTING] =          &channel_post_connecting;          channel_post[SSH_CHANNEL_CONNECTING] =          &channel_post_connecting;
         channel_post[SSH_CHANNEL_DYNAMIC] =             &channel_post_open_2;          channel_post[SSH_CHANNEL_DYNAMIC] =             &channel_post_open;
 }  }
   
 static void  static void
Line 1491 
Line 1465 
         channel_pre[SSH_CHANNEL_CONNECTING] =           &channel_pre_connecting;          channel_pre[SSH_CHANNEL_CONNECTING] =           &channel_pre_connecting;
         channel_pre[SSH_CHANNEL_DYNAMIC] =              &channel_pre_dynamic;          channel_pre[SSH_CHANNEL_DYNAMIC] =              &channel_pre_dynamic;
   
         channel_post[SSH_CHANNEL_OPEN] =                &channel_post_open_1;          channel_post[SSH_CHANNEL_OPEN] =                &channel_post_open;
         channel_post[SSH_CHANNEL_X11_LISTENER] =        &channel_post_x11_listener;          channel_post[SSH_CHANNEL_X11_LISTENER] =        &channel_post_x11_listener;
         channel_post[SSH_CHANNEL_PORT_LISTENER] =       &channel_post_port_listener;          channel_post[SSH_CHANNEL_PORT_LISTENER] =       &channel_post_port_listener;
         channel_post[SSH_CHANNEL_AUTH_SOCKET] =         &channel_post_auth_listener;          channel_post[SSH_CHANNEL_AUTH_SOCKET] =         &channel_post_auth_listener;
         channel_post[SSH_CHANNEL_OUTPUT_DRAINING] =     &channel_post_output_drain_13;          channel_post[SSH_CHANNEL_OUTPUT_DRAINING] =     &channel_post_output_drain_13;
         channel_post[SSH_CHANNEL_CONNECTING] =          &channel_post_connecting;          channel_post[SSH_CHANNEL_CONNECTING] =          &channel_post_connecting;
         channel_post[SSH_CHANNEL_DYNAMIC] =             &channel_post_open_1;          channel_post[SSH_CHANNEL_DYNAMIC] =             &channel_post_open;
 }  }
   
 static void  static void
 channel_handler_init_15(void)  channel_handler_init_15(void)
 {  {
         channel_pre[SSH_CHANNEL_OPEN] =                 &channel_pre_open_15;          channel_pre[SSH_CHANNEL_OPEN] =                 &channel_pre_open;
         channel_pre[SSH_CHANNEL_X11_OPEN] =             &channel_pre_x11_open;          channel_pre[SSH_CHANNEL_X11_OPEN] =             &channel_pre_x11_open;
         channel_pre[SSH_CHANNEL_X11_LISTENER] =         &channel_pre_listener;          channel_pre[SSH_CHANNEL_X11_LISTENER] =         &channel_pre_listener;
         channel_pre[SSH_CHANNEL_PORT_LISTENER] =        &channel_pre_listener;          channel_pre[SSH_CHANNEL_PORT_LISTENER] =        &channel_pre_listener;
Line 1514 
Line 1488 
         channel_post[SSH_CHANNEL_X11_LISTENER] =        &channel_post_x11_listener;          channel_post[SSH_CHANNEL_X11_LISTENER] =        &channel_post_x11_listener;
         channel_post[SSH_CHANNEL_PORT_LISTENER] =       &channel_post_port_listener;          channel_post[SSH_CHANNEL_PORT_LISTENER] =       &channel_post_port_listener;
         channel_post[SSH_CHANNEL_AUTH_SOCKET] =         &channel_post_auth_listener;          channel_post[SSH_CHANNEL_AUTH_SOCKET] =         &channel_post_auth_listener;
         channel_post[SSH_CHANNEL_OPEN] =                &channel_post_open_1;          channel_post[SSH_CHANNEL_OPEN] =                &channel_post_open;
         channel_post[SSH_CHANNEL_CONNECTING] =          &channel_post_connecting;          channel_post[SSH_CHANNEL_CONNECTING] =          &channel_post_connecting;
         channel_post[SSH_CHANNEL_DYNAMIC] =             &channel_post_open_1;          channel_post[SSH_CHANNEL_DYNAMIC] =             &channel_post_open;
 }  }
   
 static void  static void

Legend:
Removed from v.1.156  
changed lines
  Added in v.1.157