From: JINMEI Tatuya Date: Tue, 31 Jan 2012 04:57:44 +0000 (-0800) Subject: [1574b] test the case of adding NSEC3PARAM at non origin X-Git-Tag: trac2351_base~268^2~5^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=97d02ec04e4c0266ec3df0899ff5b6e2f0177746;p=thirdparty%2Fkea.git [1574b] test the case of adding NSEC3PARAM at non origin --- diff --git a/src/lib/datasrc/memory_datasrc.cc b/src/lib/datasrc/memory_datasrc.cc index 126d52eebb..7e4bdf8f4f 100644 --- a/src/lib/datasrc/memory_datasrc.cc +++ b/src/lib/datasrc/memory_datasrc.cc @@ -476,9 +476,10 @@ struct InMemoryZoneFinder::InMemoryZoneFinderImpl { node->setFlag(DomainNode::FLAG_CALLBACK); } - // If we've added NSEC3PARAM, set up NSEC3 specific data or check - // consistency with already set up parameters. - if (rrset->getType() == RRType::NSEC3PARAM()) { + // If we've added NSEC3PARAM at zone origin, set up NSEC3 specific + // data or check consistency with already set up parameters. + if (rrset->getType() == RRType::NSEC3PARAM() && + rrset->getName() == origin_) { // We know rrset has exactly one RDATA const generic::NSEC3PARAM& param = dynamic_cast( diff --git a/src/lib/datasrc/tests/memory_datasrc_unittest.cc b/src/lib/datasrc/tests/memory_datasrc_unittest.cc index 08e414ee95..c0c283fdf5 100644 --- a/src/lib/datasrc/tests/memory_datasrc_unittest.cc +++ b/src/lib/datasrc/tests/memory_datasrc_unittest.cc @@ -1531,7 +1531,18 @@ TEST_F(InMemoryZoneFinderTest, multiNSEC3PARAM) { EXPECT_THROW(zone_finder_.add(nsec3param), InMemoryZoneFinder::AddError); } +TEST_F(InMemoryZoneFinderTest, nonOriginNSEC3PARAM) { + // This is a normal NSEC3PARAM at the zone origin + EXPECT_EQ(result::SUCCESS, + zone_finder_.add(textToRRset("example.org. 300 IN NSEC3PARAM " + "1 0 12 aabbccdd"))); + // Add another (with different param) at a non origin node. This is + // awkward, but the implementation accepts it as an ordinary RR. + EXPECT_EQ(result::SUCCESS, + zone_finder_.add(textToRRset("a.example.org. 300 IN NSEC3PARAM " + "1 1 1 aabbccdd"))); +} + // TODO // - existence of NSEC3PARAM -// - add NSEC3PARAM at non origin (should be ignored) }