diff options
Diffstat (limited to 'src/mod_delegation.erl')
-rw-r--r-- | src/mod_delegation.erl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mod_delegation.erl b/src/mod_delegation.erl index fcc857c29..9abf5a45f 100644 --- a/src/mod_delegation.erl +++ b/src/mod_delegation.erl @@ -64,8 +64,9 @@ start(Host, Opts) -> stop(Host) -> Proc = gen_mod:get_module_proc(Host, ?MODULE), - gen_server:call(Proc, stop), - supervisor:delete_child(ejabberd_sup, Proc). + supervisor:terminate_child(ejabberd_sup, Proc), + supervisor:delete_child(ejabberd_sup, Proc), + ok. mod_opt_type(iqdisc) -> fun gen_iq_handler:check_type/1; mod_opt_type(namespaces) -> validate_fun(); @@ -125,6 +126,7 @@ disco_sm_identity(Acc, From, To, Node, Lang) -> %%% gen_server callbacks %%%=================================================================== init([Host, _Opts]) -> + process_flag(trap_exit, true), ejabberd_hooks:add(component_connected, ?MODULE, component_connected, 50), ejabberd_hooks:add(component_disconnected, ?MODULE, |