From a498611a2a8f0ef9640c4b7f8643f64512c86d58 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 25 Sep 2020 11:07:36 +0200 Subject: [PATCH] Fix second write when responding with extra section --- nameserver/response.go | 2 +- resolver/resolve.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nameserver/response.go b/nameserver/response.go index 1894c9b5..4171b36f 100644 --- a/nameserver/response.go +++ b/nameserver/response.go @@ -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 diff --git a/resolver/resolve.go b/resolver/resolve.go index 526c6931..67b95ec6 100644 --- a/resolver/resolve.go +++ b/resolver/resolve.go @@ -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 }