diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index 19ab9cb5a..2b704d999 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -800,7 +800,7 @@ commands() -> tags = [session], desc = "List user's connected resources", module = ?MODULE, function = user_resources, - args = [{user, string}, {host, string}], + args = [{user, binary}, {host, binary}], result = {resources, {list, {resource, string}}}}]. -spec connected_users() -> [binary()]. diff --git a/src/ejabberd_xmlrpc.erl b/src/ejabberd_xmlrpc.erl index acda0c7f9..76610af8e 100644 --- a/src/ejabberd_xmlrpc.erl +++ b/src/ejabberd_xmlrpc.erl @@ -345,14 +345,18 @@ build_fault_response(Code, ParseString, ParseArgs) -> do_command(AccessCommands, Auth, Command, AttrL, ArgsF, ResultF) -> ArgsFormatted = format_args(AttrL, ArgsF), - {UserT, ServerT, PasswordT} = Auth, - AuthBin = {list_to_binary(UserT), list_to_binary(ServerT), list_to_binary(PasswordT)}, + AuthBin = convert_auth(Auth), Result = ejabberd_commands:execute_command(AccessCommands, AuthBin, Command, ArgsFormatted), ResultFormatted = format_result(Result, ResultF), {command_result, ResultFormatted}. +convert_auth(noauth) -> + noauth; +convert_auth({UserT, ServerT, PasswordT}) -> + {list_to_binary(UserT), list_to_binary(ServerT), list_to_binary(PasswordT)}. + %%----------------------------- %% Format arguments %%-----------------------------