::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";
}
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 {