From 12b7e8ac50d8369ea57a79c0415b3192059f6bbe Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Thu, 20 Feb 2020 11:51:26 +0000 Subject: [PATCH] Ensure that NS records are dot-terminated --- node/dns.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/node/dns.go b/node/dns.go index 3aaeeff0..59b3edb2 100644 --- a/node/dns.go +++ b/node/dns.go @@ -19,9 +19,7 @@ const ( ) func newDNSHandler(n *Node, origin string, nameservers []string) dns.Handler { - if !strings.HasSuffix(origin, ".") { - origin += "." - } + origin = ensureFinalDot(origin) dnsz := newDNSZone(n.lb, origin, nameservers) mux := dns.NewServeMux() @@ -90,7 +88,7 @@ func (d *dnsZone) ServeDNS(w dns.ResponseWriter, req *dns.Msg) { Class: dns.ClassINET, Ttl: nsTTL, }, - Ns: ns, + Ns: ensureFinalDot(ns), }) } @@ -238,3 +236,11 @@ func runDNSServerWithContext(ctx context.Context, srv *dns.Server) error { }() return srv.ListenAndServe() } + +func ensureFinalDot(s string) string { + if !strings.HasSuffix(s, ".") { + return s + "." + } + return s +} + -- GitLab