diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_listener.erl | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 51f584c6a..f16cfb0d8 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -179,6 +179,21 @@ accept_ssl(ListenSocket, Module, Opts) -> start_listener(Port, Module, Opts) -> + start_module_sup(Module), + start_listener_sup(Port, Module, Opts). + +start_module_sup(Module) -> + Proc = gen_mod:get_module_proc("sup", Module), + ChildSpec = + {Proc, + {ejabberd_tmp_sup, start_link, [Proc, Module]}, + permanent, + infinity, + supervisor, + [ejabberd_tmp_sup]}, + supervisor:start_child(ejabberd_sup, ChildSpec). + +start_listener_sup(Port, Module, Opts) -> ChildSpec = {Port, {?MODULE, start, [Port, Module, Opts]}, transient, |