[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.140.2.1 and 1.140.2.2

version 1.140.2.1, 2002/03/07 17:37:46 version 1.140.2.2, 2002/05/17 00:03:23
Line 706 
Line 706 
                 if (buffer_len(&c->output) > 0) {                  if (buffer_len(&c->output) > 0) {
                         FD_SET(c->wfd, writeset);                          FD_SET(c->wfd, writeset);
                 } else if (c->ostate == CHAN_OUTPUT_WAIT_DRAIN) {                  } else if (c->ostate == CHAN_OUTPUT_WAIT_DRAIN) {
                         chan_obuf_empty(c);                          if (CHANNEL_EFD_OUTPUT_ACTIVE(c))
                                  debug2("channel %d: obuf_empty delayed efd %d/(%d)",
                                      c->self, c->efd, buffer_len(&c->extended));
                           else
                                   chan_obuf_empty(c);
                 }                  }
         }          }
         /** XXX check close conditions, too */          /** XXX check close conditions, too */
Line 714 
Line 718 
                 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);
                 else if (c->extended_usage == CHAN_EXTENDED_READ &&                  else if (!(c->flags & CHAN_EOF_SENT) &&
                       c->extended_usage == CHAN_EXTENDED_READ &&
                     buffer_len(&c->extended) < c->remote_window)                      buffer_len(&c->extended) < c->remote_window)
                         FD_SET(c->efd, readset);                          FD_SET(c->efd, readset);
         }          }
Line 1632 
Line 1637 
                                 fatal("cannot happen: istate == INPUT_WAIT_DRAIN for proto 1.3");                                  fatal("cannot happen: istate == INPUT_WAIT_DRAIN for proto 1.3");
                         /*                          /*
                          * input-buffer is empty and read-socket shutdown:                           * input-buffer is empty and read-socket shutdown:
                          * tell peer, that we will not send more data: send IEOF                           * tell peer, that we will not send more data: send IEOF.
                            * hack for extended data: delay EOF if EFD still in use.
                          */                           */
                         chan_ibuf_empty(c);                          if (CHANNEL_EFD_INPUT_ACTIVE(c))
                                  debug2("channel %d: ibuf_empty delayed efd %d/(%d)",
                                      c->self, c->efd, buffer_len(&c->extended));
                           else
                                   chan_ibuf_empty(c);
                 }                  }
                 /* Send extended data, i.e. stderr */                  /* Send extended data, i.e. stderr */
                 if (compat20 &&                  if (compat20 &&
                       !(c->flags & CHAN_EOF_SENT) &&
                     c->remote_window > 0 &&                      c->remote_window > 0 &&
                     (len = buffer_len(&c->extended)) > 0 &&                      (len = buffer_len(&c->extended)) > 0 &&
                     c->extended_usage == CHAN_EXTENDED_READ) {                      c->extended_usage == CHAN_EXTENDED_READ) {
Line 1726 
Line 1737 
                 log("channel %d: ext data for non open", id);                  log("channel %d: ext data for non open", id);
                 return;                  return;
         }          }
           if (c->flags & CHAN_EOF_RCVD) {
                   if (datafellows & SSH_BUG_EXTEOF)
                           debug("channel %d: accepting ext data after eof", id);
                   else
                           packet_disconnect("Received extended_data after EOF "
                               "on channel %d.", id);
           }
         tcode = packet_get_int();          tcode = packet_get_int();
         if (c->efd == -1 ||          if (c->efd == -1 ||
             c->extended_usage != CHAN_EXTENDED_WRITE ||              c->extended_usage != CHAN_EXTENDED_WRITE ||
Line 2108 
Line 2126 
                 const char *address_to_bind = "0.0.0.0";                  const char *address_to_bind = "0.0.0.0";
                 packet_start(SSH2_MSG_GLOBAL_REQUEST);                  packet_start(SSH2_MSG_GLOBAL_REQUEST);
                 packet_put_cstring("tcpip-forward");                  packet_put_cstring("tcpip-forward");
                 packet_put_char(0);                     /* boolean: want reply */                  packet_put_char(1);                     /* boolean: want reply */
                 packet_put_cstring(address_to_bind);                  packet_put_cstring(address_to_bind);
                 packet_put_int(listen_port);                  packet_put_int(listen_port);
                 packet_send();                  packet_send();

Legend:
Removed from v.1.140.2.1  
changed lines
  Added in v.1.140.2.2