return true;
}
-void LMDBBackend::writeNSEC3RecordPair(domainid_t domain_id, const DNSName& qname, const DNSName& ordername)
+void LMDBBackend::writeNSEC3RecordPair(const std::shared_ptr<RecordsRWTransaction>& txn, domainid_t domain_id, const DNSName& qname, const DNSName& ordername)
{
compoundOrdername co; // NOLINT(readability-identifier-length)
LMDBResourceRecord lrr;
lrr.ttl = 0;
lrr.content = qname.toDNSStringLC();
string ser = serializeToBuffer(lrr);
- d_rwtxn->txn->put(d_rwtxn->db->dbi, co(domain_id, ordername, QType::NSEC3), ser);
+ txn->txn->put(d_rwtxn->db->dbi, co(domain_id, ordername, QType::NSEC3), ser);
// Write qname -> ordername forward chain record with ttl set to 1
lrr.ttl = 1;
lrr.content = ordername.toDNSString();
ser = serializeToBuffer(lrr);
- d_rwtxn->txn->put(d_rwtxn->db->dbi, co(domain_id, qname, QType::NSEC3), ser);
+ txn->txn->put(d_rwtxn->db->dbi, co(domain_id, qname, QType::NSEC3), ser);
}
// d_rwtxn must be set here
MDBOutVal val;
// Only add the NSEC3 chain records if there aren't any.
if (d_rwtxn->txn->get(d_rwtxn->db->dbi, co(lrr.domain_id, lrr.qname, QType::NSEC3), val)) {
- writeNSEC3RecordPair(lrr.domain_id, lrr.qname, ordername);
+ writeNSEC3RecordPair(d_rwtxn, lrr.domain_id, lrr.qname, ordername);
}
}
return true;
if (!narrow && lrr.auth) {
ordername = DNSName(toBase32Hex(hashQNameWithSalt(ns3prc, nt.first)));
- writeNSEC3RecordPair(domain_id, lrr.qname, ordername);
+ writeNSEC3RecordPair(d_rwtxn, domain_id, lrr.qname, ordername);
}
}
return true;
}
if (hasOrderName && del) {
- writeNSEC3RecordPair(domain_id, rel, ordername);
+ writeNSEC3RecordPair(txn, domain_id, rel, ordername);
}
if (needCommit)
static bool getAfterForwardFromStart(MDBROCursor& cursor, MDBOutVal& key, MDBOutVal& val, domainid_t id, DNSName& after);
static bool isNSEC3BackRecord(LMDBResourceRecord& lrr, const MDBOutVal& key, const MDBOutVal& val);
static bool isValidAuthRecord(const MDBOutVal& key, const MDBOutVal& val);
- void writeNSEC3RecordPair(domainid_t domain_id, const DNSName& qname, const DNSName& ordername);
+ void writeNSEC3RecordPair(const std::shared_ptr<RecordsRWTransaction>& txn, domainid_t domain_id, const DNSName& qname, const DNSName& ordername);
bool get_list(DNSZoneRecord& rr);
bool get_lookup(DNSZoneRecord& rr);