diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-03-04 09:34:20 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-03-04 10:30:15 -0800 |
commit | 25d3ee90522b1056d9a25735c3e0c89e7b1eeae1 (patch) | |
tree | 9e7e4364bbd9ea13b98ed91eac462bf6a38a4326 /scripts/vyatta_quagga_utils.pl | |
parent | 41b7002964151caf72f1de34c15efbe43336af0c (diff) | |
download | vyatta-cfg-quagga-25d3ee90522b1056d9a25735c3e0c89e7b1eeae1.tar.gz vyatta-cfg-quagga-25d3ee90522b1056d9a25735c3e0c89e7b1eeae1.zip |
Allow multiple values in 'set community'
Bug 5400
Allow for setting multiple values in quoted string for set community.
Diffstat (limited to 'scripts/vyatta_quagga_utils.pl')
-rwxr-xr-x | scripts/vyatta_quagga_utils.pl | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/scripts/vyatta_quagga_utils.pl b/scripts/vyatta_quagga_utils.pl index 1d85b431..0b9fb2ae 100755 --- a/scripts/vyatta_quagga_utils.pl +++ b/scripts/vyatta_quagga_utils.pl @@ -6,15 +6,27 @@ use Vyatta::Misc; use NetAddr::IP; use Getopt::Long; -my ( $prefix, $exists, $not_exists, $area ); +my ( $prefix, $exists, $not_exists, $area, $community ); + +# Allowed well-know community values (see set commuinity) +my %communities = ( + 'additive' => 1, + 'internet' => 1, + 'local-AS' => 1, + 'no-advertise' => 1, + 'no-export' => 1, + 'none' => 1, +); GetOptions( "check-prefix-boundry=s" => \$prefix, "not-exists=s" => \$not_exists, "exists=s" => \$exists, "check-ospf-area=s" => \$area, + "check-community" => \$community, ); +check_community(@ARGV) if ($community); check_prefix_boundry($prefix) if ($prefix); check_not_exists($not_exists) if ($not_exists); check_exists($exists) if ($exists); @@ -74,3 +86,11 @@ sub check_ospf_area { die "Invalid OSPF area: $area\n"; } +sub check_community { + foreach my $arg (@_) { + next if ($arg =~ /\d+:\d+/); + next if $communities{$arg}; + + die "$arg unknown community value\n" + } +} |