diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2013-03-19 19:02:03 +0100 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2013-03-19 19:02:03 +0100 |
commit | 418baf4fa62ff42299d0a3e7ea573b648cfd94b7 (patch) | |
tree | eb0897442c7860eb722520ee86b1861f3a37e617 /src | |
parent | erlang:integer_to_binary was added in R16, switch to method which works in ol... (diff) |
Fix processing of list arguments in xmlrpc handler
Before this change only lists with exactly single element were handled
properly.
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_xmlrpc.erl | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ejabberd_xmlrpc.erl b/src/ejabberd_xmlrpc.erl index 5f20fa4f5..1da0f81b5 100644 --- a/src/ejabberd_xmlrpc.erl +++ b/src/ejabberd_xmlrpc.erl @@ -371,6 +371,13 @@ format_args(Args, ArgsFormat) -> L when is_list(L) -> exit({additional_unused_args, L}) end. +format_arg({array, Elements}, + {list, {ElementDefName, ElementDefFormat}}) + when is_list(Elements) -> + lists:map(fun ({struct, [{ElementDefName, ElementValue}]}) -> + format_arg(ElementValue, ElementDefFormat) + end, + Elements); format_arg({array, [{struct, Elements}]}, {list, {ElementDefName, ElementDefFormat}}) when is_list(Elements) -> |