25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-10-31 15:21:38 +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
%%%----------------------------------------------------------------------
start(_Host, _Opts) ->
supervisor:start_child(
ejabberd_sup,
{ejabberd_http_bind_sup,
{ejabberd_tmp_sup, start_link,
[ejabberd_http_bind_sup, ejabberd_http_bind]},
permanent,
infinity,
supervisor,
[ejabberd_tmp_sup]}),
ok.
HTTPBindSupervisor =
{ejabberd_http_bind_sup,
{ejabberd_tmp_sup, start_link,
[ejabberd_http_bind_sup, ejabberd_http_bind]},
permanent,
infinity,
supervisor,
[ejabberd_tmp_sup]},
case supervisor:start_child(ejabberd_sup, HTTPBindSupervisor) of
{ok, _Pid} ->
ok;
{ok, _Pid, _Info} ->
ok;
{error, Error} ->
{'EXIT', {start_child_error, Error}}
end.
stop(_Host) ->
supervisor:terminate_child(ejabberd_sup, ejabberd_http_bind_sup),
ok.
case supervisor:terminate_child(ejabberd_sup, ejabberd_http_bind_sup) of
ok ->
ok;
{error, Error} ->
{'EXIT', {terminate_child_error, Error}}
end.