diff --git a/src/ejabberd_http.erl b/src/ejabberd_http.erl index b764ee367..7225e74cf 100644 --- a/src/ejabberd_http.erl +++ b/src/ejabberd_http.erl @@ -84,8 +84,9 @@ "">>). start(SockData, Opts) -> - supervisor:start_child(ejabberd_http_sup, - [SockData, Opts]). + {ok, + proc_lib:spawn(ejabberd_http, init, + [SockData, Opts])}. start_link(SockData, Opts) -> {ok, diff --git a/src/ejabberd_http_bind.erl b/src/ejabberd_http_bind.erl index 194b099d7..e72397726 100644 --- a/src/ejabberd_http_bind.erl +++ b/src/ejabberd_http_bind.erl @@ -152,9 +152,9 @@ start(XMPPDomain, Sid, Key, IP, HOpts) -> ?DEBUG("Starting session", []), - SupervisorProc = gen_mod:get_module_proc(XMPPDomain, ?PROCNAME_MHB), - case catch supervisor:start_child(SupervisorProc, - [Sid, Key, IP, HOpts]) + case catch gen_fsm:start(?MODULE, + [Sid, Key, IP, HOpts], + ?FSMOPTS) of {ok, Pid} -> {ok, Pid}; _ -> check_bind_module(XMPPDomain), diff --git a/src/ejabberd_http_ws.erl b/src/ejabberd_http_ws.erl index 65a80b004..ed88c03d9 100644 --- a/src/ejabberd_http_ws.erl +++ b/src/ejabberd_http_ws.erl @@ -75,7 +75,7 @@ -export_type([ws_socket/0]). start(WS) -> - supervisor:start_child(ejabberd_wsloop_sup, [WS]). + gen_fsm:start(?MODULE, [WS], ?FSMOPTS). start_link(WS) -> gen_fsm:start_link(?MODULE, [WS], ?FSMOPTS). diff --git a/src/ejabberd_sup.erl b/src/ejabberd_sup.erl index e6b30a3d6..9e6352202 100644 --- a/src/ejabberd_sup.erl +++ b/src/ejabberd_sup.erl @@ -121,14 +121,6 @@ init([]) -> infinity, supervisor, [ejabberd_tmp_sup]}, - HTTPSupervisor = - {ejabberd_http_sup, - {ejabberd_tmp_sup, start_link, - [ejabberd_http_sup, ejabberd_http]}, - permanent, - infinity, - supervisor, - [ejabberd_tmp_sup]}, FrontendSocketSupervisor = {ejabberd_frontend_socket_sup, {ejabberd_tmp_sup, start_link, @@ -157,7 +149,6 @@ init([]) -> S2SInSupervisor, S2SOutSupervisor, ServiceSupervisor, - HTTPSupervisor, IQSupervisor, FrontendSocketSupervisor, Listener]}}. diff --git a/src/mod_http_bind.erl b/src/mod_http_bind.erl index fbf43e80f..fd871705f 100644 --- a/src/mod_http_bind.erl +++ b/src/mod_http_bind.erl @@ -81,19 +81,11 @@ process(_Path, _Request) -> %%%---------------------------------------------------------------------- %%% BEHAVIOUR CALLBACKS %%%---------------------------------------------------------------------- -start(Host, _Opts) -> - setup_database(), - Proc = gen_mod:get_module_proc(Host, ?PROCNAME_MHB), - ChildSpec = {Proc, - {ejabberd_tmp_sup, start_link, - [Proc, ejabberd_http_bind]}, - permanent, infinity, supervisor, [ejabberd_tmp_sup]}, - supervisor:start_child(ejabberd_sup, ChildSpec). +start(_Host, _Opts) -> + setup_database(). -stop(Host) -> - Proc = gen_mod:get_module_proc(Host, ?PROCNAME_MHB), - supervisor:terminate_child(ejabberd_sup, Proc), - supervisor:delete_child(ejabberd_sup, Proc). +stop(_Host) -> + ok. setup_database() -> migrate_database(),