diff options
author | Erlang/OTP <[email protected]> | 2018-06-21 17:32:58 +0200 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2018-06-21 17:32:58 +0200 |
commit | 0b8b20d92795d3fad9e2f1903044b37d28b7092a (patch) | |
tree | 03e40d7ef1425e932e8333d1104545d2d809b764 /lib/ssh/src | |
parent | 0217f37bd9c0e16cc80b42c2a05c36504b4096ff (diff) | |
parent | f8cbae5c79f988de4110e4827420ad073a1c7fcb (diff) | |
download | otp-0b8b20d92795d3fad9e2f1903044b37d28b7092a.tar.gz otp-0b8b20d92795d3fad9e2f1903044b37d28b7092a.tar.bz2 otp-0b8b20d92795d3fad9e2f1903044b37d28b7092a.zip |
Merge branch 'hans/ssh/sftp_error_codes/ERIERL-194/OTP-15148' into maint-20
* hans/ssh/sftp_error_codes/ERIERL-194/OTP-15148:
ssh: Report the signal name if there is an exit-signal to sftpd
ssh: Bug fix sftp error codes
Diffstat (limited to 'lib/ssh/src')
-rw-r--r-- | lib/ssh/src/ssh_sftp.erl | 13 | ||||
-rw-r--r-- | lib/ssh/src/ssh_sftpd.erl | 6 |
2 files changed, 14 insertions, 5 deletions
diff --git a/lib/ssh/src/ssh_sftp.erl b/lib/ssh/src/ssh_sftp.erl index 9e1229dc85..79586141b2 100644 --- a/lib/ssh/src/ssh_sftp.erl +++ b/lib/ssh/src/ssh_sftp.erl @@ -801,13 +801,22 @@ handle_ssh_msg({ssh_cm, _, {signal, _, _}}, State) -> %% Ignore signals according to RFC 4254 section 6.9. {ok, State}; -handle_ssh_msg({ssh_cm, _, {exit_signal, ChannelId, _, Error, _}}, +handle_ssh_msg({ssh_cm, _, {exit_signal, ChannelId, Signal, Error0, _}}, State0) -> + Error = + case Error0 of + "" -> Signal; + _ -> Error0 + end, State = reply_all(State0, {error, Error}), {stop, ChannelId, State}; handle_ssh_msg({ssh_cm, _, {exit_status, ChannelId, Status}}, State0) -> - State = reply_all(State0, {error, {exit_status, Status}}), + State = + case State0 of + 0 -> State0; + _ -> reply_all(State0, {error, {exit_status, Status}}) + end, {stop, ChannelId, State}. %%-------------------------------------------------------------------- diff --git a/lib/ssh/src/ssh_sftpd.erl b/lib/ssh/src/ssh_sftpd.erl index a9136e5614..9e172fdb9c 100644 --- a/lib/ssh/src/ssh_sftpd.erl +++ b/lib/ssh/src/ssh_sftpd.erl @@ -137,9 +137,9 @@ handle_ssh_msg({ssh_cm, _, {signal, _, _}}, State) -> %% Ignore signals according to RFC 4254 section 6.9. {ok, State}; -handle_ssh_msg({ssh_cm, _, {exit_signal, ChannelId, _, Error, _}}, State) -> - Report = io_lib:format("Connection closed by peer ~n Error ~p~n", - [Error]), +handle_ssh_msg({ssh_cm, _, {exit_signal, ChannelId, Signal, Error, _}}, State) -> + Report = io_lib:format("Connection closed by peer signal ~p~n Error ~p~n", + [Signal,Error]), error_logger:error_report(Report), {stop, ChannelId, State}; |