diff --git a/internal/dns/dns.go b/internal/dns/dns.go index 0f1a69a..46a870c 100644 --- a/internal/dns/dns.go +++ b/internal/dns/dns.go @@ -480,6 +480,7 @@ func (s *Server) handleInternal(w dns.ResponseWriter, r *dns.Msg) { if err == errEmpty { m := new(dns.Msg) m.SetReply(r) + m.RecursionAvailable = true w.WriteMsg(m) return } @@ -488,6 +489,7 @@ func (s *Server) handleInternal(w dns.ResponseWriter, r *dns.Msg) { if rr != nil { m := new(dns.Msg) m.SetReply(r) + m.RecursionAvailable = true m.Answer = append(m.Answer, rr) w.WriteMsg(m) return @@ -495,6 +497,7 @@ func (s *Server) handleInternal(w dns.ResponseWriter, r *dns.Msg) { // Send an authoritative NXDOMAIN for local: m := new(dns.Msg) m.SetReply(r) + m.RecursionAvailable = true m.SetRcode(r, dns.RcodeNameError) w.WriteMsg(m) } @@ -582,6 +585,7 @@ func (s *Server) subnameHandler(hostname lcHostname) func(w dns.ResponseWriter, if err == errEmpty { m := new(dns.Msg) m.SetReply(r) + m.RecursionAvailable = true w.WriteMsg(m) return } @@ -591,6 +595,7 @@ func (s *Server) subnameHandler(hostname lcHostname) func(w dns.ResponseWriter, s.promInc("local", r) m := new(dns.Msg) m.SetReply(r) + m.RecursionAvailable = true m.Answer = append(m.Answer, rr) w.WriteMsg(m) return @@ -601,6 +606,7 @@ func (s *Server) subnameHandler(hostname lcHostname) func(w dns.ResponseWriter, s.promInc("local", r) m := new(dns.Msg) m.SetReply(r) + m.RecursionAvailable = true m.SetRcode(r, dns.RcodeNameError) w.WriteMsg(m) return