]> granicus.if.org Git - pdns/commitdiff
cleanup, plus move more code to safeGetBBDomainInfo
authorbert hubert <bert.hubert@netherlabs.nl>
Thu, 13 Mar 2014 10:35:19 +0000 (11:35 +0100)
committerbert hubert <bert.hubert@netherlabs.nl>
Thu, 13 Mar 2014 10:35:19 +0000 (11:35 +0100)
modules/bindbackend/bindbackend2.cc
modules/bindbackend/bindbackend2.hh

index 6c983e6f86f7aedfdb7e3921a00e52deea73f4bb..376a3ce4aab6c74ed3ed9a065277776a44e314f3 100644 (file)
@@ -371,29 +371,27 @@ void Bind2Backend::getUnfreshSlaveInfos(vector<DomainInfo> *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<string> *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<recordstorage_t> 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: '"<<bdr.qname<<"', ";
   bdr.qname=labelReverse(bdr.qname);
-  //  cerr<<"After: '"<<bdr.qname<<"'"<<endl;
-
   bdr.qtype=qtype.getCode();
   bdr.content=content; 
   bdr.nsec3hash = hashed;
-  // cerr<<"qname '"<<bdr.qname<<"' nsec3hash '"<<hashed<<"' qtype '"<<qtype.getName()<<"'"<<endl;
   
   if (auth) // Set auth on empty non-terminals
     bdr.auth=*auth;
@@ -713,7 +705,6 @@ void Bind2Backend::doEmptyNonTerminals(BB2DomainInfo& bbd, bool nsec3zone, NSEC3
   }
 }
 
-// XXX not idempotent right now, won't ever delete a zone!
 void Bind2Backend::loadConfig(string* status)
 {
   static int domain_id=1;
index 6ceb75e66c73bb4ad6e99aec06b2c30b4cdb0caf..aa6511e97fc49c551250cf771a61eadc76f6997d 100644 (file)
@@ -218,7 +218,6 @@ public:
   virtual bool doesDNSSEC();
   // end of DNSSEC 
 
-
   typedef multi_index_container < BB2DomainInfo , 
                                  indexed_by < ordered_unique<member<BB2DomainInfo, unsigned int, &BB2DomainInfo::d_id> >,
                                               ordered_unique<tag<NameTag>, member<BB2DomainInfo, std::string, &BB2DomainInfo::d_name>, CIStringCompare >