summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-05-23 08:00:15 -0700
committerIvan Kohler <ivan@freeside.biz>2017-05-23 08:00:15 -0700
commit75485ea22d91bfb1e74f6cf1d8ec6f27a7f24e82 (patch)
tree12de211df0cb54ad170da34a990e3863fd167caf /FS
parenta345db7e645ff8c86e5e655fed3c3a66d53c4958 (diff)
fix multi-level data structures via XMLRPC API, RT#38254, RT#75279
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/ClientAPI_XMLRPC.pm6
1 files changed, 4 insertions, 2 deletions
diff --git a/FS/FS/ClientAPI_XMLRPC.pm b/FS/FS/ClientAPI_XMLRPC.pm
index 2d8856a..8e21aef 100644
--- a/FS/FS/ClientAPI_XMLRPC.pm
+++ b/FS/FS/ClientAPI_XMLRPC.pm
@@ -75,8 +75,10 @@ sub AUTOLOAD {
#FS::ClientAPI->dispatch($autoload->{$call}, @_);
my %hash = @_;
- #XXX doesn't handle multi-level data structs
- $hash{$_} = decode(utf8=>$hash{$_}) foreach keys %hash;
+ #XXX doesn't deep-fix multi-level data structs, but at least doesn't mangle
+ # them anymore
+ $hash{$_} = decode(utf8=>$hash{$_})
+ foreach grep !ref($hash{$_}), keys %hash;
my $return = FS::ClientAPI->dispatch($autoload->{$call}, \%hash );