From 0eca7ca8d325375643bf3d1f498345565fef24e0 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 28 May 2009 16:12:13 -0700 Subject: Handle percent without % sign Bug 4465 When using percent for netem, allow value without percent --- lib/Vyatta/Qos/Util.pm | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'lib/Vyatta/Qos') diff --git a/lib/Vyatta/Qos/Util.pm b/lib/Vyatta/Qos/Util.pm index 7f5454d..151b1d3 100644 --- a/lib/Vyatta/Qos/Util.pm +++ b/lib/Vyatta/Qos/Util.pm @@ -113,18 +113,17 @@ sub getPercent { my $percent = shift; my ( $num, $suffix ) = get_num($percent); - ( $suffix eq '%' ) - or die "$percent incorrect suffix (expect %)\n"; - defined $num - or die "$percent is not a valid percent bandwidth (not a number)\n"; - ( $num >= 0 ) - or die - "$percent is not a acceptable percent bandwidth (negative value)\n"; - ( $num <= 100 ) - or die - "$percent is not a acceptable percent bandwidth (greater than 100%)\n"; - - return $num; + if (defined $suffix && $suffix ne '%' ) { + die "$percent incorrect suffix (expect %)\n"; + } elsif (! defined $num) { + die "$percent is not a valid percent (not a number)\n"; + } elsif ( $num < 0 ) { + die "$percent is not a acceptable percent (negative value)\n"; + } elsif ( $num > 100 ) { + die "$percent is not a acceptable percent (greater than 100%)\n"; + } else { + return $num; + } } # Default time units for tc are usec. -- cgit v1.2.3 From 9488f3c64e0c29ce22631fae3f22ffb73b8349cb Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 28 May 2009 16:15:04 -0700 Subject: Allow netem without network delay value Bug 4466 Need to allow policy without delay value. --- lib/Vyatta/Qos/NetworkEmulator.pm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'lib/Vyatta/Qos') diff --git a/lib/Vyatta/Qos/NetworkEmulator.pm b/lib/Vyatta/Qos/NetworkEmulator.pm index 1fb9fc6..2a87407 100644 --- a/lib/Vyatta/Qos/NetworkEmulator.pm +++ b/lib/Vyatta/Qos/NetworkEmulator.pm @@ -23,33 +23,23 @@ use warnings; require Vyatta::Config; use Vyatta::Qos::Util; -my %fields = ( - _rate => undef, - _burst => undef, - _limit => undef, - _delay => undef, - _drop => undef, - _corrupt => undef, - _reorder => undef, -); - sub new { my ( $that, $config ) = @_; my $level = $config->setLevel(); my $class = ref($that) || $that; - my $self = {%fields}; + my $self = { }; my $bw = $config->returnValue("bandwidth"); $self->{_rate} = getRate( $bw ) if ($bw); + my $delay = $config->returnValue("network-delay"); + $self->{_delay} = getTime($delay) if ($delay); $self->{_burst} = $config->returnValue("burst"); $self->{_limit} = $config->returnValue("queue-limit"); - $self->{_delay} = getTime($config->returnValue("network-delay")); $self->{_drop} = $config->returnValue("packet-loss"); $self->{_corrupt} = $config->returnValue("packet-corruption"); $self->{_reorder} = $config->returnValue("packet-reordering"); - return bless $self, $class; } -- cgit v1.2.3