From: Remi Gacogne Date: Thu, 21 Feb 2019 13:53:58 +0000 (+0100) Subject: dnsdist: Add regression tests for setAllowEmptyResponse() X-Git-Tag: auth-4.2.0-beta1~4^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bcc478046754c09099f2c70533dc1e4283cecb50;p=thirdparty%2Fpdns.git dnsdist: Add regression tests for setAllowEmptyResponse() --- diff --git a/regression-tests.dnsdist/test_Advanced.py b/regression-tests.dnsdist/test_Advanced.py index 441c73f582..072a7e0115 100644 --- a/regression-tests.dnsdist/test_Advanced.py +++ b/regression-tests.dnsdist/test_Advanced.py @@ -1714,3 +1714,63 @@ class TestAdvancedEDNSOptionRule(DNSDistTest): receivedQuery.id = query.id self.assertEquals(query, receivedQuery) self.assertEquals(receivedResponse, response) + +class TestAdvancedAllowHeaderOnly(DNSDistTest): + + _config_template = """ + newServer{address="127.0.0.1:%s"} + setAllowEmptyResponse(true) + """ + + def testHeaderOnlyRefused(self): + """ + Advanced: Header-only refused response + """ + name = 'header-only-refused-response.advanced.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN') + response = dns.message.make_response(query) + response.set_rcode(dns.rcode.REFUSED) + response.question = [] + + for method in ("sendUDPQuery", "sendTCPQuery"): + sender = getattr(self, method) + (receivedQuery, receivedResponse) = sender(query, response) + self.assertTrue(receivedQuery) + receivedQuery.id = query.id + self.assertEquals(query, receivedQuery) + self.assertEquals(receivedResponse, response) + + def testHeaderOnlyNoErrorResponse(self): + """ + Advanced: Header-only NoError response should be allowed + """ + name = 'header-only-noerror-response.advanced.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN') + response = dns.message.make_response(query) + response.question = [] + + for method in ("sendUDPQuery", "sendTCPQuery"): + sender = getattr(self, method) + (receivedQuery, receivedResponse) = sender(query, response) + self.assertTrue(receivedQuery) + receivedQuery.id = query.id + self.assertEquals(query, receivedQuery) + self.assertEquals(receivedResponse, response) + + def testHeaderOnlyNXDResponse(self): + """ + Advanced: Header-only NXD response should be allowed + """ + name = 'header-only-nxd-response.advanced.tests.powerdns.com.' + query = dns.message.make_query(name, 'A', 'IN') + response = dns.message.make_response(query) + response.set_rcode(dns.rcode.NXDOMAIN) + response.question = [] + + for method in ("sendUDPQuery", "sendTCPQuery"): + sender = getattr(self, method) + (receivedQuery, receivedResponse) = sender(query, response) + self.assertTrue(receivedQuery) + receivedQuery.id = query.id + self.assertEquals(query, receivedQuery) + self.assertEquals(receivedResponse, response)