Merge pull request #158 from safing/fix/no-extra-section-dns-response

Fix second write when responding with extra section
This commit is contained in:
Daniel 2020-09-25 11:35:11 +02:00 committed by GitHub
commit 03830b4ea7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 3 deletions

View file

@ -53,7 +53,7 @@ func writeDNSResponse(w dns.ResponseWriter, m *dns.Msg) (err error) {
}()
err = w.WriteMsg(m)
if err == nil {
if err != nil {
// If we receive an error we might have exceeded the message size with all
// our extra information records. Retry again without the extra section.
m.Extra = nil

View file

@ -309,7 +309,7 @@ retry:
}
}
func resolveAndCache(ctx context.Context, q *Query, oldCache *RRCache) (rrCache *RRCache, err error) { //nolint:gocognit
func resolveAndCache(ctx context.Context, q *Query, oldCache *RRCache) (rrCache *RRCache, err error) { //nolint:gocognit,gocyclo
// get resolvers
resolvers, tryAll := GetResolversInScope(ctx, q)
if len(resolvers) == 0 {
@ -377,7 +377,7 @@ resolveLoop:
// Defensive: This should normally not happen.
continue
}
// Check if request suceeded and whether we should try another resolver.
// Check if request succeeded and whether we should try another resolver.
if rrCache.RCode != dns.RcodeSuccess && tryAll {
continue
}