aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/src/ssh_cli.erl
diff options
context:
space:
mode:
authorHans Nilsson <[email protected]>2016-09-28 12:16:32 +0200
committerHans Nilsson <[email protected]>2016-09-28 12:16:32 +0200
commita8735970c9f02acd5de984a353de79a089f01bf1 (patch)
tree10dd62e2d4b50e0c1066e3a6b64af22733ff3500 /lib/ssh/src/ssh_cli.erl
parenteb7e521d7a7101f4858e2c69b61da06b76b41ccc (diff)
parent5e698cb679546dae32c64fabd4e5a65cb5886297 (diff)
downloadotp-a8735970c9f02acd5de984a353de79a089f01bf1.tar.gz
otp-a8735970c9f02acd5de984a353de79a089f01bf1.tar.bz2
otp-a8735970c9f02acd5de984a353de79a089f01bf1.zip
Merge branch 'isvilen/ssh_REPL_exit_status/PR-1173/OTP-13905' into maint
Diffstat (limited to 'lib/ssh/src/ssh_cli.erl')
-rw-r--r--lib/ssh/src/ssh_cli.erl11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/ssh/src/ssh_cli.erl b/lib/ssh/src/ssh_cli.erl
index 74cd2e081a..8af0ecc5f9 100644
--- a/lib/ssh/src/ssh_cli.erl
+++ b/lib/ssh/src/ssh_cli.erl
@@ -208,8 +208,15 @@ handle_msg({Group, Req}, #state{group = Group, buf = Buf, pty = Pty,
write_chars(ConnectionHandler, ChannelId, Chars),
{ok, State#state{buf = NewBuf}};
-handle_msg({'EXIT', Group, _Reason}, #state{group = Group,
- channel = ChannelId} = State) ->
+handle_msg({'EXIT', Group, Reason}, #state{group = Group,
+ cm = ConnectionHandler,
+ channel = ChannelId} = State) ->
+ Status = case Reason of
+ normal -> 0;
+ _ -> -1
+ end,
+ ssh_connection:exit_status(ConnectionHandler, ChannelId, Status),
+ ssh_connection:send_eof(ConnectionHandler, ChannelId),
{stop, ChannelId, State};
handle_msg(_, State) ->