From 418baf4fa62ff42299d0a3e7ea573b648cfd94b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Tue, 19 Mar 2013 19:02:03 +0100 Subject: Fix processing of list arguments in xmlrpc handler Before this change only lists with exactly single element were handled properly. --- src/ejabberd_xmlrpc.erl | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') 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) -> -- cgit v1.2.3