]> granicus.if.org Git - pdns/commitdiff
Improve error when notification comes in for non-slave zone
authorbert hubert <bert.hubert@powerdns.com>
Mon, 17 Jun 2019 12:57:58 +0000 (14:57 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 1 Jul 2019 08:25:09 +0000 (10:25 +0200)
(cherry picked from commit 3729e7f856fc75bf5abd1e6570dd2d78895bae7e)

pdns/slavecommunicator.cc

index 190488faf5d74c2493ba6937597bd806c6695bb5..6808cf8880d36252a8c5039b28627acc5f61acb0 100644 (file)
@@ -91,8 +91,12 @@ void CommunicatorClass::ixfrSuck(const DNSName &domain, const TSIGTriplet& tt, c
   try {
     DNSSECKeeper dk (&B); // reuse our UeberBackend copy for DNSSECKeeper
 
-    if(!B.getDomainInfo(domain, di) || !di.backend || di.kind != DomainInfo::Slave) { // di.backend and B are mostly identical
-      g_log<<Logger::Error<<"Can't determine backend for domain '"<<domain<<"'"<<endl;
+    bool wrongDomainKind = false;
+    if(!B.getDomainInfo(domain, di) || !di.backend || (wrongDomainKind = true, di.kind != DomainInfo::Slave)) { // di.backend and B are mostly identical
+      if(wrongDomainKind)
+        g_log<<Logger::Error<<"Can't determine backend for domain '"<<domain<<"', not configured as slave"<<endl;
+      else
+        g_log<<Logger::Error<<"Can't determine backend for domain '"<<domain<<"'"<<endl;
       return;
     }
 
@@ -307,9 +311,12 @@ void CommunicatorClass::suck(const DNSName &domain, const ComboAddress& remote)
   bool transaction=false;
   try {
     DNSSECKeeper dk (&B); // reuse our UeberBackend copy for DNSSECKeeper
-
-    if(!B.getDomainInfo(domain, di) || !di.backend || di.kind != DomainInfo::Slave) { // di.backend and B are mostly identical
-      g_log<<Logger::Error<<"Can't determine backend for domain '"<<domain<<"'"<<endl;
+    bool wrongDomainKind = false;
+    if(!B.getDomainInfo(domain, di) || !di.backend || (wrongDomainKind = true, di.kind != DomainInfo::Slave)) { // di.backend and B are mostly identical
+      if(wrongDomainKind)
+        g_log<<Logger::Error<<"Can't determine backend for domain '"<<domain<<"', not configured as slave"<<endl;
+      else
+        g_log<<Logger::Error<<"Can't determine backend for domain '"<<domain<<"'"<<endl;
       return;
     }
     ZoneStatus zs;