Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
2e8f91b1af | |||
1049057f69 | |||
0622e00f64 | |||
c0f98d4a25 |
@ -172,8 +172,6 @@ func (m measurement) String() string {
|
||||
}
|
||||
|
||||
func (s *Server) probeUpstreamLatency() {
|
||||
if !s.once {
|
||||
s.once = true
|
||||
upstreams := s.upstreams()
|
||||
results := make([]measurement, len(upstreams))
|
||||
var wg sync.WaitGroup
|
||||
@ -201,7 +199,7 @@ func (s *Server) probeUpstreamLatency() {
|
||||
sort.Slice(results, func(i, j int) bool {
|
||||
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 {
|
||||
upstreams[idx] = result.upstream
|
||||
}
|
||||
@ -209,7 +207,6 @@ func (s *Server) probeUpstreamLatency() {
|
||||
defer s.upstreamMu.Unlock()
|
||||
s.upstream = upstreams
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) hostByName(n lcHostname) (string, bool) {
|
||||
s.mu.Lock()
|
||||
@ -553,6 +550,7 @@ func (s *Server) resolveSubname(domain string, q dns.Question) (dns.RR, error) {
|
||||
name := strings.TrimSuffix(q.Name, ".")
|
||||
name = strings.TrimSuffix(name, "."+string(s.domain)) // trim server domain
|
||||
name = strings.TrimSuffix(name, "."+strings.TrimSuffix(domain, "."+string(s.domain))) // trim function domain
|
||||
name = strings.TrimSuffix(name, ".lan") // trim function domain
|
||||
if ip, ok := s.subname(domain, name); ok {
|
||||
if q.Qtype == dns.TypeA && ip.IPv4.To4() != nil {
|
||||
return dns.NewRR(q.Name + " 3600 IN A " + ip.IPv4.String())
|
||||
|
Reference in New Issue
Block a user