From: Remi Gacogne Date: Tue, 1 Oct 2019 09:10:07 +0000 (+0200) Subject: dnsdist: Lowercase custom DoH header names X-Git-Tag: dnsdist-1.4.0-rc4~50^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf3e149be6cf32940398ed7ac9c5c52cc503e4b4;p=pdns dnsdist: Lowercase custom DoH header names --- 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)