diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2011-05-31 14:42:22 -0400 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2011-05-31 14:42:22 -0400 |
commit | f9d7c5b3c44437b6f39fe757ede40decbfd395b9 (patch) | |
tree | 8a4ebea75bf4da597efce27666d98d4341690bcd /usr/local/www/xmlrpc.php | |
parent | 0b581a8acf9fa470e66afebc1834660d0ee81942 (diff) | |
download | pfsense-f9d7c5b3c44437b6f39fe757ede40decbfd395b9.zip pfsense-f9d7c5b3c44437b6f39fe757ede40decbfd395b9.tar.gz |
Use array_overlay()
Diffstat (limited to 'usr/local/www/xmlrpc.php')
-rwxr-xr-x | usr/local/www/xmlrpc.php | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/usr/local/www/xmlrpc.php b/usr/local/www/xmlrpc.php index c869137..500700a 100755 --- a/usr/local/www/xmlrpc.php +++ b/usr/local/www/xmlrpc.php @@ -274,7 +274,7 @@ function merge_config_section_xmlrpc($raw_params) { $params = xmlrpc_params_to_php($raw_params); if(!xmlrpc_auth($params)) return $xmlrpc_g['return']['authfail']; - $config_new = array_extend($config, $params[0]); + $config_new = array_overlay($config, $params[0]); $config = $config_new; $mergedkeys = implode(",", array_keys($params[0])); write_config(sprintf(gettext("Merged in config (%s sections) from XMLRPC client."), $mergedkeys)); @@ -454,19 +454,17 @@ $server = new XML_RPC_Server( unlock($xmlrpclockkey); -function array_extend($a, $b) { - foreach($b as $k=>$v) { - if( is_array($v) ) { - if( !isset($a[$k]) ) { - $a[$k] = $v; - } else { - $a[$k] = array_extend($a[$k], $v); + function array_overlay($a1,$a2) + { + foreach($a1 as $k => $v) { + if(!array_key_exists($k,$a2)) continue; + if(is_array($v) && is_array($a2[$k])){ + $a1[$k] = array_overlay($v,$a2[$k]); + }else{ + $a1[$k] = $a2[$k]; } - } else { - $a[$k] = $v; } + return $a1; } - return $a; -} ?> |