aboutsummaryrefslogtreecommitdiff
path: root/src/web/mod_http_bind.erl
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2009-06-16 17:44:00 +0000
committerBadlop <badlop@process-one.net>2009-06-16 17:44:00 +0000
commit88d32b1064892d91a2657924eff4234c8a968a16 (patch)
tree469dab3bd0433bc193ddeb57c59ed76f58da3e8c /src/web/mod_http_bind.erl
parentDisabled debug (thanks to Stefan Strigler) (diff)
Deal with return values from starting/terminating supervisor (thanks to Stefan Strigler)
SVN Revision: 2204
Diffstat (limited to 'src/web/mod_http_bind.erl')
-rw-r--r--src/web/mod_http_bind.erl34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/web/mod_http_bind.erl b/src/web/mod_http_bind.erl
index 34ed88722..4f590c659 100644
--- a/src/web/mod_http_bind.erl
+++ b/src/web/mod_http_bind.erl
@@ -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.