]> granicus.if.org Git - pdns/commitdiff
Revert "Fix fatal exception on unparseable slave addresses."
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 20 Jun 2019 11:03:11 +0000 (13:03 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 20 Jun 2019 11:03:11 +0000 (13:03 +0200)
This reverts commit 2c75693e72abe792e0bf9b55c5f8f443fa220160.

pdns/communicator.hh
pdns/mastercommunicator.cc
pdns/tcpreceiver.cc

index f646b222650508dabf1110584908b30210c16fa2..a7f95b81da31fe154794e02072987abaa6323e15 100644 (file)
@@ -244,32 +244,18 @@ private:
 class FindNS
 {
 public:
-  vector<string> lookup(const DNSName &name, UeberBackend *b, const DNSName& zone)
+  vector<string> lookup(const DNSName &name, UeberBackend *b)
   {
     vector<string> addresses;
 
     this->resolve_name(&addresses, name);
     
     if(b) {
-      b->lookup(QType(QType::ANY),name);
-      while (true) {
-        try {
-          DNSZoneRecord rr;
-          if (!b->get(rr))
-            break;
-          if (rr.dr.d_type == QType::A || rr.dr.d_type == QType::AAAA)
+        b->lookup(QType(QType::ANY),name);
+        DNSZoneRecord rr;
+        while(b->get(rr))
+          if(rr.dr.d_type == QType::A || rr.dr.d_type==QType::AAAA)
             addresses.push_back(rr.dr.d_content->getZoneRepresentation());   // SOL if you have a CNAME for an NS
-        }
-        // After an exception, b can be inconsistent so break
-        catch (PDNSException &ae) {
-          L << Logger::Error << "Could not lookup address for nameserver " << name << " in zone " << zone << ", cannot notify: " << ae.reason << endl;
-          break;
-        }
-        catch (std::exception &e) {
-          L << Logger::Error << "Could not lookup address for nameserver " << name << " in zone " << zone << ", cannot notify: " << e.what() << endl;
-          break;
-        }
-      }
     }
     return addresses;
   }
index 8be9ebad9ef1d9c1e85284e1f438458746fb1387..456957a80d789aff457de76fe71bccccef6b1f9d 100644 (file)
@@ -56,7 +56,7 @@ void CommunicatorClass::queueNotifyDomain(const DomainInfo& di, UeberBackend* B)
       nsset.insert(getRR<NSRecordContent>(rr.dr)->getNS().toString());
 
     for(set<string>::const_iterator j=nsset.begin();j!=nsset.end();++j) {
-      vector<string> nsips=fns.lookup(DNSName(*j), B, di.zone);
+      vector<string> nsips=fns.lookup(DNSName(*j), B);
       if(nsips.empty())
         L<<Logger::Warning<<"Unable to queue notification of domain '"<<di.zone<<"': nameservers do not resolve!"<<endl;
       else
index 584dbae5b710491413c93fedab8c464ec02cc906..d2491f79f5557ced1001bf9cdb6378cfdb1cde97 100644 (file)
@@ -491,7 +491,7 @@ bool TCPNameserver::canDoAXFR(shared_ptr<DNSPacket> q)
         while(B->get(rr)) 
           nsset.insert(DNSName(rr.content));
         for(const auto & j: nsset) {
-          vector<string> nsips=fns.lookup(j, s_P->getBackend(),q->qdomain);
+          vector<string> nsips=fns.lookup(j, s_P->getBackend());
           for(vector<string>::const_iterator k=nsips.begin();k!=nsips.end();++k) {
             // cerr<<"got "<<*k<<" from AUTO-NS"<<endl;
             if(*k == q->getRemote().toString())