fix multi-level data structures via XMLRPC API, RT#38254, RT#75279
authorIvan Kohler <ivan@freeside.biz>
Tue, 23 May 2017 15:00:09 +0000 (08:00 -0700)
committerIvan Kohler <ivan@freeside.biz>
Tue, 23 May 2017 15:00:09 +0000 (08:00 -0700)
FS/FS/ClientAPI_XMLRPC.pm

index 2d8856a..8e21aef 100644 (file)
@@ -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 );