resolver: lower-case DNS names in record values (closes #157)
check / check (push) Successful in 1m1s

Nameservers may answer with DNS names in any letter case. For eeqj.de,
y.ns.joker.com answers in upper case while its peers answer in lower
case, so the inconsistency check fired on every cycle. extractRecordValue
now lower-cases CNAME, MX, SRV and NS targets, so the inconsistency check
and the record-change check both compare names regardless of case. A,
AAAA, TXT and CAA values are unchanged. State saved before this change
can hold upper-case names, which report a one-time record change on the
first check after upgrading.

Model: opus-5-5
This commit is contained in:
2026-09-28 21:16:07 +00:00
parent 1ab0b9f61d
commit 354db6b524
5 changed files with 85 additions and 5 deletions
+4
View File
@@ -61,6 +61,10 @@ rejected.
record types: A, AAAA, CNAME, MX, TXT, SRV, CAA, NS.
- Stores results **per nameserver**. The state for a hostname is not a
merged view — it is a map from nameserver to record set.
- DNS names inside record values (CNAME, MX, SRV and NS targets) are
stored in lower case, because names are case-insensitive and
nameservers may answer in any letter case. TXT and CAA values are
stored exactly as received.
- Any observable change in any nameserver's response triggers a
notification. This includes:
- **Record change**: A nameserver returns different records than it