Skip to content
This repository has been archived by the owner on Oct 20, 2023. It is now read-only.

Commit

Permalink
Fix handling of SSH2_MSG_CHANNEL_CLOSE, which was breaking in port
Browse files Browse the repository at this point in the history
forwarding talking to ssh.com's ssh-3.0.1.

[originally from svn r1216]
  • Loading branch information
sgtatham committed Aug 27, 2001
1 parent 4692974 commit 5c646f3
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions ssh.c
Original file line number Diff line number Diff line change
Expand Up @@ -4729,22 +4729,29 @@ static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt)
c = find234(ssh_channels, &i, ssh_channelfind);
if (!c)
continue; /* nonexistent channel */
if (c->closes == 0) {
ssh2_pkt_init(SSH2_MSG_CHANNEL_CLOSE);
ssh2_pkt_adduint32(c->remoteid);
ssh2_pkt_send();
}
/* Do pre-close processing on the channel. */
switch (c->type) {
case CHAN_MAINSESSION:
break; /* nothing to see here, move along */
case CHAN_X11:
if (c->u.x11.s != NULL)
x11_close(c->u.x11.s);
sshfwd_close(c);
break;
case CHAN_AGENT:
sshfwd_close(c);
break;
case CHAN_SOCKDATA:
if (c->u.pfd.s != NULL)
pfd_close(c->u.pfd.s);
sshfwd_close(c);
break;
}
if (c->closes == 0) {
ssh2_pkt_init(SSH2_MSG_CHANNEL_CLOSE);
ssh2_pkt_adduint32(c->remoteid);
ssh2_pkt_send();
}
del234(ssh_channels, c);
bufchain_clear(&c->v.v2.outbuffer);
sfree(c);
Expand Down

0 comments on commit 5c646f3

Please sign in to comment.