diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-04-23 21:05:21 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-04-23 21:05:21 +0300 |
commit | cbf3fec2c8fe2f45242b166e12cbb27218d46dc1 (patch) | |
tree | 8bf9859df623a19441b4e30d7c28d14a6b4ad0c6 /src/ejabberd_admin.erl | |
parent | Add WebSockets support to mod_mqtt (diff) |
Don't call to mod_register when it's not loaded
Fixes #2828
Diffstat (limited to 'src/ejabberd_admin.erl')
-rw-r--r-- | src/ejabberd_admin.erl | 15 |
1 files changed, 11 insertions, 4 deletions
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. |