::arg().setSwitch("disable-axfr","Disable zonetransfers but do allow TCP queries")="no";
::arg().set("allow-axfr-ips","Allow zonetransfers only to these subnets")="0.0.0.0/0,::/0";
::arg().set("only-notify", "Only send AXFR NOTIFY to these IP addresses or netmasks")="0.0.0.0/0,::/0";
+ ::arg().set("also-notify", "When notifying a domain, also notify these nameservers")="";
::arg().set("slave-cycle-interval","Reschedule failed SOA serial checks once every .. seconds")="60";
::arg().set("tcp-control-address","If set, PowerDNS can be controlled over TCP on this address")="";
d_preventSelfNotification = ::arg().mustDo("prevent-self-notification");
d_onlyNotify.toMasks(::arg()["only-notify"]);
+
+ vector<string> parts;
+ stringtok(parts, ::arg()["also-notify"], ", \t");
+ for (vector<string>::const_iterator iter = parts.begin(); iter != parts.end(); ++iter)
+ d_alsoNotify.insert(*iter);
}
void CommunicatorClass::mainloop(void)
vector<DNSPacket> d_potentialsupermasters;
bool d_preventSelfNotification;
NetmaskGroup d_onlyNotify;
-
+ set<string> d_alsoNotify;
};
#endif
By specifying <command>allow-recursion</command>, recursion can be restricted to netmasks specified. The default is to allow
recursion from everywhere. Example: <command>allow-recursion=192.168.0.0/24, 10.0.0.0/8, 192.0.2.4</command>.
</para>
- </listitem></varlistentry>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>also-notify=...</term>
+ <listitem>
+ <para>
+ When notifying a domain, also notify these nameservers. Example: <command>also-notify=192.168.0.1, 10.0.0.1</command>.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry><term>any-to-tcp | any-to-tcp=yes | any-to-tcp=no</term>
<listitem><para>
Answer questions for the ANY and RRSIG types on UDP with a truncated packet that refers the
hasQueuedItem=true;
}
- set<string>alsoNotify;
+ set<string> alsoNotify(d_alsoNotify);
B->alsoNotifies(domain, &alsoNotify);
for(set<string>::const_iterator j=alsoNotify.begin();j!=alsoNotify.end();++j) {
const ComboAddress caIp(*j, 53);
L<<Logger::Warning<<"Queued also-notification of domain '"<<domain<<"' to "<<caIp.toStringWithPort()<<endl;
- if (!ips.count(caIp.toStringWithPort()))
+ if (!ips.count(caIp.toStringWithPort())) {
+ ips.insert(caIp.toStringWithPort());
d_nq.add(domain, caIp.toStringWithPort());
+ }
hasQueuedItem=true;
}
#
# allow-recursion=0.0.0.0/0
+#################################
+# also-notify When notifying a domain, also notify these nameservers
+#
+# also-notify=
+
#################################
# any-to-tcp Answer ANY queries with tc=1, shunting to TCP
#