version 1.8, 1999/11/24 20:21:48 |
version 1.9, 1999/12/02 20:10:05 |
|
|
chan_delele_if_full_closed(c); |
chan_delele_if_full_closed(c); |
break; |
break; |
default: |
default: |
debug("protocol error: chan_rcvd_oclose %d for istate %d", c->self, c->istate); |
error("protocol error: chan_rcvd_oclose %d for istate %d", c->self, c->istate); |
break; |
break; |
} |
} |
} |
} |
|
|
c->istate = CHAN_INPUT_WAIT_DRAIN; |
c->istate = CHAN_INPUT_WAIT_DRAIN; |
break; |
break; |
default: |
default: |
debug("internal error: we do not read, but chan_read_failed %d for istate %d", |
error("internal error: we do not read, but chan_read_failed %d for istate %d", |
c->self, c->istate); |
c->self, c->istate); |
break; |
break; |
} |
} |
|
|
chan_ibuf_empty(Channel *c) |
chan_ibuf_empty(Channel *c) |
{ |
{ |
if (buffer_len(&c->input)) { |
if (buffer_len(&c->input)) { |
debug("internal error: chan_ibuf_empty %d for non empty buffer", c->self); |
error("internal error: chan_ibuf_empty %d for non empty buffer", c->self); |
return; |
return; |
} |
} |
switch (c->istate) { |
switch (c->istate) { |
|
|
c->istate = CHAN_INPUT_WAIT_OCLOSE; |
c->istate = CHAN_INPUT_WAIT_OCLOSE; |
break; |
break; |
default: |
default: |
debug("internal error: chan_ibuf_empty %d for istate %d", c->self, c->istate); |
error("internal error: chan_ibuf_empty %d for istate %d", c->self, c->istate); |
break; |
break; |
} |
} |
} |
} |
|
|
chan_delele_if_full_closed(c); |
chan_delele_if_full_closed(c); |
break; |
break; |
default: |
default: |
debug("protocol error: chan_rcvd_ieof %d for ostate %d", c->self, c->ostate); |
error("protocol error: chan_rcvd_ieof %d for ostate %d", c->self, c->ostate); |
break; |
break; |
} |
} |
} |
} |
|
|
chan_delele_if_full_closed(c); |
chan_delele_if_full_closed(c); |
break; |
break; |
default: |
default: |
debug("internal error: chan_write_failed %d for ostate %d", c->self, c->ostate); |
error("internal error: chan_write_failed %d for ostate %d", c->self, c->ostate); |
break; |
break; |
} |
} |
} |
} |
|
|
chan_delele_if_full_closed(c); |
chan_delele_if_full_closed(c); |
break; |
break; |
default: |
default: |
debug("internal error: chan_obuf_empty %d for ostate %d", c->self, c->ostate); |
error("internal error: chan_obuf_empty %d for ostate %d", c->self, c->ostate); |
break; |
break; |
} |
} |
} |
} |
|
|
packet_send(); |
packet_send(); |
break; |
break; |
default: |
default: |
debug("internal error: channel %d: cannot send IEOF for istate %d", c->self, c->istate); |
error("internal error: channel %d: cannot send IEOF for istate %d", c->self, c->istate); |
break; |
break; |
} |
} |
} |
} |
|
|
packet_send(); |
packet_send(); |
break; |
break; |
default: |
default: |
debug("internal error: channel %d: cannot send OCLOSE for ostate %d", c->self, c->istate); |
error("internal error: channel %d: cannot send OCLOSE for ostate %d", c->self, c->istate); |
break; |
break; |
} |
} |
} |
} |