From: Charles-Henri Bruyand Date: Wed, 6 Oct 2021 15:19:02 +0000 (+0200) Subject: Make sure that any EDNS sent by the backend is removed before forwarding the response... X-Git-Tag: dnsdist-1.7.0-alpha2~24^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F10814%2Fhead;p=thirdparty%2Fpdns.git Make sure that any EDNS sent by the backend is removed before forwarding the response to the client --- 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)