aboutsummaryrefslogtreecommitdiff
path: root/src/gen_mod.erl
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-06-23 17:06:53 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-06-23 17:06:53 +0300
commit4b65fcab62bad47233b3dda6837de871cf609f41 (patch)
treeef0d74fb2879460110d2461d26751d3b7322af2f /src/gen_mod.erl
parentLet it crash on unspecified option (diff)
Avoid code duplication in gen_mod
Diffstat (limited to 'src/gen_mod.erl')
-rw-r--r--src/gen_mod.erl22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/gen_mod.erl b/src/gen_mod.erl
index de2c63372..5dcb00cc8 100644
--- a/src/gen_mod.erl
+++ b/src/gen_mod.erl
@@ -30,7 +30,7 @@
stop_child/1, stop_child/2, config_reloaded/0]).
-export([start_module/2, stop_module/2, stop_module_keep_config/2,
get_opt/2, set_opt/3, get_opt_hosts/1, is_equal_opt/3,
- get_module_opt/3, get_module_opt_hosts/2,
+ get_module_opt/3, get_module_opts/2, get_module_opt_hosts/2,
loaded_modules/1, loaded_modules_with_opts/1,
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,
@@ -324,19 +324,13 @@ set_opt(Opt, Val, Opts) ->
get_module_opt(global, Module, Opt) ->
get_module_opt(ejabberd_config:get_myname(), Module, Opt);
get_module_opt(Host, Module, Opt) ->
- try ets:lookup_element(ejabberd_modules, {Module, Host}, 3) of
- Opts -> get_opt(Opt, Opts)
- catch _:badarg ->
- erlang:error({module_not_loaded, Module, Host})
- end.
+ Opts = get_module_opts(Host, Module),
+ get_opt(Opt, Opts).
-spec get_module_opt_hosts(binary(), module()) -> [binary()].
get_module_opt_hosts(Host, Module) ->
- try ets:lookup_element(ejabberd_modules, {Module, Host}, 3) of
- Opts -> get_opt_hosts(Opts)
- catch _:badarg ->
- erlang:error({module_not_loaded, Module, Host})
- end.
+ Opts = get_module_opts(Host, Module),
+ get_opt_hosts(Opts).
-spec get_opt_hosts(opts()) -> [binary()].
get_opt_hosts(Opts) ->
@@ -347,6 +341,12 @@ get_opt_hosts(Opts) ->
L
end.
+-spec get_module_opts(binary(), module()) -> opts().
+get_module_opts(Host, Module) ->
+ try ets:lookup_element(ejabberd_modules, {Module, Host}, 3)
+ catch _:badarg -> erlang:error({module_not_loaded, Module, Host})
+ end.
+
-spec db_mod(binary() | global | db_type() | opts(), module()) -> module().
db_mod(T, M) ->
db_mod(db_type, T, M).