diff options
author | Henrik Nord <[email protected]> | 2014-09-30 09:39:51 +0200 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2014-09-30 09:39:51 +0200 |
commit | 88d5c0edbd08e069bc20cf13fa90bca59eb43e86 (patch) | |
tree | bef481b72ffa142b7a9fb1ee9e5be969e3e7093e /lib/ssh/src/ssh.erl | |
parent | 6b240f6d882a10707ff2dea4e171a2d9599b3746 (diff) | |
parent | ee24a87a779d8d10461cadd47b3eb276e70baef8 (diff) | |
download | otp-88d5c0edbd08e069bc20cf13fa90bca59eb43e86.tar.gz otp-88d5c0edbd08e069bc20cf13fa90bca59eb43e86.tar.bz2 otp-88d5c0edbd08e069bc20cf13fa90bca59eb43e86.zip |
Merge branch 'maint-17' into maint
Conflicts:
OTP_VERSION
lib/ssh/test/ssh_connection_SUITE.erl
Diffstat (limited to 'lib/ssh/src/ssh.erl')
-rw-r--r-- | lib/ssh/src/ssh.erl | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/ssh/src/ssh.erl b/lib/ssh/src/ssh.erl index 8a8d4bb89e..de047d3c83 100644 --- a/lib/ssh/src/ssh.erl +++ b/lib/ssh/src/ssh.erl @@ -234,22 +234,26 @@ do_start_daemon(Host, Port, Options, SocketOptions) -> {port, Port}, {role, server}, {socket_opts, SocketOptions}, {ssh_opts, Options}]) of - {ok, SysSup} -> - {ok, SysSup}; {error, {already_started, _}} -> {error, eaddrinuse}; - {error, R} -> - {error, R} + Result = {Code, _} when (Code == ok) or (Code == error) -> + Result catch exit:{noproc, _} -> {error, ssh_not_started} end; Sup -> - case ssh_system_sup:restart_acceptor(Host, Port) of + AccPid = ssh_system_sup:acceptor_supervisor(Sup), + case ssh_acceptor_sup:start_child(AccPid, [{address, Host}, + {port, Port}, {role, server}, + {socket_opts, SocketOptions}, + {ssh_opts, Options}]) of + {error, {already_started, _}} -> + {error, eaddrinuse}; {ok, _} -> {ok, Sup}; - _ -> - {error, eaddrinuse} + Other -> + Other end end. |