3 Commits

Author SHA1 Message Date
1049057f69 Set the recursion available flag 2020-06-23 02:16:56 -07:00
0622e00f64 Add JSON tags 2020-06-23 02:16:56 -07:00
c0f98d4a25 DNS changes
go mod tidy
2020-06-23 02:16:53 -07:00

View File

@ -172,8 +172,6 @@ func (m measurement) String() string {
} }
func (s *Server) probeUpstreamLatency() { func (s *Server) probeUpstreamLatency() {
if !s.once {
s.once = true
upstreams := s.upstreams() upstreams := s.upstreams()
results := make([]measurement, len(upstreams)) results := make([]measurement, len(upstreams))
var wg sync.WaitGroup var wg sync.WaitGroup
@ -201,7 +199,7 @@ func (s *Server) probeUpstreamLatency() {
sort.Slice(results, func(i, j int) bool { sort.Slice(results, func(i, j int) bool {
return results[i].rtt < results[j].rtt return results[i].rtt < results[j].rtt
}) })
log.Printf("probe results: %v %v", s.once, results) log.Printf("probe results: %v", results)
for idx, result := range results { for idx, result := range results {
upstreams[idx] = result.upstream upstreams[idx] = result.upstream
} }
@ -209,7 +207,6 @@ func (s *Server) probeUpstreamLatency() {
defer s.upstreamMu.Unlock() defer s.upstreamMu.Unlock()
s.upstream = upstreams s.upstream = upstreams
} }
}
func (s *Server) hostByName(n lcHostname) (string, bool) { func (s *Server) hostByName(n lcHostname) (string, bool) {
s.mu.Lock() s.mu.Lock()
@ -480,6 +477,7 @@ func (s *Server) handleInternal(w dns.ResponseWriter, r *dns.Msg) {
if err == errEmpty { if err == errEmpty {
m := new(dns.Msg) m := new(dns.Msg)
m.SetReply(r) m.SetReply(r)
m.RecursionAvailable = true
w.WriteMsg(m) w.WriteMsg(m)
return return
} }
@ -488,6 +486,7 @@ func (s *Server) handleInternal(w dns.ResponseWriter, r *dns.Msg) {
if rr != nil { if rr != nil {
m := new(dns.Msg) m := new(dns.Msg)
m.SetReply(r) m.SetReply(r)
m.RecursionAvailable = true
m.Answer = append(m.Answer, rr) m.Answer = append(m.Answer, rr)
w.WriteMsg(m) w.WriteMsg(m)
return return
@ -495,6 +494,7 @@ func (s *Server) handleInternal(w dns.ResponseWriter, r *dns.Msg) {
// Send an authoritative NXDOMAIN for local: // Send an authoritative NXDOMAIN for local:
m := new(dns.Msg) m := new(dns.Msg)
m.SetReply(r) m.SetReply(r)
m.RecursionAvailable = true
m.SetRcode(r, dns.RcodeNameError) m.SetRcode(r, dns.RcodeNameError)
w.WriteMsg(m) w.WriteMsg(m)
} }
@ -582,6 +582,7 @@ func (s *Server) subnameHandler(hostname lcHostname) func(w dns.ResponseWriter,
if err == errEmpty { if err == errEmpty {
m := new(dns.Msg) m := new(dns.Msg)
m.SetReply(r) m.SetReply(r)
m.RecursionAvailable = true
w.WriteMsg(m) w.WriteMsg(m)
return return
} }
@ -591,6 +592,7 @@ func (s *Server) subnameHandler(hostname lcHostname) func(w dns.ResponseWriter,
s.promInc("local", r) s.promInc("local", r)
m := new(dns.Msg) m := new(dns.Msg)
m.SetReply(r) m.SetReply(r)
m.RecursionAvailable = true
m.Answer = append(m.Answer, rr) m.Answer = append(m.Answer, rr)
w.WriteMsg(m) w.WriteMsg(m)
return return
@ -601,6 +603,7 @@ func (s *Server) subnameHandler(hostname lcHostname) func(w dns.ResponseWriter,
s.promInc("local", r) s.promInc("local", r)
m := new(dns.Msg) m := new(dns.Msg)
m.SetReply(r) m.SetReply(r)
m.RecursionAvailable = true
m.SetRcode(r, dns.RcodeNameError) m.SetRcode(r, dns.RcodeNameError)
w.WriteMsg(m) w.WriteMsg(m)
return return