]> granicus.if.org Git - pdns/commitdiff
dnsdist: Lowercase custom DoH header names
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 1 Oct 2019 09:10:07 +0000 (11:10 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 1 Oct 2019 09:10:07 +0000 (11:10 +0200)
pdns/dnsdist-lua.cc
regression-tests.dnsdist/test_DOH.py

index 42232d7c54fa7c2010bfa3f45231d2cdf02a6e78..836a49401ec01a7d252338a0508a9ce174d2c914 100644 (file)
@@ -1742,7 +1742,7 @@ void setupLuaConfig(bool client)
       }
       if (vars->count("customResponseHeaders")) {
         for (auto const& headerMap : boost::get<std::map<std::string,std::string>>((*vars)["customResponseHeaders"])) {
-          std::pair<std::string,std::string> headerResponse = std::make_pair(headerMap.first, headerMap.second);
+          std::pair<std::string,std::string> headerResponse = std::make_pair(boost::to_lower_copy(headerMap.first), headerMap.second);
           frontend->d_customResponseHeaders.push_back(headerResponse);
         }
       }
index db207f8560efe78c4897f921f7a6652a47e2d481..4bd0089e670442277f9238dd6ec6f89d8385aba8 100644 (file)
@@ -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)