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