diff options
author | Gaurav Sinha <gaurav.sinha@vyatta.com> | 2011-11-16 17:00:31 -0800 |
---|---|---|
committer | Gaurav Sinha <gaurav.sinha@vyatta.com> | 2011-11-16 17:00:31 -0800 |
commit | feba6d628a366c11af9f3fabc22ec535cfbc82ad (patch) | |
tree | 5c6c0164735c6ab471ed5e0b3d7603cb25de89ce /scripts/vyatta-show-conntrack.pl | |
parent | 65fa3ece83764870bdace91c396f468504562f07 (diff) | |
download | vyatta-conntrack-feba6d628a366c11af9f3fabc22ec535cfbc82ad.tar.gz vyatta-conntrack-feba6d628a366c11af9f3fabc22ec535cfbc82ad.zip |
bug 7411:IPv6 show command: validation added
Diffstat (limited to 'scripts/vyatta-show-conntrack.pl')
-rwxr-xr-x | scripts/vyatta-show-conntrack.pl | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/scripts/vyatta-show-conntrack.pl b/scripts/vyatta-show-conntrack.pl index 0d0cc95..c10a6d3 100755 --- a/scripts/vyatta-show-conntrack.pl +++ b/scripts/vyatta-show-conntrack.pl @@ -216,15 +216,22 @@ if ($family eq "ipv4") { } } else { #placeholder for v6 code. - if (defined $sourceIP) { - if (($sourceIP =~ m/]/)) { + if ((defined $sourceIP) and ($sourceIP ne "0:0:0:0:0:0:0:0")) { + if ((($sourceIP =~ m/^\[/) and (!($sourceIP =~ m/]/))) or + (!($sourceIP =~ m/^\[/) and (($sourceIP =~ m/]/)))) { + die "Please use prescribed format for source IP: [IPv6-address]:port \n"; + } + if (($sourceIP =~ m/^\[/) and ($sourceIP =~ m/]/)) { # [IPv6-address]:port my @address = split(/]/, $sourceIP); if (@address) { + if(!$address[0] or !$address[1]) { + die "Please use prescribed format for source IP: [IPv6-address]:port \n"; + } $sourceIP = substr($address[0], 1); $sourcePort = substr($address[1], 1); my( $success, $err ) = isValidPortNumber($sourcePort); - if (validateType('ipv6', $sourceIP)) { + if (validateType('ipv6', $sourceIP, 'quiet')) { #Valid ipv6 address. } else { if(!defined($success)) { @@ -234,27 +241,29 @@ if ($family eq "ipv4") { if(!defined($success)) { die "Please enter a valid source port \n"; } - $command .= " -s $sourceIP --orig-port-src $sourcePort"; - print "IP $sourceIP port $sourcePort\n"; + $command .= " --orig-port-src $sourcePort"; } } else { #IPv6-address without port - if (validateType('ipv6', $sourceIP)) { + if (validateType('ipv6', $sourceIP, 'quiet')) { #Valid ipv6 address. - $command .= " -s $sourceIP"; } else { die "Please enter a valid source IPv6 address\n"; } } } - if (defined $destIP) { - if (($destIP =~ m/]/)) { + if ((defined $destIP) and ($destIP ne "0:0:0:0:0:0:0:0")) { + if ((($destIP =~ m/^\[/) and (!($destIP =~ m/]/))) or + (!($destIP =~ m/^\[/) and (($destIP =~ m/]/)))) { + die "Please use prescribed format for destination IP: [IPv6-address]:port \n"; + } + if (($destIP =~ m/^\[/) and ($destIP =~ m/]/)) { my @address = split(/]/, $destIP); if (@address) { $destIP = substr($address[0], 1); $destPort = substr($address[1], 1); my( $success, $err ) = isValidPortNumber($destPort); - if (validateType('ipv6', $destIP)) { + if (validateType('ipv6', $destIP, 'quiet')) { #Valid ipv6 address. } else { if(!defined($success)) { @@ -264,19 +273,24 @@ if ($family eq "ipv4") { if(!defined($success)) { die "Please enter a valid destination port \n"; } - $command .= " -d $destIP --orig-port-dst $destPort"; - print "IP $sourceIP port $sourcePort\n"; + #$command .= " --orig-port-dst $destPort"; } } else { #IPv6-address without port - if (validateType('ipv6', $destIP)) { + if (validateType('ipv6', $destIP, 'quiet')) { #Valid ipv6 address. - $command .= " -d $destIP"; + #$command .= " -d $destIP"; } else { die "Please enter a valid destination IPv6 address\n"; } } } + if (($sourceIP) and ($sourceIP ne "0:0:0:0:0:0:0:0")) { + $command .= " -s $sourceIP"; + } + if (($destIP) and ($destIP ne "0:0:0:0:0:0:0:0")) { + $command .= " -d $destIP"; + } } $command .= " -o xml"; |