]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Added option to disable forwarding to master
authorRuben d'Arco <cyclops@prof-x.net>
Wed, 27 Feb 2013 23:11:34 +0000 (00:11 +0100)
committermind04 <mind04@monshouwer.org>
Fri, 12 Jul 2013 15:22:04 +0000 (17:22 +0200)
pdns/common_startup.cc
pdns/rfc2136handler.cc

index 122d793cce99d497aea811283db15650256e1fb3..d6c6e1cc50a420229d67e029c6e9f24867dd38b4 100755 (executable)
@@ -41,6 +41,7 @@ void declareArguments()
   ::arg().set("local-port","The port on which we listen")="53";
   ::arg().setSwitch("experimental-rfc2136","Enable/Disable RFC2136 (Dynamic DNS) support. Default is no.")="no";
   ::arg().set("allow-2136-from","A global setting to allow RFC2136 from these IP ranges.")="0.0.0.0/0";
+  ::arg().setSwitch("forward-2136","A global setting to allow RFC2136 packages that are for a Slave domain, to be forwarded to the master.")="yes";
   ::arg().setSwitch("log-dns-details","If PDNS should log DNS non-erroneous details")="";
   ::arg().setSwitch("log-dns-queries","If PDNS should log all incoming DNS queries")="no";
   ::arg().set("urlredirector","Where we send hosts to that need to be url redirected")="127.0.0.1";
index 8c8c2a86f83318f34232ba879bfbbaf5d519b023..d4ab8276743d130a6e423d1b8e86189320f25654 100755 (executable)
@@ -342,6 +342,15 @@ uint16_t PacketHandler::performUpdate(const string &msgPrefix, const DNSRecord *
 }
 
 int PacketHandler::forwardPacket(const string &msgPrefix, DNSPacket *p, DomainInfo *di) {
+  vector<string> forward;
+  B.getDomainMetadata(p->qdomain, "FORWARD-2136", forward);
+
+  if (forward.size() == 0 && ! ::arg().mustDo("forward-2136")) {
+    L<<Logger::Notice<<msgPrefix<<"Not configured to forward to master, returning NotImpl."<<endl;
+    return RCode::NotImp;
+  }
+
+
   for(vector<string>::const_iterator master=di->masters.begin(); master != di->masters.end(); master++) {
     ComboAddress remote;
     try {