void LMDBBackend::deleteDomainRecords(RecordsRWTransaction& txn, const std::string& match, QType qtype)
{
- auto cursor = txn.txn->getCursor(txn.db->dbi);
+ auto cursor = txn.txn->getCursor(txn.db->rdbi);
MDBOutVal key{};
MDBOutVal val{};
MDBOutVal val{};
auto key = co(domain_id, qname, QType::NSEC3);
- if (txn->txn->get(txn->db->dbi, key, val) == 0) {
+ if (txn->txn->get(txn->db->rdbi, key, val) == 0) {
LMDBResourceRecord lrr;
if (deserializeFromBuffer(val.get<string_view>(), lrr)) {
DNSName ordername(lrr.content.c_str(), lrr.content.size(), 0, false);
- txn->txn->del(txn->db->dbi, co(domain_id, ordername, QType::NSEC3));
+ txn->txn->del(txn->db->rdbi, co(domain_id, ordername, QType::NSEC3));
}
- txn->txn->del(txn->db->dbi, key);
+ txn->txn->del(txn->db->rdbi, key);
}
}
// same ordername and we have nothing to do, or the ordername has changed and
// we need to remove the about-to-become-dangling back chain record.
MDBOutVal val{};
- if (txn->txn->get(txn->db->dbi, co(domain_id, qname, QType::NSEC3), val) == 0) {
+ if (txn->txn->get(txn->db->rdbi, co(domain_id, qname, QType::NSEC3), val) == 0) {
LMDBResourceRecord lrr;
if (deserializeFromBuffer(val.get<string_view>(), lrr)) {
DNSName prevordername(lrr.content.c_str(), lrr.content.size(), 0, false);
if (prevordername == ordername) {
return; // nothing to do! (assuming the other record also exists)
}
- txn->txn->del(txn->db->dbi, co(domain_id, prevordername, QType::NSEC3));
+ txn->txn->del(txn->db->rdbi, co(domain_id, prevordername, QType::NSEC3));
}
}
lrr.content = qname.toDNSStringLC();
std::string ser = MDBRWTransactionImpl::stringWithEmptyHeader();
serializeToBuffer(ser, lrr);
- txn->txn->put_header_in_place(txn->db->dbi, co(domain_id, ordername, QType::NSEC3), ser);
+ txn->txn->put_header_in_place(txn->db->rdbi, 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 = MDBRWTransactionImpl::stringWithEmptyHeader();
serializeToBuffer(ser, lrr);
- txn->txn->put_header_in_place(txn->db->dbi, co(domain_id, qname, QType::NSEC3), ser);
+ txn->txn->put_header_in_place(txn->db->rdbi, co(domain_id, qname, QType::NSEC3), ser);
}
// Check if the only records found for this particular name are a single NSEC3
string rrs = MDBRWTransactionImpl::stringWithEmptyHeader();
MDBOutVal _rrs;
- if (!d_rwtxn->txn->get(d_rwtxn->db->dbi, matchName, _rrs)) {
+ if (!d_rwtxn->txn->get(d_rwtxn->db->rdbi, matchName, _rrs)) {
rrs.append(_rrs.get<string>());
}
serializeToBuffer(rrs, lrr);
- d_rwtxn->txn->put_header_in_place(d_rwtxn->db->dbi, matchName, rrs);
+ d_rwtxn->txn->put_header_in_place(d_rwtxn->db->rdbi, matchName, rrs);
if (lrr.hasOrderName) {
writeNSEC3RecordPair(d_rwtxn, lrr.domain_id, lrr.qname, ordername);
std::string ser = MDBRWTransactionImpl::stringWithEmptyHeader();
serializeToBuffer(ser, lrr);
- d_rwtxn->txn->put_header_in_place(d_rwtxn->db->dbi, co(domain_id, lrr.qname, QType::ENT), ser);
+ d_rwtxn->txn->put_header_in_place(d_rwtxn->db->rdbi, co(domain_id, lrr.qname, QType::ENT), ser);
}
return true;
}
lrr.hasOrderName = lrr.auth && !narrow;
std::string ser = MDBRWTransactionImpl::stringWithEmptyHeader();
serializeToBuffer(ser, lrr);
- d_rwtxn->txn->put_header_in_place(d_rwtxn->db->dbi, co(domain_id, lrr.qname, QType::ENT), ser);
+ d_rwtxn->txn->put_header_in_place(d_rwtxn->db->rdbi, co(domain_id, lrr.qname, QType::ENT), ser);
if (lrr.hasOrderName) {
ordername = DNSName(toBase32Hex(hashQNameWithSalt(ns3prc, nt.first)));
}
}
else {
- auto cursor = txn->txn->getCursor(txn->db->dbi);
+ auto cursor = txn->txn->getCursor(txn->db->rdbi);
MDBOutVal key{};
MDBOutVal val{};
bool hadOrderName{false};
}
std::string ser = MDBRWTransactionImpl::stringWithEmptyHeader();
serializeToBuffer(ser, adjustedRRSet);
- txn->txn->put_header_in_place(txn->db->dbi, match, ser);
+ txn->txn->put_header_in_place(txn->db->rdbi, match, ser);
}
if (needCommit)
if (!shard.env) {
shard.env = getMDBEnv((getArg("filename") + "-" + std::to_string(id % s_shards)).c_str(),
MDB_NOSUBDIR | MDB_NORDAHEAD | d_asyncFlag, 0600, d_mapsize_shards);
- shard.dbi = shard.env->openDB("records_v5", MDB_CREATE);
+ shard.rdbi = shard.env->openDB("records_v5", MDB_CREATE);
}
auto ret = std::make_shared<RecordsRWTransaction>(shard.env->getRWTransaction());
ret->db = std::make_shared<RecordsDB>(shard);
}
shard.env = getMDBEnv((getArg("filename") + "-" + std::to_string(id % s_shards)).c_str(),
MDB_NOSUBDIR | MDB_NORDAHEAD | d_asyncFlag, 0600, d_mapsize_shards);
- shard.dbi = shard.env->openDB("records_v5", MDB_CREATE);
+ shard.rdbi = shard.env->openDB("records_v5", MDB_CREATE);
}
if (rwtxn) {
{
d_rotxn = getRecordsROTransaction(domain_id, d_rwtxn);
d_txnorder = true;
- d_lookupstate.cursor = std::make_shared<MDBROCursor>(d_rotxn->txn->getCursor(d_rotxn->db->dbi));
+ d_lookupstate.cursor = std::make_shared<MDBROCursor>(d_rotxn->txn->getCursor(d_rotxn->db->rdbi));
// Make sure we start with fresh data
d_lookupstate.rrset.clear();
auto txn = getRecordsROTransaction(di.id);
compoundOrdername co;
MDBOutVal val;
- if (!txn->txn->get(txn->db->dbi, co(di.id, g_rootdnsname, QType::SOA), val)) {
+ if (!txn->txn->get(txn->db->rdbi, co(di.id, g_rootdnsname, QType::SOA), val)) {
LMDBResourceRecord lrr;
if (deserializeFromBuffer(val.get<string_view>(), lrr)) {
if (lrr.content.size() >= sizeof(soatimes)) {
auto txn2 = getRecordsROTransaction(di.id);
compoundOrdername co;
MDBOutVal val;
- if (!txn2->txn->get(txn2->db->dbi, co(di.id, g_rootdnsname, QType::SOA), val)) {
+ if (!txn2->txn->get(txn2->db->rdbi, co(di.id, g_rootdnsname, QType::SOA), val)) {
LMDBResourceRecord lrr;
if (deserializeFromBuffer(val.get<string_view>(), lrr)) {
if (lrr.content.size() >= sizeof(soatimes)) {
compoundOrdername co;
auto txn = getRecordsROTransaction(id);
- auto cursor = txn->txn->getCursor(txn->db->dbi);
+ auto cursor = txn->txn->getCursor(txn->db->rdbi);
MDBOutVal key, val;
string matchkey = co(id, qname, QType::NSEC3);
compoundOrdername co;
auto txn = getRecordsROTransaction(domainId);
- auto cursor = txn->txn->getCursor(txn->db->dbi);
+ auto cursor = txn->txn->getCursor(txn->db->rdbi);
MDBOutVal key, val;
DNSName qname2 = qname.makeRelative(zonename);
compoundOrdername co;
string matchkey = co(domain_id, rel);
- auto cursor = txn->txn->getCursor(txn->db->dbi);
+ auto cursor = txn->txn->getCursor(txn->db->rdbi);
MDBOutVal key, val;
if (cursor.prefix(matchkey, key, val) != 0) {
// cout << "Could not find anything"<<endl;
// deleteDomainRecords() would do, as we also need to remove
// NSEC3 records for these ENT, if any.
{
- auto cursor = txn->txn->getCursor(txn->db->dbi);
+ auto cursor = txn->txn->getCursor(txn->db->rdbi);
MDBOutVal key{};
MDBOutVal val{};
std::vector<DNSName> names;
name.makeUsRelative(info.zone);
std::string match = order(domain_id, name, QType::ENT);
MDBOutVal val{};
- if (txn->txn->get(txn->db->dbi, match, val) == 0) {
+ if (txn->txn->get(txn->db->rdbi, match, val) == 0) {
bool hadOrderName = peekAtHasOrderName(val.get<string_view>());
- txn->txn->del(txn->db->dbi, match);
+ txn->txn->del(txn->db->rdbi, match);
if (hadOrderName) {
deleteNSEC3RecordPair(txn, domain_id, name);
}
lrr.auth = true;
std::string ser = MDBRWTransactionImpl::stringWithEmptyHeader();
serializeToBuffer(ser, lrr);
- txn->txn->put_header_in_place(txn->db->dbi, order(domain_id, lrr.qname, QType::ENT), ser);
+ txn->txn->put_header_in_place(txn->db->rdbi, order(domain_id, lrr.qname, QType::ENT), ser);
// cout <<" +"<<name<<endl;
}
if (needCommit) {
// without disturbing the current get() cursor.
compoundOrdername order;
MDBOutVal val{};
- if (d_rotxn->txn->get(d_rotxn->db->dbi, order(info.id, basename, QType::NSEC3), val) == 0) {
+ if (d_rotxn->txn->get(d_rotxn->db->rdbi, order(info.id, basename, QType::NSEC3), val) == 0) {
LMDBResourceRecord nsec3rr;
if (deserializeFromBuffer(val.get<string_view>(), nsec3rr)) {
DNSName ordername(nsec3rr.content.c_str(), nsec3rr.content.size(), 0, false);