aboutsummaryrefslogtreecommitdiff
path: root/src/gen_mod.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-24 16:31:39 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-24 16:31:39 +0300
commit0124d292b5d0a9e0d38bc54ba751b14271dc2c8b (patch)
tree8e280c570f36d1fe2a326c1d506b9531f66dd5cb /src/gen_mod.erl
parentRestart listeners on configuration reload (diff)
Add gen_mod:is_loaded_elsewhere/2
Diffstat (limited to 'src/gen_mod.erl')
-rw-r--r--src/gen_mod.erl11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gen_mod.erl b/src/gen_mod.erl
index 63bfa314b..ef000635d 100644
--- a/src/gen_mod.erl
+++ b/src/gen_mod.erl
@@ -37,7 +37,7 @@
get_opt/4, get_opt_host/3, opt_type/1, is_equal_opt/5,
get_module_opt/4, get_module_opt/5, get_module_opt_host/3,
loaded_modules/1, loaded_modules_with_opts/1,
- get_hosts/2, get_module_proc/2, is_loaded/2,
+ get_hosts/2, get_module_proc/2, is_loaded/2, is_loaded_elsewhere/2,
start_modules/0, start_modules/1, stop_modules/0, stop_modules/1,
db_mod/2, db_mod/3, ram_db_mod/2, ram_db_mod/3,
db_type/2, db_type/3, ram_db_type/2, ram_db_type/3]).
@@ -622,6 +622,15 @@ get_module_proc(Host, Base) ->
is_loaded(Host, Module) ->
ets:member(ejabberd_modules, {Module, Host}).
+-spec is_loaded_elsewhere(binary(), atom()) -> boolean().
+is_loaded_elsewhere(Host, Module) ->
+ ets:select_count(
+ ejabberd_modules,
+ ets:fun2ms(
+ fun(#ejabberd_module{module_host = {Mod, H}}) ->
+ (Mod == Module) and (H /= Host)
+ end)) /= 0.
+
-spec config_reloaded() -> ok.
config_reloaded() ->
lists:foreach(