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 09:34:20 -0800 |
commit | 8daaf563f262f65fd2eca1cd37956e3d75ef0db0 (patch) | |
tree | ed620f0471d9d06aa323d95cba06bb9e1d2d5804 /scripts | |
parent | ba252d598619e12b100378d7afd9056014a3607a (diff) | |
download | vyatta-cfg-quagga-8daaf563f262f65fd2eca1cd37956e3d75ef0db0.tar.gz vyatta-cfg-quagga-8daaf563f262f65fd2eca1cd37956e3d75ef0db0.zip |
Allow multiple values in 'set community'
Bug 5400
Allow for setting multiple values in quoted string for set community.
Diffstat (limited to 'scripts')
-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" + } +} |