From: Christian Hofstaedtler Date: Fri, 7 Oct 2016 11:38:15 +0000 (+0200) Subject: Drop UeberBackend::get(DNSResourceRecord&) X-Git-Tag: rec-4.1.0-alpha1~253^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=abcd36a1a5a69d2fa6c49b5eb2f2a7782f834b3e;p=thirdparty%2Fpdns.git Drop UeberBackend::get(DNSResourceRecord&) --- diff --git a/pdns/backends/gsql/gsqlbackend.cc b/pdns/backends/gsql/gsqlbackend.cc index da28653d06..996cf5c019 100644 --- a/pdns/backends/gsql/gsqlbackend.cc +++ b/pdns/backends/gsql/gsqlbackend.cc @@ -399,8 +399,8 @@ void GSQLBackend::getUpdatedMasters(vector *updatedDomains) } vector allMasters; - int numanswers=d_result.size(); - for(int n=0;n,time_t>d_holes; pthread_mutex_t d_holelock; - void launchRetrievalThreads(); void suck(const DNSName &domain, const string &remote); void ixfrSuck(const DNSName &domain, const TSIGTriplet& tt, const ComboAddress& laddr, const ComboAddress& remote, boost::scoped_ptr& pdl, ZoneStatus& zs, vector* axfr); @@ -213,7 +211,6 @@ private: set d_alsoNotify; NotificationQueue d_nq; NetmaskGroup d_onlyNotify; - bool d_havepriosuckrequest; bool d_masterschanged, d_slaveschanged; bool d_preventSelfNotification; @@ -253,22 +250,6 @@ public: return addresses; } - vector lookup(const DNSName &name, UeberBackend *b) - { - vector addresses; - - this->resolve_name(&addresses, name); - - if(b) { - b->lookup(QType(QType::ANY),name); - DNSResourceRecord rr; - while(b->get(rr)) - if(rr.qtype.getCode() == QType::A || rr.qtype.getCode()==QType::AAAA) - addresses.push_back(rr.content); // SOL if you have a CNAME for an NS - } - return addresses; - } - private: void resolve_name(vector* addresses, const DNSName& name) { diff --git a/pdns/mastercommunicator.cc b/pdns/mastercommunicator.cc index 76a2bb1026..930304149d 100644 --- a/pdns/mastercommunicator.cc +++ b/pdns/mastercommunicator.cc @@ -42,27 +42,27 @@ #include "namespaces.hh" -void CommunicatorClass::queueNotifyDomain(const DNSName &domain, UeberBackend *B) +void CommunicatorClass::queueNotifyDomain(const DomainInfo& di, UeberBackend* B) { bool hasQueuedItem=false; set nsset, ips; DNSResourceRecord rr; FindNS fns; - B->lookup(QType(QType::NS),domain); - while(B->get(rr)) + di.backend->lookup(QType(QType::NS), di.zone); + while(di.backend->get(rr)) nsset.insert(rr.content); for(set::const_iterator j=nsset.begin();j!=nsset.end();++j) { - vector nsips=fns.lookup(DNSName(*j), B); + vector nsips=fns.lookup(DNSName(*j), di.backend); if(nsips.empty()) - L<::const_iterator k=nsips.begin();k!=nsips.end();++k) { const ComboAddress caIp(*k, 53); if(!d_preventSelfNotification || !AddressIsUs(caIp)) { if(!d_onlyNotify.match(&caIp)) - L<::const_iterator j=ips.begin();j!=ips.end();++j) { - L< alsoNotify(d_alsoNotify); - B->alsoNotifies(domain, &alsoNotify); + B->alsoNotifies(di.zone, &alsoNotify); for(set::const_iterator j=alsoNotify.begin();j!=alsoNotify.end();++j) { try { const ComboAddress caIp(*j, 53); - L<setNotified(di.id, di.serial); @@ -145,11 +145,11 @@ void CommunicatorClass::masterUpdateCheck(PacketHandler *P) // figure out A records of everybody needing notification // do this via the FindNS class, d_fns - for(vector::const_iterator i=cmdomains.begin();i!=cmdomains.end();++i) { + for(auto& di : cmdomains) { extern PacketCache PC; - PC.purgeExact(i->zone); - queueNotifyDomain(i->zone,P->getBackend()); - i->backend->setNotified(i->id,i->serial); + PC.purgeExact(di.zone); + queueNotifyDomain(di, B); + di.backend->setNotified(di.id, di.serial); } } diff --git a/pdns/slavecommunicator.cc b/pdns/slavecommunicator.cc index 56724320b8..9e481abb35 100644 --- a/pdns/slavecommunicator.cc +++ b/pdns/slavecommunicator.cc @@ -134,11 +134,13 @@ void CommunicatorClass::ixfrSuck(const DNSName &domain, const TSIGTriplet& tt, c di.backend->startTransaction(domain, -1); for(const auto g : grouped) { - DNSResourceRecord rr; vector rrset; - B.lookup(QType(g.first.second), g.first.first, 0, di.id); - while(B.get(rr)) { - rrset.push_back(DNSRecord{rr}); + { + DNSZoneRecord zrr; + B.lookup(QType(g.first.second), g.first.first, 0, di.id); + while(B.get(zrr)) { + rrset.push_back(zrr.dr); + } } // O(N^2)! rrset.erase(remove_if(rrset.begin(), rrset.end(), @@ -851,13 +853,13 @@ void CommunicatorClass::slaveRefresh(PacketHandler *P) } else { B->lookup(QType(QType::RRSIG), di.zone); // can't use DK before we are done with this lookup! - DNSResourceRecord rr; + DNSZoneRecord zr; uint32_t maxExpire=0, maxInception=0; - while(B->get(rr)) { - RRSIGRecordContent rrc(rr.content); - if(rrc.d_type == QType::SOA) { - maxInception = std::max(maxInception, rrc.d_siginception); - maxExpire = std::max(maxExpire, rrc.d_sigexpire); + while(B->get(zr)) { + auto rrsig = getRR(zr.dr); + if(rrsig->d_type == QType::SOA) { + maxInception = std::max(maxInception, rrsig->d_siginception); + maxExpire = std::max(maxExpire, rrsig->d_sigexpire); } } if(maxInception == ssr.d_freshness[di.id].theirInception && maxExpire == ssr.d_freshness[di.id].theirExpire) { diff --git a/pdns/ueberbackend.cc b/pdns/ueberbackend.cc index edb1e42ea1..40c5c06441 100644 --- a/pdns/ueberbackend.cc +++ b/pdns/ueberbackend.cc @@ -579,19 +579,6 @@ void UeberBackend::getAllDomains(vector *domains, bool include_disab } } -bool UeberBackend::get(DNSResourceRecord &rr) -{ - // cout<<"UeberBackend::get(DNSResourceRecord&) called, translating to a DNSZoneRecord query"<get(dzr)) - return false; - - rr=DNSResourceRecord(dzr.dr); - rr.auth = dzr.auth; - rr.domain_id = dzr.domain_id; - return true; -} - bool UeberBackend::get(DNSZoneRecord &rr) { // cout<<"UeberBackend::get(DNSZoneRecord) called"< *domains, bool include_disabled=false);