diff options
author | Ingela Anderton Andin <ingela@erlang.org> | 2011-08-18 10:19:34 +0200 |
---|---|---|
committer | Ingela Anderton Andin <ingela@erlang.org> | 2012-02-13 10:41:54 +0100 |
commit | dc03388dd171db15ba72be2b3d24276c4e2e98b8 (patch) | |
tree | 976eac3af7c377a85fc53cb8c616fecb84a12bf4 | |
parent | 86231a380b27fc262e48aa8c3f0372d4d2056682 (diff) | |
download | otp-dc03388dd171db15ba72be2b3d24276c4e2e98b8.tar.gz otp-dc03388dd171db15ba72be2b3d24276c4e2e98b8.tar.bz2 otp-dc03388dd171db15ba72be2b3d24276c4e2e98b8.zip |
Avoid to crash if the remote side closes the connection prematurely
-rw-r--r-- | lib/ssh/src/ssh_connection_manager.erl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/ssh/src/ssh_connection_manager.erl b/lib/ssh/src/ssh_connection_manager.erl index 9bfd5270da..f729276e65 100644 --- a/lib/ssh/src/ssh_connection_manager.erl +++ b/lib/ssh/src/ssh_connection_manager.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2010. All Rights Reserved. +%% Copyright Ericsson AB 2008-2011. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -144,7 +144,7 @@ adjust_window(ConnectionManager, Channel, Bytes) -> cast(ConnectionManager, {adjust_window, Channel, Bytes}). close(ConnectionManager, ChannelId) -> - try call(ConnectionManager, {close, ChannelId}) of + try call(ConnectionManager, {close, ChannelId}) of ok -> ok; {error, channel_closed} -> @@ -604,6 +604,8 @@ call(Pid, Msg, Timeout) -> exit:{timeout, _} -> {error, timeout}; exit:{normal, _} -> + {error, channel_closed}; + exit:{noproc,_} -> {error, channel_closed} end. |