* If such condition is found, it throws AddError.
*/
void contextCheck(const Name& zone_name, const AbstractRRset& rrset,
- const RdataSet* set) const {
+ const RdataSet* set) const
+ {
// Ensure CNAME and other type of RR don't coexist for the same
// owner name except with NSEC, which is the only RR that can coexist
// with CNAME (and also RRSIG, which is handled separately)
// Even though the protocol specifically doesn't completely ban such
// usage, we refuse to load a zone containing such RR in order to
// keep the lookup logic simpler and more predictable.
- // See RFC4592 and (for DNAME) draft-ietf-dnsext-rfc2672bis-dname
- // for more technical background. Note also that BIND 9 refuses
- // NS at a wildcard, so in that sense we simply provide compatible
- // behavior.
+ // See RFC4592 and (for DNAME) RFC6672 for more technical background.
+ // Note also that BIND 9 refuses NS at a wildcard, so in that sense
+ // we simply provide compatible behavior.
if (rrset->getName().isWildcard()) {
if (rrset->getType() == RRType::NS()) {
LOG_ERROR(logger, DATASRC_MEMORY_MEM_WILDCARD_NS).
void addNSEC3(const ConstRRsetPtr rrset,
const ConstRRsetPtr rrsig,
- ZoneData& zone_data) {
+ ZoneData& zone_data)
+ {
// We know rrset has exactly one RDATA
const generic::NSEC3& nsec3_rdata =
dynamic_cast<const generic::NSEC3&>(
}
}
- /*
- * Implementation of longer methods. We put them here, because the
- * access is without the impl_-> and it will get inlined anyway.
- */
-
// Implementation of InMemoryClient::add()
void add(const ConstRRsetPtr& rrset, const ConstRRsetPtr& sig_rrset,
const Name& zone_name, ZoneData& zone_data)
// Add wildcards possibly contained in the owner name to the domain
// tree.
// Note: this can throw an exception, breaking strong exception
- // guarantee. (see also the note for contextCheck() below).
+ // guarantee. (see also the note for the call to contextCheck()
+ // above).
addWildcards(zone_name, zone_data, rrset->getName());
addRdataSet(zone_name, zone_data, rrset, sig_rrset);
const RdataSet* set = origin_node->getData();
// If the zone is NSEC3-signed, check if it has NSEC3PARAM
if (holder.get()->isNSEC3Signed()) {
- // Note: origin_data_ is set on creation of ZoneData, and the load
- // process only adds new nodes (and their data), so this assertion
- // should hold.
if (RdataSet::find(set, RRType::NSEC3PARAM()) == NULL) {
LOG_WARN(logger, DATASRC_MEMORY_MEM_NO_NSEC3PARAM).
arg(zone_name).arg(rrclass_);