From 0af9b9b16fe069f3201584d7e698efb4ebaee7fb Mon Sep 17 00:00:00 2001 From: Tobias Schmidt Date: Tue, 30 Jan 2018 22:18:44 +0100 Subject: [PATCH] plugin/proxy: Fix unnecessary message truncation (#1477) As plugin/proxy always returns compressed messages, it's important to set this before calling Scrub(), as some messages will be unnecessarily truncated otherwise. --- plugin/proxy/dns.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugin/proxy/dns.go b/plugin/proxy/dns.go index 2bebae755..bbff3ba4a 100644 --- a/plugin/proxy/dns.go +++ b/plugin/proxy/dns.go @@ -63,10 +63,12 @@ func (d *dnsEx) Exchange(ctx context.Context, addr string, state request.Request if err != nil { return nil, err } - // Make sure it fits in the DNS response. - reply, _ = state.Scrub(reply) reply.Compress = true reply.Id = state.Req.Id + // When using force_tcp the upstream can send a message that is too big for + // the udp buffer, hence we need to truncate the message to at least make it + // fit the udp buffer. + reply, _ = state.Scrub(reply) return reply, nil }