Actions
Bug #38
closedMalfunctioning of 'No XMLRPC Sync' code, causing some rules to still get synced to CARP members
Start date:
07/04/2009
Due date:
% Done:
100%
Estimated time:
Plus Target Version:
Release Notes:
Affected Version:
All
Affected Architecture:
Description
Bug #26 [[http://redmine.pfsense.org/issues/show/26]] is Resolved,
not sure if my update get's it picked up again, hence this new ticket.
I am in a situation (can provide access to the machines in question if wanted)
where I can consistently reproduce a problem with the nosync flag,
causing some rules to still get synced to CARP members.
Running the sample code provided below with 'php test.php' on a pfSense 1.2.3 snapshot
(at least since the February snapshots and including the 2009-07-18-1920 snapshot),
correctly removes (unset) rule#35, rule#36 and rule#37 but keeps rule#38 and rule#39, despite their nosync flag !!!
This exactly mimics the situation I have with pfSense.
Maybe this is a PHP bug ?
Sample code :
<?php $config_copy['nat']['rule'][0]['desc'] = 'rule 0'; $config_copy['nat']['rule'][1]['desc'] = 'rule 1'; $config_copy['nat']['rule'][2]['desc'] = 'rule 2'; $config_copy['nat']['rule'][3]['desc'] = 'rule 3'; $config_copy['nat']['rule'][4]['desc'] = 'rule 4'; $config_copy['nat']['rule'][5]['desc'] = 'rule 5'; $config_copy['nat']['rule'][6]['desc'] = 'rule 6'; $config_copy['nat']['rule'][7]['desc'] = 'rule 7'; $config_copy['nat']['rule'][8]['desc'] = 'rule 8'; $config_copy['nat']['rule'][9]['desc'] = 'rule 9'; $config_copy['nat']['rule'][10]['desc'] = 'rule 10'; $config_copy['nat']['rule'][11]['desc'] = 'rule 11'; $config_copy['nat']['rule'][12]['desc'] = 'rule 12'; $config_copy['nat']['rule'][13]['desc'] = 'rule 13'; $config_copy['nat']['rule'][14]['desc'] = 'rule 14'; $config_copy['nat']['rule'][15]['desc'] = 'rule 15'; $config_copy['nat']['rule'][16]['desc'] = 'rule 16'; $config_copy['nat']['rule'][17]['desc'] = 'rule 17'; $config_copy['nat']['rule'][18]['desc'] = 'rule 18'; $config_copy['nat']['rule'][19]['desc'] = 'rule 19'; $config_copy['nat']['rule'][20]['desc'] = 'rule 20'; $config_copy['nat']['rule'][21]['desc'] = 'rule 21'; $config_copy['nat']['rule'][22]['desc'] = 'rule 22'; $config_copy['nat']['rule'][23]['desc'] = 'rule 23'; $config_copy['nat']['rule'][24]['desc'] = 'rule 24'; $config_copy['nat']['rule'][25]['desc'] = 'rule 25'; $config_copy['nat']['rule'][26]['desc'] = 'rule 26'; $config_copy['nat']['rule'][27]['desc'] = 'rule 27'; $config_copy['nat']['rule'][28]['desc'] = 'rule 28'; $config_copy['nat']['rule'][29]['desc'] = 'rule 29'; $config_copy['nat']['rule'][30]['desc'] = 'rule 30'; $config_copy['nat']['rule'][31]['desc'] = 'rule 31'; $config_copy['nat']['rule'][32]['desc'] = 'rule 32'; $config_copy['nat']['rule'][33]['desc'] = 'rule 33'; $config_copy['nat']['rule'][34]['desc'] = 'rule 34'; $config_copy['nat']['rule'][35]['desc'] = 'rule 35'; $config_copy['nat']['rule'][35]['nosync'] = ''; $config_copy['nat']['rule'][36]['desc'] = 'rule 36'; $config_copy['nat']['rule'][36]['nosync'] = ''; $config_copy['nat']['rule'][37]['desc'] = 'rule 37'; $config_copy['nat']['rule'][37]['nosync'] = ''; $config_copy['nat']['rule'][38]['desc'] = 'rule 38'; $config_copy['nat']['rule'][38]['nosync'] = ''; $config_copy['nat']['rule'][39]['desc'] = 'rule 39'; $config_copy['nat']['rule'][39]['nosync'] = ''; print("COUNT: ".count($config_copy['nat']['rule']))."\n"; for($x=0;$x<count($config_copy['nat']['rule']);$x++) { if(isset($config_copy['nat']['rule'][$x]['nosync'])) { unset($config_copy['nat']['rule'][$x]); } } print_r($config_copy); ?>
Actions