aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_admin.erl
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-04-23 21:05:21 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-04-23 21:05:21 +0300
commitcbf3fec2c8fe2f45242b166e12cbb27218d46dc1 (patch)
tree8bf9859df623a19441b4e30d7c28d14a6b4ad0c6 /src/ejabberd_admin.erl
parentAdd 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.erl15
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.