Skip to content

Commit

Permalink
Fix DNS fallthrough incorrectly
Browse files Browse the repository at this point in the history
  • Loading branch information
nekohasekai committed Mar 24, 2024
1 parent 9804526 commit 0263e8a
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions route/router_dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,20 +138,24 @@ func (r *Router) Exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, er
response, err = r.dnsClient.Exchange(dnsCtx, transport, message, strategy)
}
cancel()
var rejected bool
if err != nil {
if errors.Is(err, dns.ErrResponseRejectedCached) {
rejected = true
r.dnsLogger.DebugContext(ctx, E.Cause(err, "response rejected for ", formatQuestion(message.Question[0].String())), " (cached)")
} else if errors.Is(err, dns.ErrResponseRejected) {
rejected = true
r.dnsLogger.DebugContext(ctx, E.Cause(err, "response rejected for ", formatQuestion(message.Question[0].String())))
} else if len(message.Question) > 0 {
r.dnsLogger.ErrorContext(ctx, E.Cause(err, "exchange failed for ", formatQuestion(message.Question[0].String())))
} else {
r.dnsLogger.ErrorContext(ctx, E.Cause(err, "exchange failed for <empty query>"))
}
}
if !addressLimit || err == nil {
break
if addressLimit && rejected {
continue
}
break
}
}
if r.dnsReverseMapping != nil && len(message.Question) > 0 && response != nil && len(response.Answer) > 0 {
Expand Down

0 comments on commit 0263e8a

Please sign in to comment.