diff options
author | Ingela Anderton Andin <[email protected]> | 2014-09-17 17:04:34 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2014-09-25 20:03:06 +0200 |
commit | 19aa8b2e1e11f1da4723dbcce427831eca17d54e (patch) | |
tree | f5695a31cfa36daaaa7ec34691d1d24fabbf259c /lib/ssh/src/ssh.erl | |
parent | 828b5a03825e168d19715ed65876008b9fc00c39 (diff) | |
download | otp-19aa8b2e1e11f1da4723dbcce427831eca17d54e.tar.gz otp-19aa8b2e1e11f1da4723dbcce427831eca17d54e.tar.bz2 otp-19aa8b2e1e11f1da4723dbcce427831eca17d54e.zip |
ssh: Adjust supervisor tree to make sure new listning
options are honored
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. |