]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
avoid exiting pdns_server on parse error during outgoing NOTIFY processing 7965/head
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 20 Jun 2019 08:43:11 +0000 (10:43 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 20 Jun 2019 08:43:11 +0000 (10:43 +0200)
pdns/mastercommunicator.cc

index 5bd833604b610c1b02be9cf3a0e65284bb8dad74..c90a87255e87901963af5d11bcd0e978533bb9ea 100644 (file)
@@ -54,6 +54,7 @@ void CommunicatorClass::queueNotifyDomain(const DNSName &domain, UeberBackend *B
     while(B->get(rr))
       nsset.insert(rr.content);
 
+    try {
     for(set<string>::const_iterator j=nsset.begin();j!=nsset.end();++j) {
       vector<string> nsips=fns.lookup(DNSName(*j), B);
       if(nsips.empty())
@@ -68,7 +69,17 @@ void CommunicatorClass::queueNotifyDomain(const DNSName &domain, UeberBackend *B
               ips.insert(caIp.toStringWithPort());
           }
         }
+      }
+    }
+    catch (PDNSException &ae) {
+      L << Logger::Error << "Error looking up name servers for " << domain << ", cannot notify: " << ae.reason << endl;
+      return;
     }
+    catch (std::exception &e) {
+      L << Logger::Error << "Error looking up name servers for " << domain << ", cannot notify: " << e.what() << endl;
+      return;
+    }
+
 
     for(set<string>::const_iterator j=ips.begin();j!=ips.end();++j) {
       L<<Logger::Warning<<"Queued notification of domain '"<<domain<<"' to "<<*j<<endl;