aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mod_conversejs.erl11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mod_conversejs.erl b/src/mod_conversejs.erl
index 767a3824b..61cec2322 100644
--- a/src/mod_conversejs.erl
+++ b/src/mod_conversejs.erl
@@ -183,10 +183,19 @@ get_register_options(Server) ->
(_) -> false
end,
ejabberd_auth:auth_modules(Server)),
- Modules = mod_register_opt:allow_modules(Server),
+ Modules = get_register_modules(Server),
ModRegisterAllowsMe = (Modules == all) orelse lists:member(?MODULE, Modules),
[{<<"allow_registration">>, AuthSupportsRegister and ModRegisterAllowsMe}].
+get_register_modules(Server) ->
+ try mod_register_opt:allow_modules(Server)
+ catch
+ error:{module_not_loaded, mod_register, _} ->
+ ?DEBUG("mod_conversejs couldn't get mod_register configuration for "
+ "vhost ~p: module not loaded in that vhost.", [Server]),
+ []
+ end.
+
get_extra_options(Host) ->
RawOpts = gen_mod:get_module_opt(Host, ?MODULE, conversejs_options),
lists:map(fun({Name, <<"true">>}) -> {Name, true};