Yet one more change to IPv6 address validation

This commit is contained in:
Tom Eastep 2009-11-24 08:29:12 -08:00
parent deb45c5a27
commit cd84efea94

View File

@ -485,10 +485,14 @@ sub valid_6address( $ ) {
return 0 unless ( @address == $max ) || $address =~ /::/; return 0 unless ( @address == $max ) || $address =~ /::/;
return 0 if $address =~ /:::/ || $address =~ /::.*::/; return 0 if $address =~ /:::/ || $address =~ /::.*::/;
unless ( $address =~ tr/:/:/ == 2 && ( $address =~ /^::/ || $address =~ /::$/ ) ) { unless ( $address =~ /^::/ ) {
return 0 if $address =~ /^:/ || $address =~ /:$/; return 0 if $address =~ /^:/;
} }
unless ( $address =~ /::$/ ) {
return 0 if $address =~ /:$/;
}
for my $a ( @address ) { for my $a ( @address ) {
return 0 unless $a eq '' || ( $a =~ /^[a-fA-f\d]+$/ && length $a < 5 ); return 0 unless $a eq '' || ( $a =~ /^[a-fA-f\d]+$/ && length $a < 5 );
} }