diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2009-08-24 20:54:55 -0400 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2009-08-24 20:54:55 -0400 |
commit | 86fa7e0e9ce07e06f45090c2fc5a179dfef79c9b (patch) | |
tree | 96f747f4bba9722bff468d24af6883bf29013679 /etc/inc | |
parent | 0b2c35ef67aecdd106bc3deccbb76a49dd44d75a (diff) | |
download | pfsense-86fa7e0e9ce07e06f45090c2fc5a179dfef79c9b.zip pfsense-86fa7e0e9ce07e06f45090c2fc5a179dfef79c9b.tar.gz |
Use array_splice() to unset items that should not be sync'd (nosync) Resolves #38
Diffstat (limited to 'etc/inc')
-rw-r--r-- | etc/inc/filter.inc | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index 3953825..19e288b 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -3131,39 +3131,53 @@ function carp_sync_xml($url, $password, $sections, $port = 80, $method = 'pfsens /* strip out nosync items */ for ($x = 0; $x < count($config_copy['nat']['advancedoutbound']['rule']); $x++) { - $config_copy['nat']['advancedoutbound']['rule'][$x]['descr'] = remove_special_characters($config_copy['nat']['advancedoutbound']['rule'][$x]['descr']); - if (isset ($config_copy['nat']['advancedoutbound']['rule'][$x]['nosync'])) - unset ($config_copy['nat']['advancedoutbound']['rule'][$x]); + $config_copy['nat']['advancedoutbound']['rule'][$x]['descr'] = remove_special_characters($config_copy['nat']['advancedoutbound']['rule'][$x]['descr']); + if (isset ($config_copy['nat']['advancedoutbound']['rule'][$x]['nosync'])) { + array_splice($config_copy['nat']['advancedoutbound']['rule'],$x,1); + $x--; + } } for ($x = 0; $x < count($config_copy['nat']['rule']); $x++) { $config_copy['nat']['rule'][$x]['descr'] = remove_special_characters($config_copy['nat']['rule'][$x]['descr']); - if (isset ($config_copy['nat']['rule'][$x]['nosync'])) - unset ($config_copy['nat']['rule'][$x]); + if (isset ($config_copy['nat']['rule'][$x]['nosync'])) { + array_splice($config_copy['nat']['rule'],$x,1); + $x--; + } } for ($x = 0; $x < count($config_copy['filter']['rule']); $x++) { - $config_copy['filter']['rule'][$x]['descr'] = remove_special_characters($config_copy['filter']['rule'][$x]['descr']); - if (isset ($config_copy['filter']['rule'][$x]['nosync'])) - unset ($config_copy['filter']['rule'][$x]); + $config_copy['filter']['rule'][$x]['descr'] = remove_special_characters($config_copy['filter']['rule'][$x]['descr']); + if (isset ($config_copy['filter']['rule'][$x]['nosync'])) { + array_splice($config_copy['filter']['rule'],$x,1); + $x--; + } } for ($x = 0; $x < count($config_copy['aliases']['alias']); $x++) { $config_copy['aliases']['alias'][$x]['descr'] = remove_special_characters($config_copy['aliases']['alias'][$x]['descr']); - if (isset ($config_copy['aliases']['alias'][$x]['nosync'])) - unset ($config_copy['aliases']['alias'][$x]); + if (isset ($config_copy['aliases']['alias'][$x]['nosync'])) { + array_splice($config_copy['aliases']['alias'],$x,1); + $x--; + } } for ($x = 0; $x < count($config_copy['dnsmasq']['hosts']); $x++) { $config_copy['dnsmasq']['hosts'][$x]['descr'] = remove_special_characters($config_copy['dnsmasq']['hosts'][$x]['descr']); - if (isset ($config_copy['dnsmasq']['hosts'][$x]['nosync'])) - unset ($config_copy['dnsmasq']['hosts'][$x]); + if (isset ($config_copy['dnsmasq']['hosts'][$x]['nosync'])) { + array_splice($config_copy['dnsmasq']['hosts'],$x,1); + $x--; + } } for ($x = 0; $x < count($config_copy['virtualip']['vip']); $x++) { $config_copy['virtualip']['vip'][$x]['descr'] = remove_special_characters($config_copy['virtualip']['vip'][$x]['descr']); - if (isset ($config_copy['virtualip']['vip'][$x]['nosync']) or $config_copy['virtualip']['vip'][$x]['mode'] == "proxyarp") - unset ($config_copy['virtualip']['vip'][$x]); + if (isset ($config_copy['virtualip']['vip'][$x]['nosync']) or $config_copy['virtualip']['vip'][$x]['mode'] == "proxyarp") { + array_splice($config_copy['virtualip']['vip'],$x,1); + $x--; + } } for ($x = 0; $x < count($config_copy['ipsec']['tunnel']); $x++) { $config_copy['ipsec']['tunnel'][$x]['descr'] = remove_special_characters($config_copy['ipsec']['tunnel'][$x]['descr']); - if (isset ($config_copy['ipsec']['tunnel'][$x]['nosync'])) - unset ($config_copy['ipsec']['tunnel'][$x]); + if (isset ($config_copy['ipsec']['tunnel'][$x]['nosync'])) { + array_splice($config_copy['ipsec']['tunnel'],$x,1); + $x--; + } } foreach($sections as $section) { |