diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-07-29 10:46:20 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-07-29 10:46:20 +0300 |
commit | 35576b460835a4c667a926ca86e58414fe3d8d12 (patch) | |
tree | a2c5f3ef196c2569227660779a901fcdee9fb18a /src/mod_privilege.erl | |
parent | Improve ejabberd halting procedure (diff) |
Improve hooks validator and fix bugs related to hooks registration
Diffstat (limited to 'src/mod_privilege.erl')
-rw-r--r-- | src/mod_privilege.erl | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mod_privilege.erl b/src/mod_privilege.erl index b6e56ead..9ca78f67 100644 --- a/src/mod_privilege.erl +++ b/src/mod_privilege.erl @@ -269,9 +269,16 @@ handle_info(Info, State) -> {noreply, State}. terminate(_Reason, State) -> - %% Note: we don't remove component_* hooks because they are global - %% and might be registered within a module on another virtual host Host = State#state.server_host, + case gen_mod:is_loaded_elsewhere(Host, ?MODULE) of + false -> + ejabberd_hooks:delete(component_connected, ?MODULE, + component_connected, 50), + ejabberd_hooks:delete(component_disconnected, ?MODULE, + component_disconnected, 50); + true -> + ok + end, ejabberd_hooks:delete(local_send_to_resource_hook, Host, ?MODULE, process_message, 50), ejabberd_hooks:delete(roster_remote_access, Host, ?MODULE, |