case SSH_CHANNEL_ZOMBIE:
channel_open_message(){	Buffer buffer;	Channel *c;	char buf[1024], *cp;	int i;	buffer_init(&buffer);	snprintf(buf, sizeof buf, "The following connections are open:\r\n");	buffer_append(&buffer, buf, strlen(buf));	for (i = 0; i < channels_alloc; i++) {		c = channels[i];		if (c == NULL)			continue;		switch (c->type) {		case SSH_CHANNEL_X11_LISTENER:		case SSH_CHANNEL_PORT_LISTENER:		case SSH_CHANNEL_RPORT_LISTENER:		case SSH_CHANNEL_CLOSED:		case SSH_CHANNEL_AUTH_SOCKET:			continue;		case SSH_CHANNEL_LARVAL:		case SSH_CHANNEL_OPENING:		case SSH_CHANNEL_CONNECTING:		case SSH_CHANNEL_DYNAMIC:		case SSH_CHANNEL_OPEN:		case SSH_CHANNEL_X11_OPEN:		case SSH_CHANNEL_INPUT_DRAINING:		case SSH_CHANNEL_OUTPUT_DRAINING:			snprintf(buf, sizeof buf, "  #%d %.300s (t%d r%d i%d/%d o%d/%d fd %d/%d)\r\n",			    c->self, c->remote_name,			    c->type, c->remote_id,			    c->istate, buffer_len(&c->input),			    c->ostate, buffer_len(&c->output),			    c->rfd, c->wfd);			buffer_append(&buffer, buf, strlen(buf));			continue;		default:			fatal("channel_open_message: bad channel type %d", c->type);			/* NOTREACHED */		}	}	buffer_append(&buffer, "\0", 1);	cp = xstrdup(buffer_ptr(&buffer));	buffer_free(&buffer);	return cp;}