diff options
-rw-r--r-- | src/gen_mod.erl | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/gen_mod.erl b/src/gen_mod.erl index 261e6c6dd..6dac8cdef 100644 --- a/src/gen_mod.erl +++ b/src/gen_mod.erl @@ -28,7 +28,7 @@ -author('alexey@process-one.net'). --export([start/0, start_module/3, stop_module/2, +-export([start/0, start_module/2, start_module/3, stop_module/2, stop_module_keep_config/2, get_opt/3, get_opt/4, get_opt_host/3, db_type/1, db_type/2, get_module_opt/5, get_module_opt_host/3, loaded_modules/1, @@ -60,6 +60,19 @@ start() -> {keypos, #ejabberd_module.module_host}]), ok. +-spec start_module(binary(), atom()) -> any(). + +start_module(Host, Module) -> + Modules = ejabberd_config:get_option( + {modules, Host}, + fun(L) when is_list(L) -> L end, []), + case lists:keyfind(Module, 1, Modules) of + {_, Opts} -> + start_module(Host, Module, Opts); + false -> + {error, not_found_in_config} + end. + -spec start_module(binary(), atom(), opts()) -> any(). start_module(Host, Module, Opts) -> |