diff options
author | Ingela Anderton Andin <[email protected]> | 2012-04-25 14:09:40 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2012-05-04 11:25:02 +0200 |
commit | 02fa402909ede20b75f1aa6e4c133d866ddc506b (patch) | |
tree | b4ac39e49075f8564897e08c9756f31bef78ab71 /lib/ssh/src/ssh_connection.erl | |
parent | c5d6ce6a07478c5ac19fdf2df244c4b837888d08 (diff) | |
download | otp-02fa402909ede20b75f1aa6e4c133d866ddc506b.tar.gz otp-02fa402909ede20b75f1aa6e4c133d866ddc506b.tar.bz2 otp-02fa402909ede20b75f1aa6e4c133d866ddc506b.zip |
The channel id in a channel failure message, sent to the peer, is now in all cases the remote channel id
Diffstat (limited to 'lib/ssh/src/ssh_connection.erl')
-rw-r--r-- | lib/ssh/src/ssh_connection.erl | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/ssh/src/ssh_connection.erl b/lib/ssh/src/ssh_connection.erl index 46f0c7e688..c46f799b6d 100644 --- a/lib/ssh/src/ssh_connection.erl +++ b/lib/ssh/src/ssh_connection.erl @@ -720,12 +720,17 @@ handle_msg(#ssh_msg_channel_request{request_type = "env"}, handle_msg(#ssh_msg_channel_request{recipient_channel = ChannelId, request_type = _Other, - want_reply = WantReply}, Connection, + want_reply = WantReply}, #connection{channel_cache = Cache} = Connection, ConnectionPid, _) -> if WantReply == true -> - FailMsg = channel_failure_msg(ChannelId), - {{replies, [{connection_reply, ConnectionPid, FailMsg}]}, - Connection}; + case ssh_channel:cache_lookup(Cache, ChannelId) of + #channel{remote_id = RemoteId} -> + FailMsg = channel_failure_msg(RemoteId), + {{replies, [{connection_reply, ConnectionPid, FailMsg}]}, + Connection}; + undefined -> %% Chanel has been closed + {noreply, Connection} + end; true -> {noreply, Connection} end; |