diff options
author | Gaurav Sinha <gaurav.sinha@vyatta.com> | 2011-12-09 13:50:59 -0800 |
---|---|---|
committer | Gaurav Sinha <gaurav.sinha@vyatta.com> | 2011-12-09 13:50:59 -0800 |
commit | 2e4366189139169f83ebe44802092fc97b2ec4eb (patch) | |
tree | 838d2321984d88ea29dbfc5abd43f0deac99d159 /scripts/vyatta-show-conntrack.pl | |
parent | 5b1d405f9efca427e3e85a88ee980b38bdde97d2 (diff) | |
download | vyatta-conntrack-2e4366189139169f83ebe44802092fc97b2ec4eb.tar.gz vyatta-conntrack-2e4366189139169f83ebe44802092fc97b2ec4eb.zip |
Bug 7675:Allow any and combination of any with port in conntrack entry show / deletion commands
Diffstat (limited to 'scripts/vyatta-show-conntrack.pl')
-rwxr-xr-x | scripts/vyatta-show-conntrack.pl | 78 |
1 files changed, 55 insertions, 23 deletions
diff --git a/scripts/vyatta-show-conntrack.pl b/scripts/vyatta-show-conntrack.pl index 17457b1..95c2341 100755 --- a/scripts/vyatta-show-conntrack.pl +++ b/scripts/vyatta-show-conntrack.pl @@ -164,9 +164,12 @@ if ($family eq "ipv4") { $sourceIP = $address[0]; $sourcePort = $address[1]; + if ((defined $sourceIP) and ($sourceIP eq "any")) { + $sourceIP = "0.0.0.0"; + } # Check if IP address is a valid IPv4 address my( $success, $err ) = isValidPortNumber($sourcePort); - if (!(isIpAddress($sourceIP))and !($sourceIP eq "0.0.0.0")) { + if (!(isIpAddress($sourceIP)) and !($sourceIP eq "0.0.0.0")) { if(!defined($success)) { #both IP and port are invalid die "Please enter a valid source IPv4 address and port \n"; @@ -186,6 +189,11 @@ if ($family eq "ipv4") { my @address = split(/:/, $destIP); $destIP = $address[0]; $destPort = $address[1]; + + if ((defined $destIP) and ($destIP eq "any")) { + $destIP = "0.0.0.0"; + } + my( $success, $err ) = isValidPortNumber($destPort); if (!(isIpAddress($destIP))and !($destIP eq "0.0.0.0")) { if(!defined($success)) { @@ -202,6 +210,13 @@ if ($family eq "ipv4") { } $command .= " --orig-port-dst $destPort"; } + + if ((defined $sourceIP) and ($sourceIP eq "any")) { + $sourceIP = "0.0.0.0"; + } + if ((defined $destIP) and ($destIP eq "any")) { + $destIP = "0.0.0.0"; + } if ((defined $sourceIP) and !($sourceIP eq "0.0.0.0")) { # Check if IP address is a valid IPv4 address @@ -235,15 +250,18 @@ if ($family eq "ipv4") { } $sourceIP = substr($address[0], 1); $sourcePort = substr($address[1], 1); + my( $success, $err ) = isValidPortNumber($sourcePort); - if (validateType('ipv6', $sourceIP, 'quiet')) { - if ($sourceIP =~ m/[^ABCDEFabcdef0123456789:\[\]]/) { - die "Please enter a valid source IPv6 address\n"; + if ($sourceIP ne "any") { + if (validateType('ipv6', $sourceIP, 'quiet')) { + if ($sourceIP =~ m/[^ABCDEFabcdef0123456789:\[\]]/) { + die "Please enter a valid source IPv6 address\n"; + } + } else { + if(!defined($success)) { + die "Please enter a valid source IPv6 address and port \n"; + } } - } else { - if(!defined($success)) { - die "Please enter a valid source IPv6 address and port \n"; - } } if(!defined($success)) { die "Please enter a valid source port \n"; @@ -252,12 +270,14 @@ if ($family eq "ipv4") { } } else { #IPv6-address without port - if (validateType('ipv6', $sourceIP, 'quiet')) { - if ($sourceIP =~ m/[^ABCDEFabcdef0123456789:\[\]]/) { + if ($sourceIP ne "any") { + if (validateType('ipv6', $sourceIP, 'quiet')) { + if ($sourceIP =~ m/[^ABCDEFabcdef0123456789:\[\]]/) { + die "Please enter a valid source IPv6 address\n"; + } + } else { die "Please enter a valid source IPv6 address\n"; } - } else { - die "Please enter a valid source IPv6 address\n"; } } } @@ -271,15 +291,18 @@ if ($family eq "ipv4") { if (@address) { $destIP = substr($address[0], 1); $destPort = substr($address[1], 1); + my( $success, $err ) = isValidPortNumber($destPort); - if (validateType('ipv6', $destIP, 'quiet')) { - if ($destIP =~ m/[^ABCDEFabcdef0123456789:\[\]]/) { - die "Please enter a valid destination IPv6 address\n"; + if ($destIP ne "any") { + if (validateType('ipv6', $destIP, 'quiet')) { + if ($destIP =~ m/[^ABCDEFabcdef0123456789:\[\]]/) { + die "Please enter a valid destination IPv6 address\n"; + } + } else { + if(!defined($success)) { + die "Please enter a valid destination IPv6 address and port \n"; + } } - } else { - if(!defined($success)) { - die "Please enter a valid destination IPv6 address and port \n"; - } } if(!defined($success)) { die "Please enter a valid destination port \n"; @@ -288,14 +311,23 @@ if ($family eq "ipv4") { } } else { #IPv6-address without port - if (validateType('ipv6', $destIP, 'quiet')) { - if ($destIP =~ m/[^ABCDEFabcdef0123456789:\[\]]/) { + if ($destIP ne "any") { + if (validateType('ipv6', $destIP, 'quiet')) { + if ($destIP =~ m/[^ABCDEFabcdef0123456789:\[\]]/) { + die "Please enter a valid destination IPv6 address\n"; + } + } else { die "Please enter a valid destination IPv6 address\n"; } - } else { - die "Please enter a valid destination IPv6 address\n"; } } + } + # Support "any" keyword + if ((defined $destIP) and ($destIP eq "any")) { + $destIP = "0:0:0:0:0:0:0:0"; + } + if ((defined $sourceIP) and ($sourceIP eq "any")) { + $sourceIP = "0:0:0:0:0:0:0:0"; } if (($sourceIP) and ($sourceIP ne "0:0:0:0:0:0:0:0")) { $command .= " -s $sourceIP"; |