25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-22 16:20:52 +01:00

Deal with return values from starting/terminating supervisor (thanks to Stefan Strigler)

SVN Revision: 2267
This commit is contained in:
Badlop 2009-06-16 18:24:05 +00:00
parent 33896adf9d
commit eca818be5a

View File

@ -75,17 +75,27 @@ process(_Path, _Request) ->
%%% BEHAVIOUR CALLBACKS %%% BEHAVIOUR CALLBACKS
%%%---------------------------------------------------------------------- %%%----------------------------------------------------------------------
start(_Host, _Opts) -> start(_Host, _Opts) ->
supervisor:start_child( HTTPBindSupervisor =
ejabberd_sup, {ejabberd_http_bind_sup,
{ejabberd_http_bind_sup, {ejabberd_tmp_sup, start_link,
{ejabberd_tmp_sup, start_link, [ejabberd_http_bind_sup, ejabberd_http_bind]},
[ejabberd_http_bind_sup, ejabberd_http_bind]}, permanent,
permanent, infinity,
infinity, supervisor,
supervisor, [ejabberd_tmp_sup]},
[ejabberd_tmp_sup]}), case supervisor:start_child(ejabberd_sup, HTTPBindSupervisor) of
ok. {ok, _Pid} ->
ok;
{ok, _Pid, _Info} ->
ok;
{error, Error} ->
{'EXIT', {start_child_error, Error}}
end.
stop(_Host) -> stop(_Host) ->
supervisor:terminate_child(ejabberd_sup, ejabberd_http_bind_sup), case supervisor:terminate_child(ejabberd_sup, ejabberd_http_bind_sup) of
ok. ok ->
ok;
{error, Error} ->
{'EXIT', {terminate_child_error, Error}}
end.