Skip to content

Commit

Permalink
dnsforward: only check recursion for private rdns
Browse files Browse the repository at this point in the history
  • Loading branch information
EugeneOne1 committed May 30, 2021
1 parent 1b8075b commit 79208a8
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
18 changes: 10 additions & 8 deletions internal/dnsforward/dnsforward.go
Original file line number Diff line number Diff line change
Expand Up @@ -265,13 +265,6 @@ func (s *Server) Exchange(ip net.IP) (host string, err error) {
return "", nil
}

var resolver *proxy.Proxy = s.localResolvers
if !s.subnetDetector.IsLocallyServedNetwork(ip) {
resolver = s.internalProxy
} else if !s.conf.UsePrivateRDNS {
return "", nil
}

arpa := dns.Fqdn(aghnet.ReverseAddr(ip))
req := &dns.Msg{
MsgHdr: dns.MsgHdr{
Expand All @@ -291,7 +284,16 @@ func (s *Server) Exchange(ip net.IP) (host string, err error) {
StartTime: time.Now(),
}

s.recDetector.add(*req)
var resolver *proxy.Proxy = s.internalProxy
if s.subnetDetector.IsLocallyServedNetwork(ip) {
if !s.conf.UsePrivateRDNS {
return "", nil
}

resolver = s.localResolvers
s.recDetector.add(*req)
}

if err = resolver.Resolve(ctx); err != nil {
return "", err
}
Expand Down
2 changes: 1 addition & 1 deletion internal/dnsforward/recursiondetector.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ type recursionDetector struct {
ttl time.Duration
}

// check checks if the passed req was already sent by s.
// check checks if the passed req was already sent by the server.
func (rd *recursionDetector) check(msg dns.Msg) (ok bool) {
if len(msg.Question) == 0 {
return false
Expand Down

0 comments on commit 79208a8

Please sign in to comment.