From ede92d2e8948cf7c632f177f981de810431d9651 Mon Sep 17 00:00:00 2001 From: Charles-Henri Bruyand Date: Wed, 6 Oct 2021 17:19:02 +0200 Subject: [PATCH] Make sure that any EDNS sent by the backend is removed before forwarding the response to the client --- pdns/dnsdist-lua-actions.cc | 4 ++++ regression-tests.dnsdist/test_Advanced.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pdns/dnsdist-lua-actions.cc b/pdns/dnsdist-lua-actions.cc index e600cebb55..575be5a68d 100644 --- a/pdns/dnsdist-lua-actions.cc +++ b/pdns/dnsdist-lua-actions.cc @@ -927,6 +927,8 @@ public: auto& data = dq->getMutableData(); if (generateOptRR(optRData, data, dq->getMaximumSize(), g_EdnsUDPPayloadSize, 0, false)) { dq->getHeader()->arcount = htons(1); + // make sure that any EDNS sent by the backend is removed before forwarding the response to the client + dq->ednsAdded = true; } return Action::None; @@ -959,6 +961,8 @@ public: auto& data = dq->getMutableData(); if (generateOptRR(optRData, data, dq->getMaximumSize(), g_EdnsUDPPayloadSize, 0, false)) { dq->getHeader()->arcount = htons(1); + // make sure that any EDNS sent by the backend is removed before forwarding the response to the client + dq->ednsAdded = true; } return Action::None; diff --git a/regression-tests.dnsdist/test_Advanced.py b/regression-tests.dnsdist/test_Advanced.py index d9e3f9de4b..06ff70b4dd 100644 --- a/regression-tests.dnsdist/test_Advanced.py +++ b/regression-tests.dnsdist/test_Advanced.py @@ -2335,5 +2335,5 @@ class TestAdvancedSetEDNSOptionAction(DNSDistTest): self.assertTrue(receivedResponse) receivedQuery.id = expectedQuery.id self.assertEqual(expectedQuery, receivedQuery) - self.assertEqual(response, receivedResponse) + self.checkResponseNoEDNS(response, receivedResponse) self.checkQueryEDNS(expectedQuery, receivedQuery) -- 2.47.2