From 991cebb3d3f478ca89856bc57bef57d2c7c0cc63 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 25 Sep 2020 10:23:59 +0200 Subject: [PATCH] Retry send DNS response without extra section --- nameserver/response.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nameserver/response.go b/nameserver/response.go index 1159ce9e..1894c9b5 100644 --- a/nameserver/response.go +++ b/nameserver/response.go @@ -53,5 +53,14 @@ func writeDNSResponse(w dns.ResponseWriter, m *dns.Msg) (err error) { }() err = w.WriteMsg(m) + 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 + noExtraErr := w.WriteMsg(m) + if noExtraErr == nil { + log.Warningf("nameserver: failed to write dns message with extra section: %s", err) + } + } return }