Commit 37c1b4a1 authored by JINMEI Tatuya's avatar JINMEI Tatuya
Browse files

[1574b] check multiple NSEC3PARAMs (not supported in this implementation)

parent 52456f2f
......@@ -230,6 +230,13 @@ struct InMemoryZoneFinder::InMemoryZoneFinderImpl {
isc_throw(AddError, "multiple RRs of singleton type for "
<< rrset->getName());
}
// NSEC3PARAM is not a "singleton" per protocol, but this
// implementation doesn't request it be so at the moment.
if (rrset->getType() == RRType::NSEC3PARAM() &&
rrset->getRdataCount() > 1) {
isc_throw(AddError, "Multiple NSEC3PARAM RDATA is given for "
<< rrset->getName() << " which isn't supported");
}
NameComparisonResult compare(origin_.compare(rrset->getName()));
if (compare.getRelation() != NameComparisonResult::SUPERDOMAIN &&
......
......@@ -1478,6 +1478,15 @@ TEST_F(InMemoryZoneFinderTest, badRRsigForNSEC3) {
InMemoryZoneFinder::AddError);
}
TEST_F(InMemoryZoneFinderTest, multiNSEC3PARAM) {
// In this current implementation multiple NSEC3PARAM isn't supported.
RRsetPtr nsec3param(new RRset(Name("example.org"), RRClass::IN(),
RRType::NSEC3PARAM(), RRTTL(300)));
nsec3param->addRdata(generic::NSEC3PARAM("1 0 12 aabbccdd"));
nsec3param->addRdata(generic::NSEC3PARAM("1 1 1 ddccbbaa"));
EXPECT_THROW(zone_finder_.add(nsec3param), InMemoryZoneFinder::AddError);
}
// TODO
// - parameter consistency
// - existence of NSEC3PARAM
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment