From 0e25f8d43ea48d0a3db7b1b16f6c40f3077306ce Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 23 May 2022 16:41:19 +0200 Subject: [PATCH] Fix mod_conversejs crash when mod_register not enabled (#3824) --- src/mod_conversejs.erl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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};