From: Peter van Dijk Date: Wed, 26 Apr 2023 12:24:01 +0000 (+0200) Subject: refactor getUnfreshSlaveInfos X-Git-Tag: auth-4.8.0-beta1~1^2~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f35fc244ccc46a5569712e5d64658fbfa8f2feee;p=thirdparty%2Fpdns.git refactor getUnfreshSlaveInfos --- diff --git a/modules/lmdbbackend/lmdbbackend.cc b/modules/lmdbbackend/lmdbbackend.cc index 4006e813f5..cdc2baa421 100644 --- a/modules/lmdbbackend/lmdbbackend.cc +++ b/modules/lmdbbackend/lmdbbackend.cc @@ -1685,20 +1685,19 @@ void LMDBBackend::getUnfreshSlaveInfos(vector* domains) LMDBResourceRecord lrr; soatimes st; - auto txn = d_tdomains->getROTransaction(); - for (auto iter = txn.begin(); iter != txn.end(); ++iter) { - if (!iter->isSecondaryType()) { - continue; + getAllDomainsFiltered(domains, [this, &lrr, &st, &now, &serial](DomainInfo& di) { + if (!di.isSecondaryType()) { + return false; } - auto txn2 = getRecordsROTransaction(iter.getID()); + auto txn2 = getRecordsROTransaction(di.id); compoundOrdername co; MDBOutVal val; - if (!txn2->txn->get(txn2->db->dbi, co(iter.getID(), g_rootdnsname, QType::SOA), val)) { + if (!txn2->txn->get(txn2->db->dbi, co(di.id, g_rootdnsname, QType::SOA), val)) { serFromString(val.get(), lrr); memcpy(&st, &lrr.content[lrr.content.size() - sizeof(soatimes)], sizeof(soatimes)); - if ((time_t)(iter->last_check + ntohl(st.refresh)) > now) { // still fresh - continue; + if ((time_t)(di.last_check + ntohl(st.refresh)) > now) { // still fresh + return false; } serial = ntohl(st.serial); } @@ -1706,13 +1705,8 @@ void LMDBBackend::getUnfreshSlaveInfos(vector* domains) serial = 0; } - DomainInfo di(*iter); - di.id = iter.getID(); - di.serial = serial; - di.backend = this; - - domains->emplace_back(di); - } + return true; + }); } void LMDBBackend::setStale(uint32_t domain_id)