debug("channel %d: INPUT_WAIT_CLOSE -> INPUT_CLOSED [rcvd OCLOSE]", c->self);
debug("channel %d: INPUT_WAIT_OCLOSE -> INPUT_CLOSED [rcvd OCLOSE]", c->self);
chan_rcvd_oclose(Channel *c){	switch(c->istate){	case CHAN_INPUT_WAIT_OCLOSE:		debug("channel %d: INPUT_WAIT_CLOSE -> INPUT_CLOSED [rcvd OCLOSE]", c->self);		c->istate=CHAN_INPUT_CLOSED;		chan_delele_if_full_closed(c);		break;	case CHAN_INPUT_OPEN:		debug("channel %d: INPUT_OPEN -> INPUT_CLOSED [rvcd OCLOSE, send IEOF]", c->self);		chan_shutdown_read(c);		chan_send_ieof(c);		c->istate=CHAN_INPUT_CLOSED;		chan_delele_if_full_closed(c);		break;	default:		debug("protocol error: chan_rcvd_oclose %d for istate %d",c->self,c->istate);		break;	}}