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

Diff for /src/usr.bin/ssh/nchan.c between version 1.48 and 1.49

version 1.48, 2003/04/08 20:21:29 version 1.49, 2003/08/29 10:04:36
Line 83 
Line 83 
 {  {
         if (c->istate > CHAN_INPUT_CLOSED || next > CHAN_INPUT_CLOSED)          if (c->istate > CHAN_INPUT_CLOSED || next > CHAN_INPUT_CLOSED)
                 fatal("chan_set_istate: bad state %d -> %d", c->istate, next);                  fatal("chan_set_istate: bad state %d -> %d", c->istate, next);
         debug("channel %d: input %s -> %s", c->self, istates[c->istate],          debug2("channel %d: input %s -> %s", c->self, istates[c->istate],
             istates[next]);              istates[next]);
         c->istate = next;          c->istate = next;
 }  }
Line 92 
Line 92 
 {  {
         if (c->ostate > CHAN_OUTPUT_CLOSED || next > CHAN_OUTPUT_CLOSED)          if (c->ostate > CHAN_OUTPUT_CLOSED || next > CHAN_OUTPUT_CLOSED)
                 fatal("chan_set_ostate: bad state %d -> %d", c->ostate, next);                  fatal("chan_set_ostate: bad state %d -> %d", c->ostate, next);
         debug("channel %d: output %s -> %s", c->self, ostates[c->ostate],          debug2("channel %d: output %s -> %s", c->self, ostates[c->ostate],
             ostates[next]);              ostates[next]);
         c->ostate = next;          c->ostate = next;
 }  }
Line 104 
Line 104 
 static void  static void
 chan_rcvd_oclose1(Channel *c)  chan_rcvd_oclose1(Channel *c)
 {  {
         debug("channel %d: rcvd oclose", c->self);          debug2("channel %d: rcvd oclose", c->self);
         switch (c->istate) {          switch (c->istate) {
         case CHAN_INPUT_WAIT_OCLOSE:          case CHAN_INPUT_WAIT_OCLOSE:
                 chan_set_istate(c, CHAN_INPUT_CLOSED);                  chan_set_istate(c, CHAN_INPUT_CLOSED);
Line 128 
Line 128 
 void  void
 chan_read_failed(Channel *c)  chan_read_failed(Channel *c)
 {  {
         debug("channel %d: read failed", c->self);          debug2("channel %d: read failed", c->self);
         switch (c->istate) {          switch (c->istate) {
         case CHAN_INPUT_OPEN:          case CHAN_INPUT_OPEN:
                 chan_shutdown_read(c);                  chan_shutdown_read(c);
Line 143 
Line 143 
 void  void
 chan_ibuf_empty(Channel *c)  chan_ibuf_empty(Channel *c)
 {  {
         debug("channel %d: ibuf empty", c->self);          debug2("channel %d: ibuf empty", c->self);
         if (buffer_len(&c->input)) {          if (buffer_len(&c->input)) {
                 error("channel %d: chan_ibuf_empty for non empty buffer",                  error("channel %d: chan_ibuf_empty for non empty buffer",
                     c->self);                      c->self);
Line 169 
Line 169 
 static void  static void
 chan_rcvd_ieof1(Channel *c)  chan_rcvd_ieof1(Channel *c)
 {  {
         debug("channel %d: rcvd ieof", c->self);          debug2("channel %d: rcvd ieof", c->self);
         switch (c->ostate) {          switch (c->ostate) {
         case CHAN_OUTPUT_OPEN:          case CHAN_OUTPUT_OPEN:
                 chan_set_ostate(c, CHAN_OUTPUT_WAIT_DRAIN);                  chan_set_ostate(c, CHAN_OUTPUT_WAIT_DRAIN);
Line 186 
Line 186 
 static void  static void
 chan_write_failed1(Channel *c)  chan_write_failed1(Channel *c)
 {  {
         debug("channel %d: write failed", c->self);          debug2("channel %d: write failed", c->self);
         switch (c->ostate) {          switch (c->ostate) {
         case CHAN_OUTPUT_OPEN:          case CHAN_OUTPUT_OPEN:
                 chan_shutdown_write(c);                  chan_shutdown_write(c);
Line 207 
Line 207 
 void  void
 chan_obuf_empty(Channel *c)  chan_obuf_empty(Channel *c)
 {  {
         debug("channel %d: obuf empty", c->self);          debug2("channel %d: obuf empty", c->self);
         if (buffer_len(&c->output)) {          if (buffer_len(&c->output)) {
                 error("channel %d: chan_obuf_empty for non empty buffer",                  error("channel %d: chan_obuf_empty for non empty buffer",
                     c->self);                      c->self);
Line 229 
Line 229 
 static void  static void
 chan_send_ieof1(Channel *c)  chan_send_ieof1(Channel *c)
 {  {
         debug("channel %d: send ieof", c->self);          debug2("channel %d: send ieof", c->self);
         switch (c->istate) {          switch (c->istate) {
         case CHAN_INPUT_OPEN:          case CHAN_INPUT_OPEN:
         case CHAN_INPUT_WAIT_DRAIN:          case CHAN_INPUT_WAIT_DRAIN:
Line 246 
Line 246 
 static void  static void
 chan_send_oclose1(Channel *c)  chan_send_oclose1(Channel *c)
 {  {
         debug("channel %d: send oclose", c->self);          debug2("channel %d: send oclose", c->self);
         switch (c->ostate) {          switch (c->ostate) {
         case CHAN_OUTPUT_OPEN:          case CHAN_OUTPUT_OPEN:
         case CHAN_OUTPUT_WAIT_DRAIN:          case CHAN_OUTPUT_WAIT_DRAIN:
Line 268 
Line 268 
 static void  static void
 chan_rcvd_close2(Channel *c)  chan_rcvd_close2(Channel *c)
 {  {
         debug("channel %d: rcvd close", c->self);          debug2("channel %d: rcvd close", c->self);
         if (c->flags & CHAN_CLOSE_RCVD)          if (c->flags & CHAN_CLOSE_RCVD)
                 error("channel %d: protocol error: close rcvd twice", c->self);                  error("channel %d: protocol error: close rcvd twice", c->self);
         c->flags |= CHAN_CLOSE_RCVD;          c->flags |= CHAN_CLOSE_RCVD;
Line 301 
Line 301 
 static void  static void
 chan_rcvd_eof2(Channel *c)  chan_rcvd_eof2(Channel *c)
 {  {
         debug("channel %d: rcvd eof", c->self);          debug2("channel %d: rcvd eof", c->self);
         c->flags |= CHAN_EOF_RCVD;          c->flags |= CHAN_EOF_RCVD;
         if (c->ostate == CHAN_OUTPUT_OPEN)          if (c->ostate == CHAN_OUTPUT_OPEN)
                 chan_set_ostate(c, CHAN_OUTPUT_WAIT_DRAIN);                  chan_set_ostate(c, CHAN_OUTPUT_WAIT_DRAIN);
Line 309 
Line 309 
 static void  static void
 chan_write_failed2(Channel *c)  chan_write_failed2(Channel *c)
 {  {
         debug("channel %d: write failed", c->self);          debug2("channel %d: write failed", c->self);
         switch (c->ostate) {          switch (c->ostate) {
         case CHAN_OUTPUT_OPEN:          case CHAN_OUTPUT_OPEN:
         case CHAN_OUTPUT_WAIT_DRAIN:          case CHAN_OUTPUT_WAIT_DRAIN:
Line 325 
Line 325 
 static void  static void
 chan_send_eof2(Channel *c)  chan_send_eof2(Channel *c)
 {  {
         debug("channel %d: send eof", c->self);          debug2("channel %d: send eof", c->self);
         switch (c->istate) {          switch (c->istate) {
         case CHAN_INPUT_WAIT_DRAIN:          case CHAN_INPUT_WAIT_DRAIN:
                 packet_start(SSH2_MSG_CHANNEL_EOF);                  packet_start(SSH2_MSG_CHANNEL_EOF);
Line 342 
Line 342 
 static void  static void
 chan_send_close2(Channel *c)  chan_send_close2(Channel *c)
 {  {
         debug("channel %d: send close", c->self);          debug2("channel %d: send close", c->self);
         if (c->ostate != CHAN_OUTPUT_CLOSED ||          if (c->ostate != CHAN_OUTPUT_CLOSED ||
             c->istate != CHAN_INPUT_CLOSED) {              c->istate != CHAN_INPUT_CLOSED) {
                 error("channel %d: cannot send close for istate/ostate %d/%d",                  error("channel %d: cannot send close for istate/ostate %d/%d",
Line 398 
Line 398 
 chan_is_dead(Channel *c, int send)  chan_is_dead(Channel *c, int send)
 {  {
         if (c->type == SSH_CHANNEL_ZOMBIE) {          if (c->type == SSH_CHANNEL_ZOMBIE) {
                 debug("channel %d: zombie", c->self);                  debug2("channel %d: zombie", c->self);
                 return 1;                  return 1;
         }          }
         if (c->istate != CHAN_INPUT_CLOSED || c->ostate != CHAN_OUTPUT_CLOSED)          if (c->istate != CHAN_INPUT_CLOSED || c->ostate != CHAN_OUTPUT_CLOSED)
                 return 0;                  return 0;
         if (!compat20) {          if (!compat20) {
                 debug("channel %d: is dead", c->self);                  debug2("channel %d: is dead", c->self);
                 return 1;                  return 1;
         }          }
         if ((datafellows & SSH_BUG_EXTEOF) &&          if ((datafellows & SSH_BUG_EXTEOF) &&
Line 421 
Line 421 
                 } else {                  } else {
                         /* channel would be dead if we sent a close */                          /* channel would be dead if we sent a close */
                         if (c->flags & CHAN_CLOSE_RCVD) {                          if (c->flags & CHAN_CLOSE_RCVD) {
                                 debug("channel %d: almost dead",                                  debug2("channel %d: almost dead",
                                     c->self);                                      c->self);
                                 return 1;                                  return 1;
                         }                          }
Line 429 
Line 429 
         }          }
         if ((c->flags & CHAN_CLOSE_SENT) &&          if ((c->flags & CHAN_CLOSE_SENT) &&
             (c->flags & CHAN_CLOSE_RCVD)) {              (c->flags & CHAN_CLOSE_RCVD)) {
                 debug("channel %d: is dead", c->self);                  debug2("channel %d: is dead", c->self);
                 return 1;                  return 1;
         }          }
         return 0;          return 0;
Line 443 
Line 443 
         if (compat20 && c->type == SSH_CHANNEL_LARVAL)          if (compat20 && c->type == SSH_CHANNEL_LARVAL)
                 return;                  return;
         /* shutdown failure is allowed if write failed already */          /* shutdown failure is allowed if write failed already */
         debug("channel %d: close_write", c->self);          debug2("channel %d: close_write", c->self);
         if (c->sock != -1) {          if (c->sock != -1) {
                 if (shutdown(c->sock, SHUT_WR) < 0)                  if (shutdown(c->sock, SHUT_WR) < 0)
                         debug("channel %d: chan_shutdown_write: "                          debug2("channel %d: chan_shutdown_write: "
                             "shutdown() failed for fd%d: %.100s",                              "shutdown() failed for fd%d: %.100s",
                             c->self, c->sock, strerror(errno));                              c->self, c->sock, strerror(errno));
         } else {          } else {
Line 461 
Line 461 
 {  {
         if (compat20 && c->type == SSH_CHANNEL_LARVAL)          if (compat20 && c->type == SSH_CHANNEL_LARVAL)
                 return;                  return;
         debug("channel %d: close_read", c->self);          debug2("channel %d: close_read", c->self);
         if (c->sock != -1) {          if (c->sock != -1) {
                 if (shutdown(c->sock, SHUT_RD) < 0)                  if (shutdown(c->sock, SHUT_RD) < 0)
                         error("channel %d: chan_shutdown_read: "                          error("channel %d: chan_shutdown_read: "

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.49