From: bert hubert Date: Thu, 13 Mar 2014 10:35:19 +0000 (+0100) Subject: cleanup, plus move more code to safeGetBBDomainInfo X-Git-Tag: rec-3.6.0-rc1~138^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79ff9306f5c1b05b0bdeded381244876489ce667;p=pdns cleanup, plus move more code to safeGetBBDomainInfo --- diff --git a/modules/bindbackend/bindbackend2.cc b/modules/bindbackend/bindbackend2.cc index 6c983e6f8..376a3ce4a 100644 --- a/modules/bindbackend/bindbackend2.cc +++ b/modules/bindbackend/bindbackend2.cc @@ -371,29 +371,27 @@ void Bind2Backend::getUnfreshSlaveInfos(vector *unfreshDomains) bool Bind2Backend::getDomainInfo(const string &domain, DomainInfo &di) { - ReadLock rl(&s_state_lock); - for(state_t::const_iterator i = s_state.begin(); i != s_state.end() ; ++i) { - if(pdns_iequals(i->d_name,domain)) { - di.id=i->d_id; - di.zone=domain; - di.masters=i->d_masters; - di.last_check=i->d_lastcheck; - di.backend=this; - di.kind=i->d_masters.empty() ? DomainInfo::Master : DomainInfo::Slave; - di.serial=0; - try { - SOAData sd; - sd.serial=0; - - getSOA(i->d_name,sd); // we might not *have* a SOA yet - di.serial=sd.serial; - } - catch(...){} + BB2DomainInfo bbd; + if(!safeGetBBDomainInfo(domain, &bbd)) + return false; - return true; - } + di.id=bbd.d_id; + di.zone=domain; + di.masters=bbd.d_masters; + di.last_check=bbd.d_lastcheck; + di.backend=this; + di.kind=bbd.d_masters.empty() ? DomainInfo::Master : DomainInfo::Slave; + di.serial=0; + try { + SOAData sd; + sd.serial=0; + + getSOA(bbd.d_name,sd); // we might not *have* a SOA yet + di.serial=sd.serial; } - return false; + catch(...){} + + return true; } void Bind2Backend::alsoNotifies(const string &domain, set *ips) @@ -436,10 +434,8 @@ void Bind2Backend::parseZoneFile(BB2DomainInfo *bbd) } insertRecord(*bbd, rr.qname, rr.qtype, rr.content, rr.ttl, rr.priority, hashed); } - fixupAuth(bbd->d_records.getWRITABLE()); doEmptyNonTerminals(*bbd, nsec3zone, ns3pr); - bbd->setCtime(); bbd->d_loaded=true; bbd->d_checknow=false; @@ -453,7 +449,7 @@ void Bind2Backend::insertRecord(BB2DomainInfo& bb2, const string &qnameu, const Bind2DNSRecord bdr; shared_ptr records = bb2.d_records.getWRITABLE(); bdr.qname=toLowerCanonic(qnameu); - //cerr << "qname = " << bdr.qname << ", d_name = " << bb2.d_name << endl; + if(bb2.d_name.empty()) ; else if(dottedEndsOn(bdr.qname, bb2.d_name)) @@ -473,14 +469,10 @@ void Bind2Backend::insertRecord(BB2DomainInfo& bb2, const string &qnameu, const if(!records->empty() && bdr.qname==boost::prior(records->end())->qname) bdr.qname=boost::prior(records->end())->qname; - // cerr<<"Before reverse: '"< >, ordered_unique, member, CIStringCompare >