diff --git a/internal/dnsforward/dnsforward.go b/internal/dnsforward/dnsforward.go index 4afdfd34..3016f133 100644 --- a/internal/dnsforward/dnsforward.go +++ b/internal/dnsforward/dnsforward.go @@ -314,7 +314,7 @@ func (s *Server) Exchange(ip net.IP) (host string, err error) { StartTime: time.Now(), } - resolver := s.internalProxy + var resolver *proxy.Proxy if s.subnetDetector.IsLocallyServedNetwork(ip) { if !s.conf.UsePrivateRDNS { return "", nil @@ -322,6 +322,8 @@ func (s *Server) Exchange(ip net.IP) (host string, err error) { resolver = s.localResolvers s.recDetector.add(*req) + } else { + resolver = s.internalProxy } if err = resolver.Resolve(ctx); err != nil { diff --git a/internal/home/clients.go b/internal/home/clients.go index ae68f2e3..aa5f4778 100644 --- a/internal/home/clients.go +++ b/internal/home/clients.go @@ -56,8 +56,8 @@ type clientSource uint // Client sources. The order determines the priority. const ( ClientSourceWHOIS clientSource = iota - ClientSourceRDNS ClientSourceARP + ClientSourceRDNS ClientSourceDHCP ClientSourceHostsFile ) @@ -721,9 +721,7 @@ func (clients *clientsContainer) AddHost(ip net.IP, host string, src clientSourc clients.lock.Lock() defer clients.lock.Unlock() - ok = clients.addHostLocked(ip, host, src) - - return ok, nil + return clients.addHostLocked(ip, host, src), nil } // addHostLocked adds a new IP-hostname pairing. For internal use only. diff --git a/internal/home/rdns.go b/internal/home/rdns.go index 9f577c24..924aff37 100644 --- a/internal/home/rdns.go +++ b/internal/home/rdns.go @@ -124,14 +124,12 @@ func (r *RDNS) workerLoop() { log.Debug("rdns: resolving %q: %s", ip, err) continue - } - - if host == "" { + } else if host == "" { continue } - // Don't handle any errors since AddHost doesn't return non-nil - // errors for now. + // Don't handle any errors since AddHost doesn't return non-nil errors + // for now. _, _ = r.clients.AddHost(ip, host, ClientSourceRDNS) } }