summaryrefslogtreecommitdiff
path: root/scripts/vyatta-qos.pl
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2008-02-06 11:36:21 -0800
committerStephen Hemminger <stephen.hemminger@vyatta.com>2008-02-06 11:36:21 -0800
commit1c7e03dc0c52c03e87487985ed5877be4e52134a (patch)
tree28ad11af90b085b252f2e1d616c543e481a3aac4 /scripts/vyatta-qos.pl
parent92562803d1c3512dac79e48ad10ea49bf6a117d0 (diff)
downloadvyatta-cfg-qos-1c7e03dc0c52c03e87487985ed5877be4e52134a.tar.gz
vyatta-cfg-qos-1c7e03dc0c52c03e87487985ed5877be4e52134a.zip
fix update problems
1. checking for name clash shouldn't see self 2. leftover from rate to bandwidth name change 3. leftover debug message.
Diffstat (limited to 'scripts/vyatta-qos.pl')
-rwxr-xr-xscripts/vyatta-qos.pl26
1 files changed, 11 insertions, 15 deletions
diff --git a/scripts/vyatta-qos.pl b/scripts/vyatta-qos.pl
index ea9d60d..2aef09c 100755
--- a/scripts/vyatta-qos.pl
+++ b/scripts/vyatta-qos.pl
@@ -14,11 +14,11 @@ my @deleteInterface = ();
my @updatePolicy = ();
my $deletePolicy = undef;
my $listName = undef;
-my $validateName = undef;
+my @validateName = ();
GetOptions(
"list-policy" => \$listName,
- "validate-name=s" => \$validateName,
+ "validate-name=s{2}" => \@validateName,
"update-interface=s{3}" => \@updateInterface,
"delete-interface=s{2}" => \@deleteInterface,
"update-policy=s{2}" => \@updatePolicy,
@@ -41,15 +41,17 @@ sub list_inuse {
## check if name is okay
sub validate_name {
- my $name = shift;
+ my ($policy, $name) = @_;
my $config = new VyattaConfig;
($name =~ '^\w[\w_-]*$') or die "Invalid policy name $name\n";
- foreach my $policy ($config->listNodes($qosNode) ) {
- foreach my $node ($config->listNodes("$qosNode $policy") ) {
- if ($name eq $node) {
- die "Name $name is already in use by $policy\n";
+ foreach my $p ($config->listNodes($qosNode) ) {
+ if ($p ne $policy) {
+ foreach my $n ($config->listNodes("$qosNode $policy") ) {
+ if ($n eq $name) {
+ die "Name $name is already in use by $p\n";
+ }
}
}
}
@@ -62,14 +64,10 @@ sub delete_interface {
my ($interface, $direction ) = @_;
if ($direction eq "out" ) {
-
# delete old qdisc - will give error if no policy in place
system("tc qdisc del dev $interface root 2>/dev/null");
system("tc filter del dev $interface 2>/dev/null");
}
- else {
- return -1;
- }
}
## update_interface('eth0', 'out', 'my-shaper')
@@ -78,8 +76,6 @@ sub update_interface {
my ($interface, $direction, $name ) = @_;
my $config = new VyattaConfig;
- print "update_interface $interface $direction $name\n";
- # TODO: add support for ingress
( $direction eq "out" ) or die "Only out direction supported";
foreach my $policy ( $config->listNodes($qosNode) ) {
@@ -146,8 +142,8 @@ if ( defined $listName ) {
exit 0;
}
-if ( defined $validateName ) {
- validate_name($validateName);
+if ( $#validateName == 1) {
+ validate_name(@validateName);
exit 0;
}