version 1.322, 2013/06/01 13:15:51 |
version 1.323, 2013/06/07 15:37:52 |
|
|
case SSH_CHANNEL_OPEN: |
case SSH_CHANNEL_OPEN: |
case SSH_CHANNEL_INPUT_DRAINING: |
case SSH_CHANNEL_INPUT_DRAINING: |
case SSH_CHANNEL_OUTPUT_DRAINING: |
case SSH_CHANNEL_OUTPUT_DRAINING: |
|
case SSH_CHANNEL_ABANDONED: |
return (c); |
return (c); |
} |
} |
logit("Non-public channel %d, type %d.", id, c->type); |
logit("Non-public channel %d, type %d.", id, c->type); |
|
|
case SSH_CHANNEL_DYNAMIC: |
case SSH_CHANNEL_DYNAMIC: |
case SSH_CHANNEL_CONNECTING: |
case SSH_CHANNEL_CONNECTING: |
case SSH_CHANNEL_ZOMBIE: |
case SSH_CHANNEL_ZOMBIE: |
|
case SSH_CHANNEL_ABANDONED: |
continue; |
continue; |
case SSH_CHANNEL_LARVAL: |
case SSH_CHANNEL_LARVAL: |
if (!compat20) |
if (!compat20) |
|
|
case SSH_CHANNEL_OPENING: |
case SSH_CHANNEL_OPENING: |
case SSH_CHANNEL_CONNECTING: |
case SSH_CHANNEL_CONNECTING: |
case SSH_CHANNEL_ZOMBIE: |
case SSH_CHANNEL_ZOMBIE: |
|
case SSH_CHANNEL_ABANDONED: |
continue; |
continue; |
case SSH_CHANNEL_LARVAL: |
case SSH_CHANNEL_LARVAL: |
case SSH_CHANNEL_AUTH_SOCKET: |
case SSH_CHANNEL_AUTH_SOCKET: |
|
|
case SSH_CHANNEL_CLOSED: |
case SSH_CHANNEL_CLOSED: |
case SSH_CHANNEL_AUTH_SOCKET: |
case SSH_CHANNEL_AUTH_SOCKET: |
case SSH_CHANNEL_ZOMBIE: |
case SSH_CHANNEL_ZOMBIE: |
|
case SSH_CHANNEL_ABANDONED: |
case SSH_CHANNEL_MUX_CLIENT: |
case SSH_CHANNEL_MUX_CLIENT: |
case SSH_CHANNEL_MUX_LISTENER: |
case SSH_CHANNEL_MUX_LISTENER: |
continue; |
continue; |
|
|
if (c == NULL) |
if (c == NULL) |
packet_disconnect("Received close confirmation for " |
packet_disconnect("Received close confirmation for " |
"out-of-range channel %d.", id); |
"out-of-range channel %d.", id); |
if (c->type != SSH_CHANNEL_CLOSED) |
if (c->type != SSH_CHANNEL_CLOSED && c->type != SSH_CHANNEL_ABANDONED) |
packet_disconnect("Received close confirmation for " |
packet_disconnect("Received close confirmation for " |
"non-closed channel %d (type %d).", id, c->type); |
"non-closed channel %d (type %d).", id, c->type); |
channel_free(c); |
channel_free(c); |