Allow leading 's' & 'd' to be omitted when specifying two rates

Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
Tom Eastep 2018-12-16 09:38:44 -08:00
parent 54e6412c49
commit 23bc6f1ab5
No known key found for this signature in database
GPG Key ID: 96E6B3F2423A4D10

View File

@ -5350,8 +5350,17 @@ sub do_ratelimit( $$ ) {
my @rates = split_list3 $rates, 'rate';
if ( @rates == 2 ) {
$rates[0] = 's:' . $rates[0] unless $rates[0] =~ /^s(?:\/\d+)?:/;
$rates[1] = 'd:' . $rates[1] unless $rates[1] =~ /^d(?:\/\d+)?:/;
if ( $rates[0] =~ m|^/\d+:| ) {
$rates[0] = 's' . $rates[0];
} else {
$rates[0] = 's:' . $rates[0] unless $rates[0] =~ m|^s(?:/\d+)?:|;
}
if ( $rates[1] =~ m|^/\d+:| ) {
$rates[1] = 'd' . $rates[1];
} else {
$rates[1] = 'd:' . $rates[1] unless $rates[1] =~ m|^d(?:/\d+)?:|;
}
} elsif ( @rates > 2 ) {
fatal error "Only two rates may be specified";
}