gettime(&now);
NetmaskTree<DynBlock> emptyNMG;
- size_t numberOfSeconds = 10;
- size_t blockDuration = 60;
+ time_t numberOfSeconds = 10;
+ unsigned int blockDuration = 60;
const auto action = DNSAction::Action::Drop;
const std::string reason = "Exceeded query ratio";
const uint16_t rcode = RCode::ServFail;
/* insert 20 ServFail and 80 NoErrors from a given client in the last 10s
this should not trigger the rule */
g_rings.clear();
- BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 0);
+ BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 0U);
g_dynblockNMG.setState(emptyNMG);
dh.rcode = rcode;
for (size_t idx = 0; idx < 80; idx++) {
g_rings.insertResponse(now, requestor1, qname, qtype, responseTime, size, dh, backend);
}
- BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 100);
+ BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 100U);
dbrg.apply(now);
- BOOST_CHECK_EQUAL(g_dynblockNMG.getLocal()->size(), 0);
+ BOOST_CHECK_EQUAL(g_dynblockNMG.getLocal()->size(), 0U);
BOOST_CHECK(g_dynblockNMG.getLocal()->lookup(requestor1) == nullptr);
}
{
/* insert just 50 FormErrs and nothing else, from a given client in the last 10s */
g_rings.clear();
- BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 0);
+ BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 0U);
g_dynblockNMG.setState(emptyNMG);
dh.rcode = RCode::FormErr;
for (size_t idx = 0; idx < 50; idx++) {
g_rings.insertResponse(now, requestor1, qname, qtype, responseTime, size, dh, backend);
}
- BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 50);
+ BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 50U);
dbrg.apply(now);
- BOOST_CHECK_EQUAL(g_dynblockNMG.getLocal()->size(), 0);
+ BOOST_CHECK_EQUAL(g_dynblockNMG.getLocal()->size(), 0U);
BOOST_CHECK(g_dynblockNMG.getLocal()->lookup(requestor1) == nullptr);
}
/* insert 21 ServFails and 79 NoErrors from a given client in the last 10s
this should trigger the rule this time */
g_rings.clear();
- BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 0);
+ BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 0U);
g_dynblockNMG.setState(emptyNMG);
dh.rcode = rcode;
for (size_t idx = 0; idx < 79; idx++) {
g_rings.insertResponse(now, requestor1, qname, qtype, responseTime, size, dh, backend);
}
- BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 100);
+ BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 100U);
dbrg.apply(now);
- BOOST_CHECK_EQUAL(g_dynblockNMG.getLocal()->size(), 1);
+ BOOST_CHECK_EQUAL(g_dynblockNMG.getLocal()->size(), 1U);
BOOST_CHECK(g_dynblockNMG.getLocal()->lookup(requestor1) != nullptr);
BOOST_CHECK(g_dynblockNMG.getLocal()->lookup(requestor2) == nullptr);
const auto& block = g_dynblockNMG.getLocal()->lookup(requestor1)->second;
BOOST_CHECK_EQUAL(block.until.tv_sec, now.tv_sec + blockDuration);
BOOST_CHECK(block.domain.empty());
BOOST_CHECK(block.action == action);
- BOOST_CHECK_EQUAL(block.blocks, 0);
+ BOOST_CHECK_EQUAL(block.blocks, 0U);
BOOST_CHECK_EQUAL(block.warning, false);
}
/* insert 11 ServFails and 39 NoErrors from a given client in the last 10s
this should NOT trigger the rule since we don't have more than 50 queries */
g_rings.clear();
- BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 0);
+ BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 0U);
g_dynblockNMG.setState(emptyNMG);
dh.rcode = rcode;
for (size_t idx = 0; idx < 39; idx++) {
g_rings.insertResponse(now, requestor1, qname, qtype, responseTime, size, dh, backend);
}
- BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 50);
+ BOOST_CHECK_EQUAL(g_rings.getNumberOfResponseEntries(), 50U);
dbrg.apply(now);
- BOOST_CHECK_EQUAL(g_dynblockNMG.getLocal()->size(), 0);
+ BOOST_CHECK_EQUAL(g_dynblockNMG.getLocal()->size(), 0U);
BOOST_CHECK(g_dynblockNMG.getLocal()->lookup(requestor1) == nullptr);
}
}
int res = sr->beginResolve(target, QType(QType::DS), QClass::IN, ret);
BOOST_CHECK_EQUAL(res, RCode::NoError);
BOOST_CHECK_EQUAL(sr->getValidationState(), Insecure);
- BOOST_REQUIRE_EQUAL(ret.size(), 6);
+ BOOST_REQUIRE_EQUAL(ret.size(), 6U);
BOOST_CHECK(ret[0].d_type == QType::SOA);
- BOOST_CHECK_EQUAL(queriesCount, 4);
+ BOOST_CHECK_EQUAL(queriesCount, 4U);
/* again, to test the cache */
ret.clear();
res = sr->beginResolve(target, QType(QType::DS), QClass::IN, ret);
BOOST_CHECK_EQUAL(res, RCode::NoError);
BOOST_CHECK_EQUAL(sr->getValidationState(), Insecure);
- BOOST_REQUIRE_EQUAL(ret.size(), 6);
+ BOOST_REQUIRE_EQUAL(ret.size(), 6U);
BOOST_CHECK(ret[0].d_type == QType::SOA);
- BOOST_CHECK_EQUAL(queriesCount, 4);
+ BOOST_CHECK_EQUAL(queriesCount, 4U);
}
BOOST_AUTO_TEST_CASE(test_dnssec_secure_to_insecure_nxd_optout)
size_t queriesCount = 0;
- sr->setAsyncCallback([target, targetAddr, &queriesCount, keys](const ComboAddress& ip, const DNSName& domain, int type, bool doTCP, bool sendRDQuery, int EDNS0Level, struct timeval* now, boost::optional<Netmask>& srcmask, boost::optional<const ResolveContext&> context, LWResult* res, bool* chained) {
+ sr->setAsyncCallback([target, &queriesCount, keys](const ComboAddress& ip, const DNSName& domain, int type, bool doTCP, bool sendRDQuery, int EDNS0Level, struct timeval* now, boost::optional<Netmask>& srcmask, boost::optional<const ResolveContext&> context, LWResult* res, bool* chained) {
queriesCount++;
if (type == QType::DS) {
int res = sr->beginResolve(target, QType(QType::A), QClass::IN, ret);
BOOST_CHECK_EQUAL(res, RCode::NXDomain);
BOOST_CHECK_EQUAL(sr->getValidationState(), Insecure);
- BOOST_REQUIRE_EQUAL(ret.size(), 6);
+ BOOST_REQUIRE_EQUAL(ret.size(), 6U);
BOOST_CHECK(ret[0].d_type == QType::SOA);
- BOOST_CHECK_EQUAL(queriesCount, 6);
+ BOOST_CHECK_EQUAL(queriesCount, 6U);
/* again, to test the cache */
ret.clear();
res = sr->beginResolve(target, QType(QType::A), QClass::IN, ret);
BOOST_CHECK_EQUAL(res, RCode::NXDomain);
BOOST_CHECK_EQUAL(sr->getValidationState(), Insecure);
- BOOST_REQUIRE_EQUAL(ret.size(), 6);
+ BOOST_REQUIRE_EQUAL(ret.size(), 6U);
BOOST_CHECK(ret[0].d_type == QType::SOA);
- BOOST_CHECK_EQUAL(queriesCount, 6);
+ BOOST_CHECK_EQUAL(queriesCount, 6U);
}
BOOST_AUTO_TEST_CASE(test_dnssec_secure_direct_ds)
{
NetmaskGroup ng;
BOOST_CHECK_EQUAL(ng.empty(), true);
- BOOST_CHECK_EQUAL(ng.size(), 0);
+ BOOST_CHECK_EQUAL(ng.size(), 0U);
ng.addMask("10.0.1.0");
BOOST_CHECK_EQUAL(ng.empty(), false);
- BOOST_CHECK_EQUAL(ng.size(), 1);
+ BOOST_CHECK_EQUAL(ng.size(), 1U);
BOOST_CHECK(ng.match(ComboAddress("10.0.1.0")));
ng.toMasks("127.0.0.0/8, 10.0.0.0/24");
- BOOST_CHECK_EQUAL(ng.size(), 3);
+ BOOST_CHECK_EQUAL(ng.size(), 3U);
BOOST_CHECK(ng.match(ComboAddress("127.0.0.1")));
BOOST_CHECK(ng.match(ComboAddress("10.0.0.3")));
BOOST_CHECK(ng.match(ComboAddress("10.0.1.0")));
BOOST_CHECK(!ng.match(ComboAddress("10.0.1.1")));
BOOST_CHECK(!ng.match(ComboAddress("::1")));
ng.addMask("::1");
- BOOST_CHECK_EQUAL(ng.size(), 4);
+ BOOST_CHECK_EQUAL(ng.size(), 4U);
BOOST_CHECK(ng.match(ComboAddress("::1")));
BOOST_CHECK(!ng.match(ComboAddress("::2")));
ng.addMask("fe80::/16");
- BOOST_CHECK_EQUAL(ng.size(), 5);
+ BOOST_CHECK_EQUAL(ng.size(), 5U);
BOOST_CHECK(ng.match(ComboAddress("fe80::1")));
BOOST_CHECK(!ng.match(ComboAddress("fe81::1")));
BOOST_CHECK_EQUAL(NMGOutputToSorted(ng.toString()), NMGOutputToSorted("10.0.1.0/32, 127.0.0.0/8, 10.0.0.0/24, ::1/128, fe80::/16"));
/* negative entries using the explicit flag */
ng.addMask("172.16.0.0/16", true);
- BOOST_CHECK_EQUAL(ng.size(), 6);
+ BOOST_CHECK_EQUAL(ng.size(), 6U);
BOOST_CHECK(ng.match(ComboAddress("172.16.1.1")));
BOOST_CHECK(ng.match(ComboAddress("172.16.4.50")));
ng.addMask("172.16.4.0/24", false);
- BOOST_CHECK_EQUAL(ng.size(), 7);
+ BOOST_CHECK_EQUAL(ng.size(), 7U);
BOOST_CHECK(ng.match(ComboAddress("172.16.1.1")));
BOOST_CHECK(!ng.match(ComboAddress("172.16.4.50")));
ng.addMask("fe80::/24", false);
- BOOST_CHECK_EQUAL(ng.size(), 8);
+ BOOST_CHECK_EQUAL(ng.size(), 8U);
BOOST_CHECK(!ng.match(ComboAddress("fe80::1")));
BOOST_CHECK(!ng.match(ComboAddress("fe81::1")));
/* not in fe80::/24 but in fe80::/16, should match */
/* negative entries using '!' */
BOOST_CHECK(ng.match(ComboAddress("172.16.10.80")));
ng.addMask("!172.16.10.0/24");
- BOOST_CHECK_EQUAL(ng.size(), 9);
+ BOOST_CHECK_EQUAL(ng.size(), 9U);
BOOST_CHECK(!ng.match(ComboAddress("172.16.10.80")));
ng.addMask("2001:db8::/32");
- BOOST_CHECK_EQUAL(ng.size(), 10);
+ BOOST_CHECK_EQUAL(ng.size(), 10U);
ng.addMask("!2001:db8::/64");
- BOOST_CHECK_EQUAL(ng.size(), 11);
+ BOOST_CHECK_EQUAL(ng.size(), 11U);
BOOST_CHECK(!ng.match(ComboAddress("2001:db8::1")));
/* not in 2001:db8::/64 but in 2001:db8::/32, should match */
BOOST_CHECK(ng.match(ComboAddress("2001:db8:1::1")));
/* this time using Netmask objects instead of strings */
NetmaskGroup ng;
BOOST_CHECK_EQUAL(ng.empty(), true);
- BOOST_CHECK_EQUAL(ng.size(), 0);
+ BOOST_CHECK_EQUAL(ng.size(), 0U);
ng.addMask(Netmask("10.0.1.0"));
BOOST_CHECK_EQUAL(ng.empty(), false);
- BOOST_CHECK_EQUAL(ng.size(), 1);
+ BOOST_CHECK_EQUAL(ng.size(), 1U);
BOOST_CHECK(ng.match(ComboAddress("10.0.1.0")));
ng.addMask(Netmask("127.0.0.0/8"));
- BOOST_CHECK_EQUAL(ng.size(), 2);
+ BOOST_CHECK_EQUAL(ng.size(), 2U);
ng.addMask(Netmask("10.0.0.0/24"));
- BOOST_CHECK_EQUAL(ng.size(), 3);
+ BOOST_CHECK_EQUAL(ng.size(), 3U);
BOOST_CHECK(ng.match(ComboAddress("127.0.0.1")));
BOOST_CHECK(ng.match(ComboAddress("10.0.0.3")));
BOOST_CHECK(ng.match(ComboAddress("10.0.1.0")));
BOOST_CHECK(!ng.match(ComboAddress("10.0.1.1")));
BOOST_CHECK(!ng.match(ComboAddress("::1")));
ng.addMask(Netmask("::1"));
- BOOST_CHECK_EQUAL(ng.size(), 4);
+ BOOST_CHECK_EQUAL(ng.size(), 4U);
BOOST_CHECK(ng.match(ComboAddress("::1")));
BOOST_CHECK(!ng.match(ComboAddress("::2")));
ng.addMask(Netmask("fe80::/16"));
- BOOST_CHECK_EQUAL(ng.size(), 5);
+ BOOST_CHECK_EQUAL(ng.size(), 5U);
BOOST_CHECK(ng.match(ComboAddress("fe80::1")));
BOOST_CHECK(!ng.match(ComboAddress("fe81::1")));
BOOST_CHECK_EQUAL(NMGOutputToSorted(ng.toString()), NMGOutputToSorted("10.0.1.0/32, 127.0.0.0/8, 10.0.0.0/24, ::1/128, fe80::/16"));
/* negative entries using the explicit flag */
ng.addMask(Netmask("172.16.0.0/16"), true);
- BOOST_CHECK_EQUAL(ng.size(), 6);
+ BOOST_CHECK_EQUAL(ng.size(), 6U);
BOOST_CHECK(ng.match(ComboAddress("172.16.1.1")));
BOOST_CHECK(ng.match(ComboAddress("172.16.4.50")));
ng.addMask(Netmask("172.16.4.0/24"), false);
- BOOST_CHECK_EQUAL(ng.size(), 7);
+ BOOST_CHECK_EQUAL(ng.size(), 7U);
BOOST_CHECK(ng.match(ComboAddress("172.16.1.1")));
BOOST_CHECK(!ng.match(ComboAddress("172.16.4.50")));
ng.addMask("fe80::/24", false);
- BOOST_CHECK_EQUAL(ng.size(), 8);
+ BOOST_CHECK_EQUAL(ng.size(), 8U);
BOOST_CHECK(!ng.match(ComboAddress("fe80::1")));
BOOST_CHECK(!ng.match(ComboAddress("fe81::1")));
/* not in fe80::/24 but in fe80::/16, should match */
BOOST_AUTO_TEST_CASE(test_NetmaskTree) {
NetmaskTree<int> nmt;
BOOST_CHECK_EQUAL(nmt.empty(), true);
- BOOST_CHECK_EQUAL(nmt.size(), 0);
+ BOOST_CHECK_EQUAL(nmt.size(), 0U);
nmt.insert(Netmask("130.161.252.0/24")).second=0;
BOOST_CHECK_EQUAL(nmt.empty(), false);
- BOOST_CHECK_EQUAL(nmt.size(), 1);
+ BOOST_CHECK_EQUAL(nmt.size(), 1U);
nmt.insert(Netmask("130.161.0.0/16")).second=1;
- BOOST_CHECK_EQUAL(nmt.size(), 2);
+ BOOST_CHECK_EQUAL(nmt.size(), 2U);
nmt.insert(Netmask("130.0.0.0/8")).second=2;
- BOOST_CHECK_EQUAL(nmt.size(), 3);
+ BOOST_CHECK_EQUAL(nmt.size(), 3U);
BOOST_CHECK_EQUAL(nmt.lookup(ComboAddress("213.244.168.210")), (void*)0);
auto found=nmt.lookup(ComboAddress("130.161.252.29"));
BOOST_CHECK_EQUAL(found->second, 2);
nmt.insert(Netmask("0.0.0.0/0")).second=3;
- BOOST_CHECK_EQUAL(nmt.size(), 4);
+ BOOST_CHECK_EQUAL(nmt.size(), 4U);
nmt.insert(Netmask("0.0.0.0/7")).second=4;
- BOOST_CHECK_EQUAL(nmt.size(), 5);
+ BOOST_CHECK_EQUAL(nmt.size(), 5U);
nmt.insert(Netmask("0.0.0.0/15")).second=5;
- BOOST_CHECK_EQUAL(nmt.size(), 6);
+ BOOST_CHECK_EQUAL(nmt.size(), 6U);
BOOST_CHECK_EQUAL(nmt.lookup(Netmask("0.0.0.0/0"))->second, 3);
BOOST_CHECK_EQUAL(nmt.lookup(Netmask("0.0.0.0/7"))->second, 4);
BOOST_CHECK_EQUAL(nmt.lookup(Netmask("0.0.0.0/15"))->second, 5);
nmt.clear();
BOOST_CHECK_EQUAL(nmt.empty(), true);
- BOOST_CHECK_EQUAL(nmt.size(), 0);
+ BOOST_CHECK_EQUAL(nmt.size(), 0U);
BOOST_CHECK(!nmt.lookup(ComboAddress("130.161.180.1")));
nmt.insert(Netmask("::1")).second=1;
BOOST_CHECK_EQUAL(nmt.empty(), false);
- BOOST_CHECK_EQUAL(nmt.size(), 1);
+ BOOST_CHECK_EQUAL(nmt.size(), 1U);
nmt.insert(Netmask("::/0")).second=0;
- BOOST_CHECK_EQUAL(nmt.size(), 2);
+ BOOST_CHECK_EQUAL(nmt.size(), 2U);
nmt.insert(Netmask("fe80::/16")).second=2;
- BOOST_CHECK_EQUAL(nmt.size(), 3);
+ BOOST_CHECK_EQUAL(nmt.size(), 3U);
BOOST_CHECK_EQUAL(nmt.lookup(ComboAddress("130.161.253.255")), (void*)0);
BOOST_CHECK_EQUAL(nmt.lookup(ComboAddress("::2"))->second, 0);
BOOST_CHECK_EQUAL(nmt.lookup(ComboAddress("::ffff"))->second, 0);
BOOST_AUTO_TEST_CASE(test_single) {
NetmaskTree<bool> nmt;
BOOST_CHECK_EQUAL(nmt.empty(), true);
- BOOST_CHECK_EQUAL(nmt.size(), 0);
+ BOOST_CHECK_EQUAL(nmt.size(), 0U);
nmt.insert(Netmask("127.0.0.0/8")).second=1;
BOOST_CHECK_EQUAL(nmt.empty(), false);
- BOOST_CHECK_EQUAL(nmt.size(), 1);
+ BOOST_CHECK_EQUAL(nmt.size(), 1U);
BOOST_CHECK_EQUAL(nmt.lookup(ComboAddress("127.0.0.1"))->second, 1);
}
BOOST_AUTO_TEST_CASE(test_scale) {
string start="192.168.";
NetmaskTree<int> works;
- BOOST_CHECK_EQUAL(works.size(), 0);
- for(int i=0; i < 256; ++i) {
- for(int j=0; j < 256; ++j) {
+ BOOST_CHECK_EQUAL(works.size(), 0U);
+ for(size_t i=0; i < 256; ++i) {
+ for(size_t j=0; j < 256; ++j) {
works.insert(Netmask(start+std::to_string(i)+"."+std::to_string(j))).second=i*j;
BOOST_CHECK_EQUAL(works.size(), i*256 + j + 1);
}
}
start="2000:123:";
- for(int i=0; i < 256; ++i) {
- for(int j=0; j < 256; ++j) {
+ for(size_t i=0; i < 256; ++i) {
+ for(size_t j=0; j < 256; ++j) {
works.insert(Netmask(start+std::to_string(i)+":"+std::to_string(j)+"::/64")).second=i*j;
BOOST_CHECK_EQUAL(works.size(), (256*256) + i*256 + j + 1);
}
std::string prefix = "192.";
NetmaskTree<int> nmt;
BOOST_CHECK(nmt.empty());
- BOOST_CHECK_EQUAL(nmt.size(), 0);
+ BOOST_CHECK_EQUAL(nmt.size(), 0U);
size_t count = 0;
for(unsigned int i = 0; i < 256; ++i) {
// check set equality using iterators
BOOST_CHECK_EQUAL(masks_set1.size(), masks_set2.size());
- BOOST_CHECK_EQUAL(std::distance(masks_set1.begin(), masks_set1.end()),
- std::distance(masks_set2.begin(), masks_set2.end()));
+ BOOST_CHECK_EQUAL((size_t)std::distance(masks_set1.begin(), masks_set1.end()),
+ (size_t)std::distance(masks_set2.begin(), masks_set2.end()));
for (auto entry: masks_set1) {
Netmask mask = entry.first.getNormalized();
// check set equality using iterators
BOOST_CHECK_EQUAL(masks_set1_cp1.size(), masks_set2.size());
- BOOST_CHECK_EQUAL(std::distance(masks_set1_cp1.begin(), masks_set1_cp1.end()),
- std::distance(masks_set2.begin(), masks_set2.end()));
+ BOOST_CHECK_EQUAL((size_t)std::distance(masks_set1_cp1.begin(), masks_set1_cp1.end()),
+ (size_t)std::distance(masks_set2.begin(), masks_set2.end()));
for (auto entry: masks_set1_cp1) {
Netmask mask = entry.first.getNormalized();
// check set equality using iterators
BOOST_CHECK_EQUAL(masks_set1_cp2.size(), masks_set2.size());
- BOOST_CHECK_EQUAL(std::distance(masks_set1_cp2.begin(), masks_set1_cp2.end()),
- std::distance(masks_set2.begin(), masks_set2.end()));
+ BOOST_CHECK_EQUAL((size_t)std::distance(masks_set1_cp2.begin(), masks_set1_cp2.end()),
+ (size_t)std::distance(masks_set2.begin(), masks_set2.end()));
for (auto entry: masks_set1_cp2) {
Netmask mask = entry.first.getNormalized();
// check set equality using iterators
BOOST_CHECK_EQUAL(masks_set1_cp3.size(), masks_set2.size());
- BOOST_CHECK_EQUAL(std::distance(masks_set1_cp3.begin(), masks_set1_cp3.end()),
- std::distance(masks_set2.begin(), masks_set2.end()));
+ BOOST_CHECK_EQUAL((size_t)std::distance(masks_set1_cp3.begin(), masks_set1_cp3.end()),
+ (size_t)std::distance(masks_set2.begin(), masks_set2.end()));
for (auto entry: masks_set1_cp3) {
Netmask mask = entry.first.getNormalized();
// check set equality using iterators
BOOST_CHECK_EQUAL(masks_set1_cp5.size(), masks_set2.size());
- BOOST_CHECK_EQUAL(std::distance(masks_set1_cp5.begin(), masks_set1_cp5.end()),
- std::distance(masks_set2.begin(), masks_set2.end()));
+ BOOST_CHECK_EQUAL((size_t)std::distance(masks_set1_cp5.begin(), masks_set1_cp5.end()),
+ (size_t)std::distance(masks_set2.begin(), masks_set2.end()));
for (auto entry: masks_set1_cp5) {
Netmask mask = entry.first.getNormalized();