aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/src
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2016-10-06 11:29:47 +0200
committerErlang/OTP <[email protected]>2016-10-06 11:29:47 +0200
commitc2e4feec8186c932408a5af79e97a64f01bec578 (patch)
tree127266f9ce5b249a4c393bf4c35713abb60187b3 /lib/ssh/src
parent310b00b7fc18b5883f5f2cb1b992deb1dd6c9a65 (diff)
parenteadc9b7a1a0349422a6b9ad1d52229562fc22375 (diff)
downloadotp-c2e4feec8186c932408a5af79e97a64f01bec578.tar.gz
otp-c2e4feec8186c932408a5af79e97a64f01bec578.tar.bz2
otp-c2e4feec8186c932408a5af79e97a64f01bec578.zip
Merge branch 'ingela/ssh/channel_exit_handling/OTP-13932' into maint-19
* ingela/ssh/channel_exit_handling/OTP-13932: ssh: Prepare release ssh: Handle gen_server:call/3 exits properly
Diffstat (limited to 'lib/ssh/src')
-rw-r--r--lib/ssh/src/ssh.appup.src4
-rw-r--r--lib/ssh/src/ssh_channel.erl7
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/ssh/src/ssh.appup.src b/lib/ssh/src/ssh.appup.src
index e38cecf226..4cda8fee95 100644
--- a/lib/ssh/src/ssh.appup.src
+++ b/lib/ssh/src/ssh.appup.src
@@ -20,9 +20,13 @@
{"%VSN%",
[
+ {<<"4.3.2">>, [{load_module, ssh_channel, soft_purge, soft_purge, []}
+ ]},
{<<".*">>, [{restart_application, ssh}]}
],
[
+ {<<"4.3.2">>, [{load_module, ssh_channel, soft_purge, soft_purge, []}
+ ]},
{<<".*">>, [{restart_application, ssh}]}
]
}.
diff --git a/lib/ssh/src/ssh_channel.erl b/lib/ssh/src/ssh_channel.erl
index a8e6ebde16..426e2f5125 100644
--- a/lib/ssh/src/ssh_channel.erl
+++ b/lib/ssh/src/ssh_channel.erl
@@ -93,11 +93,16 @@ call(ChannelPid, Msg, TimeOute) ->
catch
exit:{noproc, _} ->
{error, closed};
+ exit:{normal, _} ->
+ {error, closed};
+ exit:{shutdown, _} ->
+ {error, closed};
+ exit:{{shutdown, _}, _} ->
+ {error, closed};
exit:{timeout, _} ->
{error, timeout}
end.
-
cast(ChannelPid, Msg) ->
gen_server:cast(ChannelPid, Msg).