From: Peter van Dijk Date: Thu, 20 Jun 2019 08:43:11 +0000 (+0200) Subject: avoid exiting pdns_server on parse error during outgoing NOTIFY processing X-Git-Tag: auth-4.0.8^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b5eb7822b0c971d3b4e244dc093acb30cededf95;p=thirdparty%2Fpdns.git avoid exiting pdns_server on parse error during outgoing NOTIFY processing --- diff --git a/pdns/mastercommunicator.cc b/pdns/mastercommunicator.cc index 5bd833604b..c90a87255e 100644 --- a/pdns/mastercommunicator.cc +++ b/pdns/mastercommunicator.cc @@ -54,6 +54,7 @@ void CommunicatorClass::queueNotifyDomain(const DNSName &domain, UeberBackend *B while(B->get(rr)) nsset.insert(rr.content); + try { for(set::const_iterator j=nsset.begin();j!=nsset.end();++j) { vector 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::const_iterator j=ips.begin();j!=ips.end();++j) { L<