summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-05-23 08:00:17 -0700
committerIvan Kohler <ivan@freeside.biz>2017-05-23 08:00:17 -0700
commit0edab19755de1aedc34fc6b1bc91c8f6d3e91149 (patch)
treebb79b14fe749eb2a567a4d5ae1f8c01e8e8a723e /FS
parent6a447b7839b73e164133c67d27b0e4e670e0ae8c (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 a82a82f6d..3f5d888aa 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 );