From cbf3fec2c8fe2f45242b166e12cbb27218d46dc1 Mon Sep 17 00:00:00 2001 From: Evgeny Khramtsov Date: Tue, 23 Apr 2019 21:05:21 +0300 Subject: Don't call to mod_register when it's not loaded Fixes #2828 --- src/ejabberd_admin.erl | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/ejabberd_admin.erl') diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index c3192d5f9..82c35e40e 100644 --- a/src/ejabberd_admin.erl +++ b/src/ejabberd_admin.erl @@ -478,16 +478,23 @@ update_module(ModuleNameString) -> %%% register(User, Host, Password) -> - {ok, IPRaw} = inet_parse:address(binary_to_list(<<"::ffff:127.0.0.1">>)), - case mod_register:try_register(User, Host, Password, IPRaw, <<"en">>) of + Ret = case gen_mod:is_loaded(Host, mod_register) of + true -> + {ok, IPRaw} = inet_parse:address("::ffff:127.0.0.1"), + mod_register:try_register(User, Host, Password, IPRaw); + false -> + ejabberd_auth:try_register(User, Host, Password) + end, + case Ret of ok -> {ok, io_lib:format("User ~s@~s successfully registered", [User, Host])}; {error, exists} -> Msg = io_lib:format("User ~s@~s already registered", [User, Host]), {error, conflict, 10090, Msg}; {error, Reason} -> - String = io_lib:format("Can't register user ~s@~s at node ~p: ~p", - [User, Host, node(), Reason]), + String = io_lib:format("Can't register user ~s@~s at node ~p: ~s", + [User, Host, node(), + mod_register:format_error(Reason)]), {error, cannot_register, 10001, String} end. -- cgit v1.2.3