From: Otto Moerbeek Date: Tue, 27 Aug 2019 14:27:31 +0000 (+0200) Subject: Add unit test for #8231. X-Git-Tag: dnsdist-1.4.0-rc3~33^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=164874e0918e0bfb2527055d5af9f5c84bce1913;p=pdns Add unit test for #8231. --- diff --git a/pdns/recursordist/test-filterpo_cc.cc b/pdns/recursordist/test-filterpo_cc.cc index 4cc065cff..75806798a 100644 --- a/pdns/recursordist/test-filterpo_cc.cc +++ b/pdns/recursordist/test-filterpo_cc.cc @@ -218,6 +218,74 @@ BOOST_AUTO_TEST_CASE(test_filter_policies_basic) { BOOST_CHECK(dfe.getZone(zoneIdx) == zone); } +BOOST_AUTO_TEST_CASE(test_filter_policies_wildcard_with_enc) { + DNSFilterEngine dfe; + + std::string zoneName("Unit test policy wc"); + auto zone = std::make_shared(); + zone->setName(zoneName); + zone->setDomain(DNSName("powerdns.com.")); + zone->setSerial(42); + zone->setRefresh(99); + + zone->addQNameTrigger(DNSName("bcbsks.com.102.112.2o7.net."), + DNSFilterEngine::Policy(DNSFilterEngine::PolicyKind::NoAction, + DNSFilterEngine::PolicyType::QName)); + zone->addQNameTrigger(DNSName("2o7.net."), + DNSFilterEngine::Policy(DNSFilterEngine::PolicyKind::Drop, + DNSFilterEngine::PolicyType::QName)); + zone->addQNameTrigger(DNSName("*.2o7.net."), + DNSFilterEngine::Policy(DNSFilterEngine::PolicyKind::Drop, + DNSFilterEngine::PolicyType::QName)); + + dfe.addZone(zone); + + ComboAddress address("192.0.2.142"); + + { + const DNSName tstName("bcbsks.com.102.112.2o7.net."); + auto matchingPolicy = dfe.getQueryPolicy(tstName, address, std::unordered_map()); + BOOST_CHECK(matchingPolicy.d_type == DNSFilterEngine::PolicyType::QName); + BOOST_CHECK(matchingPolicy.d_kind == DNSFilterEngine::PolicyKind::NoAction); + } + + { + const DNSName tstName("2o7.net."); + auto matchingPolicy = dfe.getQueryPolicy(tstName, address, std::unordered_map()); + BOOST_CHECK(matchingPolicy.d_type == DNSFilterEngine::PolicyType::QName); + BOOST_CHECK(matchingPolicy.d_kind == DNSFilterEngine::PolicyKind::Drop); + } + + { + const DNSName tstName("112.2o7.net."); + auto matchingPolicy = dfe.getProcessingPolicy(tstName, std::unordered_map()); + BOOST_CHECK(matchingPolicy.d_type == DNSFilterEngine::PolicyType::None); + BOOST_CHECK(matchingPolicy.d_kind == DNSFilterEngine::PolicyKind::NoAction); + } + + { + const DNSName tstName("102.112.2o7.net."); + auto matchingPolicy = dfe.getProcessingPolicy(tstName, std::unordered_map()); + BOOST_CHECK(matchingPolicy.d_type == DNSFilterEngine::PolicyType::None); + BOOST_CHECK(matchingPolicy.d_kind == DNSFilterEngine::PolicyKind::NoAction); + } + + { + const DNSName tstName("com.112.2o7.net."); + auto matchingPolicy = dfe.getProcessingPolicy(tstName, std::unordered_map()); + BOOST_CHECK(matchingPolicy.d_type == DNSFilterEngine::PolicyType::None); + BOOST_CHECK(matchingPolicy.d_kind == DNSFilterEngine::PolicyKind::NoAction); + } + + { + const DNSName tstName("wcmatch.2o7.net."); + auto matchingPolicy = dfe.getQueryPolicy(tstName, address, std::unordered_map()); + BOOST_CHECK(matchingPolicy.d_type == DNSFilterEngine::PolicyType::QName); + BOOST_CHECK(matchingPolicy.d_kind == DNSFilterEngine::PolicyKind::Drop); + } + +} + BOOST_AUTO_TEST_CASE(test_filter_policies_local_data) { DNSFilterEngine dfe;