diff options
author | Michael Larson <slioch@slioch.vyatta.com> | 2010-06-23 15:33:42 -0700 |
---|---|---|
committer | Michael Larson <slioch@slioch.vyatta.com> | 2010-06-23 15:33:42 -0700 |
commit | 3e93d5f06945bdbd77e2342a9453b8deb2ac8554 (patch) | |
tree | 9e445f16315f3bc60d132dbc0fb076fda035d557 | |
parent | a12ea86c1f091ed9f7161179f0939c8b33da5394 (diff) | |
download | vyatta-cfg-3e93d5f06945bdbd77e2342a9453b8deb2ac8554.tar.gz vyatta-cfg-3e93d5f06945bdbd77e2342a9453b8deb2ac8554.zip |
2nd part fix for bug 5729.
-rwxr-xr-x | lib/Vyatta/ConfigLoad.pm | 10 | ||||
-rwxr-xr-x | scripts/vyatta-load-config.pl | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/lib/Vyatta/ConfigLoad.pm b/lib/Vyatta/ConfigLoad.pm index 033aec0..c806c7f 100755 --- a/lib/Vyatta/ConfigLoad.pm +++ b/lib/Vyatta/ConfigLoad.pm @@ -287,9 +287,10 @@ sub findDeletedValues { # $1: array ref representing current config path (active config) sub findDeletedNodes { my $new_ref = $_[0]; - my @active_path = @{$_[1]}; + my $ret_dis_flag = $_[1]; + my @active_path = @{$_[2]}; $active_cfg->setLevel(join ' ', @active_path); - my @active_nodes = $active_cfg->listOrigNodes(); + my @active_nodes = $active_cfg->listOrigNodes(undef,$ret_dis_flag); foreach (@active_nodes) { if ($_ eq 'def') { next; @@ -302,7 +303,7 @@ sub findDeletedNodes { my @plist = applySingleQuote(@active_path, $_); push @delete_list, [\@plist, 0]; } else { - findDeletedNodes($new_ref->{$_}, [ @active_path, $_ ]); + findDeletedNodes($new_ref->{$_}, $ret_dis_flag, [ @active_path, $_ ]); } } } @@ -384,10 +385,11 @@ sub findSetNodes { sub getConfigDiff { $active_cfg = new Vyatta::Config; $new_cfg_ref = shift; + my $ret_del_dis_nodes = shift; @set_list = (); # @disable_list = (); @delete_list = (); - findDeletedNodes($new_cfg_ref, [ ]); + findDeletedNodes($new_cfg_ref, $ret_del_dis_nodes, [ ]); findSetNodes($new_cfg_ref, [ ]); # need to filter out deletions of nodes with default values diff --git a/scripts/vyatta-load-config.pl b/scripts/vyatta-load-config.pl index b73216a..a101e31 100755 --- a/scripts/vyatta-load-config.pl +++ b/scripts/vyatta-load-config.pl @@ -188,7 +188,7 @@ if ( scalar( keys %cfg_hier ) == 0 ) { } } -my %cfg_diff = Vyatta::ConfigLoad::getConfigDiff( \%cfg_hier ); +my %cfg_diff = Vyatta::ConfigLoad::getConfigDiff( \%cfg_hier, 'true' ); my @set_list = @{ $cfg_diff{'set'} }; my @deactivate_list = @{ $cfg_diff{'deactivate'} }; my @activate_list = @{ $cfg_diff{'activate'} }; |