Michael Orlitzky [Wed, 21 Oct 2020 01:43:50 +0000 (21:43 -0400)]
Drop the "-x" flag.
The "-x" flag used to set the exit code non-zero on error, thus making
it easier to detect errors in shell scripts. But I can imagine no
situation where returning zero unconditionally is preferable; and so,
I've removed the flag and enabled the "-x" behavior by default.
Michael Orlitzky [Tue, 20 Oct 2020 22:00:52 +0000 (18:00 -0400)]
Warn about IP addresses in hostname fields.
A common error is to specify an IP address as the result of an MX
lookup. The RFCs (974, 1035, 2181...) state that the result should be
a "domain name," which in this context, means "host name." This commit
adds a check on "hostname" fields that rejects a dotted-quad contained
therein. In particular, it catches the aforementioned MX record error.
There is a patch for djbdns that adds support for SRV records to both
tinydns-data and axfr-get:
From: Michael Handler <handler@sub-rosa.com>
To: dns@list.cr.yp.to
Subject: tinydns-data SRV & axfr-get SRV/PTR patches
Date: Thu, 14 Sep 2000 20:37:50 -040
Many distributions carry the patch, but valtz rejects the SRV records
because it doesn't recognize the "S" indicator or know how to validate
the port, weight, or priority fields.
This commit adds support for the new record type, and adds validation
routines for the three new fields. All of them are the same: ports,
weights, and priorities are all integers between 0 and 65536.
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.