{400, iolist_to_binary(Msg)};
?EX_RULE(Class, Error, Stack) ->
?ERROR_MSG("REST API Error: "
- "~s(~p) -> ~p:~p ~p",
+ "~s(~p) -> ~p:~p ~p",
[Call, hide_sensitive_args(Args),
Class, Error, ?EX_STACK(Stack)]),
{500, <<"internal_error">>}
handle2(Call, Auth, Args, Version) when is_atom(Call), is_list(Args) ->
{ArgsF, _ResultF} = ejabberd_commands:get_command_format(Call, Auth, Version),
- ArgsFormatted = format_args(Args, ArgsF),
+ ArgsFormatted = format_args(Call, Args, ArgsF),
case ejabberd_commands:execute_command2(Call, ArgsFormatted, Auth, Version) of
{error, Error} ->
throw(Error);
end
end.
-format_args(Args, ArgsFormat) ->
+format_args(Call, Args, ArgsFormat) ->
{ArgsRemaining, R} = lists:foldl(fun ({ArgName,
ArgFormat},
{Args1, Res}) ->
case ArgsRemaining of
[] -> R;
L when is_list(L) ->
+ ExtraArgs = [N || {N, _} <- L],
+ ?INFO_MSG("Command ~s call rejected, it has unknown arguments ~w",
+ [Call, ExtraArgs]),
throw({invalid_parameter,
- io_lib:format("Request have unknown arguments: ~w",
- [[N || {N, _} <- L]])})
+ io_lib:format("Request have unknown arguments: ~w", [ExtraArgs])})
end.
format_arg({Elements},