general-functions.pl: validdomainname misinterprets RFC1035

The function validdomainname checks that each part of a domain name is at least
2 characters in length, but RFC1035 only makes a restriction on a "label" being
at most 63 characters in length. This change allows reverse DNS zones like
2.168.192.in-addr.arpa to be added to the DNS forward configuration, which was
incorrectly prevented before.

Signed-off-by: Axel Gembe <ago@multipixs.com>
This commit is contained in:
Axel Gembe
2014-08-11 12:23:58 +08:00
committed by Michael Tremer
parent 0eba3dc448
commit 8ed77b039f

View File

@@ -627,9 +627,8 @@ sub validdomainname
my @parts = split (/\./, $domainname); # Split hostname at the '.'
foreach $part (@parts) {
# Each part should be at least two characters in length
# but no more than 63 characters
if (length ($part) < 2 || length ($part) > 63) {
# Each part should be no more than 63 characters in length
if (length ($part) < 1 || length ($part) > 63) {
return 0;}
# Only valid characters are a-z, A-Z, 0-9 and -
if ($part !~ /^[a-zA-Z0-9-]*$/) {