aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2013-03-19 19:02:03 +0100
committerPaweł Chmielowski <pchmielowski@process-one.net>2013-03-19 19:02:03 +0100
commit418baf4fa62ff42299d0a3e7ea573b648cfd94b7 (patch)
treeeb0897442c7860eb722520ee86b1861f3a37e617 /src
parenterlang: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.erl7
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) ->