diff options
author | Ivan Kohler <ivan@freeside.biz> | 2017-05-23 08:00:15 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2017-05-23 08:00:15 -0700 |
commit | 75485ea22d91bfb1e74f6cf1d8ec6f27a7f24e82 (patch) | |
tree | 12de211df0cb54ad170da34a990e3863fd167caf /FS | |
parent | a345db7e645ff8c86e5e655fed3c3a66d53c4958 (diff) |
fix multi-level data structures via XMLRPC API, RT#38254, RT#75279
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/ClientAPI_XMLRPC.pm | 6 |
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 ); |