summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-03-04 09:34:20 -0800
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-03-04 10:30:15 -0800
commit25d3ee90522b1056d9a25735c3e0c89e7b1eeae1 (patch)
tree9e7e4364bbd9ea13b98ed91eac462bf6a38a4326 /scripts
parent41b7002964151caf72f1de34c15efbe43336af0c (diff)
downloadvyatta-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')
-rwxr-xr-xscripts/vyatta_quagga_utils.pl22
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"
+ }
+}