From: Michael Orlitzky Date: Thu, 5 Dec 2019 15:34:54 +0000 (-0500) Subject: Allow underscore characters in FQDNs and pointers. X-Git-Url: https://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=7c5df8ad5c18a9f8b9440dbd1ae4faacf55b452a;p=valtz.git Allow underscore characters in FQDNs and pointers. Modern DNS records can contain underscores for a number of reasons. In particular, DKIM records involve a "_domainkey" part, https://tools.ietf.org/html/rfc6376 that is rejected by the current "fqdn" and "p" validation routines. Moreover, any SRV records will have a service name prefixed with an underscore: https://tools.ietf.org/html/rfc2782 To recognize these tokens as valid, this commit expands the "fqdn" and "p" regular expressions to allow underscores as the first character in each component of an FQDN. --- diff --git a/valtz b/valtz index c68c120..eebda76 100644 --- a/valtz +++ b/valtz @@ -202,7 +202,7 @@ my %token_validator = ( # check all parts for my $hostpart (split /\./, $s) { - return 1005 unless $hostpart =~ /^[-a-z0-9]+$/i; + return 1005 unless $hostpart =~ /^_?[-a-z0-9]+$/i; return 1006 if $hostpart =~ /^-/; return 1007 if $hostpart =~ /-$/; } @@ -268,7 +268,7 @@ my %token_validator = ( # check all parts for (split /\./, $s) { - return 1005 unless /^[-[a-z0-9]+$/i; + return 1005 unless /^_?[-[a-z0-9]+$/i; return 1006 if /^-/; return 1007 if /-$/; }