]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Fix invalid scope test to do what I think is actually intended
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 20 Jan 2025 13:08:02 +0000 (14:08 +0100)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 14 Jul 2025 07:10:09 +0000 (09:10 +0200)
pdns/recursordist/lwres.cc
regression-tests.recursor-dnssec/test_ECS.py

index 4dddb0c34a688e37940e3c3eb21cbc84addcc680..d96e1cbb3081d550ee62339c064d13b9f8cfed9b 100644 (file)
@@ -598,7 +598,7 @@ static LWResult::Result asyncresolve(const ComboAddress& address, const DNSName&
 
       // If we sent out ECS, we can also expect to see a return with or without ECS, the absent case is
       // not handled explicitly. If we do see a ECS in the reply, the source part *must* match with
-      // what we sent out See https://www.rfc-editor.org/rfc/rfc7871#section-7.3
+      // what we sent out. See https://www.rfc-editor.org/rfc/rfc7871#section-7.3
       if (subnetOpts) {
         for (const auto& opt : edo.d_options) {
           if (opt.first == EDNSOptionCode::ECS) {
index be91694f7443a62784609b38c43012ba92ac48cc..9a5ca014339af84bf4fbf1f832ac2b7f91c0d15f 100644 (file)
@@ -463,9 +463,9 @@ ecs-ipv6-cache-bits=128
 
     def testSendECSInvalidScope(self):
         # test that the recursor does not cache with a more specific scope than the source it sent
-        expected = dns.rrset.from_text(nameECSInvalidScope, ttlECS, dns.rdataclass.IN, 'TXT', '192.0.2.0/24')
+        expected = dns.rrset.from_text(nameECSInvalidScope, ttlECS, dns.rdataclass.IN, 'TXT', '192.0.2.0/24/25')
 
-        ecso = clientsubnetoption.ClientSubnetOption('192.0.2.1', 32)
+        ecso = clientsubnetoption.ClientSubnetOption('192.0.2.1', 24)
         query = dns.message.make_query(nameECSInvalidScope, 'TXT', 'IN', use_edns=True, options=[ecso], payload=512)
 
         self.sendECSQuery(query, expected)
@@ -589,7 +589,8 @@ class UDPECSResponder(DatagramProtocol):
 
                     # Send a scope more specific than the received source for nameECSInvalidScope
                     if request.question[0].name == dns.name.from_text(nameECSInvalidScope):
-                        ecso = clientsubnetoption.ClientSubnetOption("192.0.42.42", 32, 32)
+                        ecso = clientsubnetoption.ClientSubnetOption("192.0.2.1", 24, 25)
+                        text += "/25"
                     else:
                         ecso = clientsubnetoption.ClientSubnetOption(self.ipToStr(option), option.mask, option.mask)