From cf3e149be6cf32940398ed7ac9c5c52cc503e4b4 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Tue, 1 Oct 2019 11:10:07 +0200 Subject: [PATCH] dnsdist: Lowercase custom DoH header names --- pdns/dnsdist-lua.cc | 2 +- regression-tests.dnsdist/test_DOH.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pdns/dnsdist-lua.cc b/pdns/dnsdist-lua.cc index 42232d7c5..836a49401 100644 --- a/pdns/dnsdist-lua.cc +++ b/pdns/dnsdist-lua.cc @@ -1742,7 +1742,7 @@ void setupLuaConfig(bool client) } if (vars->count("customResponseHeaders")) { for (auto const& headerMap : boost::get>((*vars)["customResponseHeaders"])) { - std::pair headerResponse = std::make_pair(headerMap.first, headerMap.second); + std::pair headerResponse = std::make_pair(boost::to_lower_copy(headerMap.first), headerMap.second); frontend->d_customResponseHeaders.push_back(headerResponse); } } diff --git a/regression-tests.dnsdist/test_DOH.py b/regression-tests.dnsdist/test_DOH.py index db207f856..4bd0089e6 100644 --- a/regression-tests.dnsdist/test_DOH.py +++ b/regression-tests.dnsdist/test_DOH.py @@ -150,7 +150,7 @@ class TestDOH(DNSDistDOHTest): _config_template = """ newServer{address="127.0.0.1:%s"} - addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {customResponseHeaders={["access-control-allow-origin"]="*",["user-agent"]="derp"}}) + addDOHLocal("127.0.0.1:%s", "%s", "%s", { "/" }, {customResponseHeaders={["access-control-allow-origin"]="*",["user-agent"]="derp",["UPPERCASE"]="VaLuE"}}) dohFE = getDOHFrontend(0) dohFE:setResponsesMap({newDOHResponseMapEntry('^/coffee$', 418, 'C0FFEE', {['foo']='bar'})}) @@ -208,6 +208,8 @@ class TestDOH(DNSDistDOHTest): self.assertEquals(expectedQuery, receivedQuery) self.assertTrue((self._customResponseHeader1) in self._response_headers.decode()) self.assertTrue((self._customResponseHeader2) in self._response_headers.decode()) + self.assertFalse(('UPPERCASE: VaLuE' in self._response_headers.decode())) + self.assertTrue(('uppercase: VaLuE' in self._response_headers.decode())) self.checkQueryEDNSWithoutECS(expectedQuery, receivedQuery) self.assertEquals(response, receivedResponse) -- 2.40.0