version 1.39, 2002/01/14 13:34:07 |
version 1.40, 2002/01/14 13:40:10 |
|
|
* the same for SSH2 |
* the same for SSH2 |
*/ |
*/ |
static void |
static void |
chan_rcvd_oclose2(Channel *c) |
chan_rcvd_close2(Channel *c) |
{ |
{ |
debug("channel %d: rcvd close", c->self); |
debug("channel %d: rcvd close", c->self); |
if (c->flags & CHAN_CLOSE_RCVD) |
if (c->flags & CHAN_CLOSE_RCVD) |
|
|
switch (c->istate) { |
switch (c->istate) { |
case CHAN_INPUT_OPEN: |
case CHAN_INPUT_OPEN: |
chan_shutdown_read(c); |
chan_shutdown_read(c); |
|
chan_set_istate(c, CHAN_INPUT_CLOSED); |
break; |
break; |
case CHAN_INPUT_WAIT_DRAIN: |
case CHAN_INPUT_WAIT_DRAIN: |
chan_send_eof2(c); |
chan_send_eof2(c); |
|
chan_set_istate(c, CHAN_INPUT_CLOSED); |
break; |
break; |
} |
} |
chan_set_istate(c, CHAN_INPUT_CLOSED); |
|
} |
} |
static void |
static void |
chan_ibuf_empty2(Channel *c) |
chan_ibuf_empty2(Channel *c) |
|
|
chan_ibuf_empty1(c); |
chan_ibuf_empty1(c); |
} |
} |
static void |
static void |
chan_rcvd_ieof2(Channel *c) |
chan_rcvd_eof2(Channel *c) |
{ |
{ |
debug("channel %d: rcvd eof", c->self); |
debug("channel %d: rcvd eof", c->self); |
if (c->ostate == CHAN_OUTPUT_OPEN) |
if (c->ostate == CHAN_OUTPUT_OPEN) |
|
|
chan_init(void) |
chan_init(void) |
{ |
{ |
if (compat20) { |
if (compat20) { |
chan_rcvd_oclose = chan_rcvd_oclose2; |
chan_rcvd_oclose = chan_rcvd_close2; |
chan_read_failed = chan_read_failed_12; |
chan_read_failed = chan_read_failed_12; |
chan_ibuf_empty = chan_ibuf_empty2; |
chan_ibuf_empty = chan_ibuf_empty2; |
|
|
chan_rcvd_ieof = chan_rcvd_ieof2; |
chan_rcvd_ieof = chan_rcvd_eof2; |
chan_write_failed = chan_write_failed2; |
chan_write_failed = chan_write_failed2; |
chan_obuf_empty = chan_obuf_empty2; |
chan_obuf_empty = chan_obuf_empty2; |
} else { |
} else { |