* ``file``
* ``type``
* ``masters``
+ * ``primaries`` (added in version 4.9.0)
* ``also-notify``
+Unknown directives will be ignored.
+
.. _setting-bind-check-interval:
``bind-check-interval``
if (domain.type.empty()) {
g_log << Logger::Notice << d_logprefix << " Zone '" << domain.name << "' has no type specified, assuming 'native'" << endl;
}
- if (domain.type != "master" && domain.type != "slave" && domain.type != "native" && !domain.type.empty()) {
+ if (domain.type != "primary" && domain.type != "secondary" && domain.type != "native" && !domain.type.empty() && domain.type != "master" && domain.type != "slave") {
g_log << Logger::Warning << d_logprefix << " Warning! Skipping zone '" << domain.name << "' because type '" << domain.type << "' is invalid" << endl;
rejected++;
continue;
bbd.d_also_notify = domain.alsoNotify;
DomainInfo::DomainKind kind = DomainInfo::Native;
- if (domain.type == "master")
+ if (domain.type == "primary" || domain.type == "master")
kind = DomainInfo::Master;
- if (domain.type == "slave")
+ if (domain.type == "secondary" || domain.type == "slave")
kind = DomainInfo::Slave;
bool kindChanged = (bbd.d_kind != kind);
c_of << endl;
c_of << "# Superslave zone '" << domain.toString() << "' (added: " << nowTime() << ") (account: " << account << ')' << endl;
c_of << "zone \"" << domain.toStringNoDot() << "\" {" << endl;
- c_of << "\ttype slave;" << endl;
+ c_of << "\ttype secondary;" << endl;
c_of << "\tfile \"" << filename << "\";" << endl;
- c_of << "\tmasters { " << ip << "; };" << endl;
+ c_of << "\tprimaries { " << ip << "; };" << endl;
c_of << "};" << endl;
c_of.close();
}
acl return ACLTOK;
logging return LOGGINGTOK;
directory return DIRECTORYTOK;
-masters return MASTERTOK;
+masters return PRIMARYTOK;
+primaries return PRIMARYTOK;
type return TYPETOK;
\" yy_push_state(quoted);
<quoted>[^\"]* yylval=strdup(yytext); return QUOTEDWORD;
%}
%token AWORD QUOTEDWORD OBRACE EBRACE SEMICOLON ZONETOK FILETOK OPTIONSTOK
-%token DIRECTORYTOK ACLTOK LOGGINGTOK CLASSTOK TYPETOK MASTERTOK ALSONOTIFYTOK
+%token DIRECTORYTOK ACLTOK LOGGINGTOK CLASSTOK TYPETOK PRIMARYTOK ALSONOTIFYTOK
%%
;
/* zone commands that also are available at global scope */
-global_zone_command: zone_file_command | zone_type_command | zone_masters_command
+global_zone_command: zone_file_command | zone_type_command | zone_primaries_command
;
-zone_masters_command: MASTERTOK OBRACE masters EBRACE
+zone_primaries_command: PRIMARYTOK OBRACE primaries EBRACE
;
zone_also_notify_command: ALSONOTIFYTOK OBRACE zone_also_notify_list EBRACE
}
;
-masters: /* empty */
+primaries: /* empty */
|
- masters master SEMICOLON
+ primaries primary SEMICOLON
;
-master: AWORD
+primary: AWORD
{
s_di.masters.push_back(ComboAddress($1, 53));
free($1);
};
zone "wtest.com"{
- type master;
+ type primary;
file "wtest.com";
};
zone "nztest.com"{
- type master;
+ type secondary;
file "nztest.com";
+ primaries { 1.2.3.4:5678; };
};
zone "dnssec-parent.com"{
- type master;
+ type primary;
file "dnssec-parent.com";
};
zone "delegated.dnssec-parent.com"{
- type master;
+ type primary;
file "delegated.dnssec-parent.com";
};
zone "secure-delegated.dnssec-parent.com"{
- type master;
+ type primary;
file "secure-delegated.dnssec-parent.com";
};
zone "minimal.com"{
- type master;
+ type primary;
file "minimal.com";
};
zone "tsig.com"{
- type master;
+ type primary;
file "tsig.com";
};
zone "stest.com"{
- type master;
+ type primary;
file "stest.com";
};
checkzone(1, "test.com", "./zones/test.com", slave, 1U);
BOOST_CHECK_EQUAL(domains[1].masters[0].toString(), ComboAddress("1.2.3.4", 5678).toString());
checkzone(2, "test.dyndns", "./zones/test.dyndns", garblewarble, 0U);
- checkzone(3, "wtest.com", "./zones/wtest.com", master, 0U);
- checkzone(4, "nztest.com", "./zones/nztest.com", master, 0U);
- checkzone(5, "dnssec-parent.com", "./zones/dnssec-parent.com", master, 0U);
- checkzone(6, "delegated.dnssec-parent.com", "./zones/delegated.dnssec-parent.com", master, 0U);
- checkzone(7, "secure-delegated.dnssec-parent.com", "./zones/secure-delegated.dnssec-parent.com", master, 0U);
- checkzone(8, "minimal.com", "./zones/minimal.com", master, 0U);
- checkzone(9, "tsig.com", "./zones/tsig.com", master, 0U);
- checkzone(10, "stest.com", "./zones/stest.com", master, 0U);
+ checkzone(3, "wtest.com", "./zones/wtest.com", primary, 0U);
+ checkzone(4, "nztest.com", "./zones/nztest.com", secondary, 1U);
+ BOOST_CHECK_EQUAL(domains[1].masters[0].toString(), ComboAddress("1.2.3.4", 5678).toString());
+ checkzone(5, "dnssec-parent.com", "./zones/dnssec-parent.com", primary, 0U);
+ checkzone(6, "delegated.dnssec-parent.com", "./zones/delegated.dnssec-parent.com", primary, 0U);
+ checkzone(7, "secure-delegated.dnssec-parent.com", "./zones/secure-delegated.dnssec-parent.com", primary, 0U);
+ checkzone(8, "minimal.com", "./zones/minimal.com", primary, 0U);
+ checkzone(9, "tsig.com", "./zones/tsig.com", primary, 0U);
+ checkzone(10, "stest.com", "./zones/stest.com", primary, 0U);
}
BOOST_AUTO_TEST_SUITE_END()
i!=domains.end();
++i)
{
- if(i->type!="master" && i->type!="slave") {
- cerr<<" Warning! Skipping '"<<i->type<<"' zone '"<<i->name<<"'"<<endl;
- continue;
- }
+ if (i->type != "primary" && i->type != "secondary" && !i->type.empty() && i->type != "master" && i->type != "slave") {
+ cerr << " Warning! Skipping '" << i->type << "' zone '" << i->name << "'" << endl;
+ continue;
+ }
lines.clear();
try {
Json::object obj;
for(const auto& i: domains)
{
- if(i.type!="master" && i.type!="slave") {
- cerr<<" Warning! Skipping '"<<i.type<<"' zone '"<<i.name<<"'"<<endl;
- continue;
- }
+ if (i.type != "primary" && i.type != "secondary" && !i.type.empty() && i.type != "master" && i.type != "slave") {
+ cerr << " Warning! Skipping '" << i.type << "' zone '" << i.name << "'" << endl;
+ continue;
+ }
try
{
if( i.name != g_rootdnsname && i.name != DNSName("localhost") && i.name != DNSName("0.0.127.in-addr.arpa") )
for(const auto & domain : domains)
{
- if(domain.type!="master" && domain.type!="slave") {
- cerr<<" Warning! Skipping '"<<domain.type<<"' zone '"<<domain.name<<"'"<<endl;
- continue;
- }
+ if (domain.type != "primary" && domain.type != "secondary" && !domain.type.empty() && domain.type != "master" && domain.type != "slave") {
+ cerr << " Warning! Skipping '" << domain.type << "' zone '" << domain.name << "'" << endl;
+ continue;
+ }
try {
startNewTransaction();
namedconf.write("""
zone "%s" {
- type master;
+ type primary;
file "%s.zone";
};""" % (zone, zonename))
namedconf.write("""
zone "%s" {
- type slave;
+ type secondary;
file "%s.zone";
masters { %s; };
};""" % (zone, zonename, cls._zones[zone]))
};
zone "test.com"{
- type master;
+ type primary;
file "./test.com";
};
};
zone "minimal.com"{
- type master;
+ type primary;
file "./minimal.com";
};
};
zone "minimal.com"{
- type master;
+ type primary;
file "./minimal.com";
};
};
zone "example.com" {
- type master;
+ type primary;
file "example.com.zone";
};
cat >> ./named.conf << __EOF__
zone "."{
- type master;
+ type primary;
file "../../regression-tests.rootzone/zones/ROOT";
};
__EOF__
};
zone "minimal.com"{
- type master;
+ type primary;
file "./minimal.com";
};
minimal-responses yes;
};
zone "example.com"{
- type master;
+ type primary;
file "example.com";
};
zone "test.com"{
- type master;
+ type primary;
file "test.com";
};
EOF
minimal-responses yes;
};
zone "example.com"{
- type master;
+ type primary;
file "example.com";
};
zone "test.com"{
- type master;
+ type primary;
file "test.com";
};
EOF
namedconf.write("""
zone "%s" {
- type master;
+ type primary;
file "%s.zone";
};""" % (zone, zonename))
fi
cat >> $dir/named.conf <<EOF
zone "$realzone"{
- type master;
+ type primary;
file "./$zone.zone";
};
EOF
minimal-responses yes;
};
zone "."{
- type master;
+ type primary;
file "ROOT";
};
context=${context}-presigned
- perl -pe 's/type master;/type slave;\n\tmasters { 127.0.0.1:'$port'; };/ ;s/file "([^"]+)/file "$1-slave/' < named.conf > named-slave.conf
+ perl -pe 's/type primary;/type secondary;\n\tprimaries { 127.0.0.1:'$port'; };/ ;s/file "([^"]+)/file "$1-slave/' < named.conf > named-slave.conf
for zone in $(grep 'zone ' named.conf | cut -f2 -d\")
do
echo "" >> bind.conf
echo "zone \"${zone}\" {" >> bind.conf
- echo " type master;" >> bind.conf
+ echo " type primary;" >> bind.conf
if [ "${zone}" = "tsig.com" ]
then
echo " allow-transfer { key test; none; };" >> bind.conf
echo "" >> bind-slave.conf
echo "zone \"${zone}\" {" >> bind-slave.conf
- echo " type slave;" >> bind-slave.conf
+ echo " type secondary;" >> bind-slave.conf
echo " file \"${zone}-slave\";" >> bind-slave.conf
if [ "${zone}" = "tsig.com" ]
then
minimal-responses yes;
};
zone "example.com"{
- type master;
+ type primary;
file "example.com";
};
zone "test.com"{
- type master;
+ type primary;
file "test.com";
};
zone "test.dyndns" {
- type master;
+ type primary;
file "test.dyndns";
allow-update {
127.0.0.0/8;
};
zone "sub.test.dyndns" {
- type master;
+ type primary;
file "sub.test.dyndns";
allow-update {
127.0.0.0/8;
};
zone "wtest.com"{
- type master;
+ type primary;
file "wtest.com";
};
zone "nztest.com"{
- type master;
+ type primary;
file "nztest.com";
};
zone "dnssec-parent.com"{
- type master;
+ type primary;
file "dnssec-parent.com";
};
zone "insecure.dnssec-parent.com"{
- type master;
+ type primary;
file "insecure.dnssec-parent.com";
};
zone "delegated.dnssec-parent.com"{
- type master;
+ type primary;
file "delegated.dnssec-parent.com";
};
zone "secure-delegated.dnssec-parent.com"{
- type master;
+ type primary;
file "secure-delegated.dnssec-parent.com";
};
zone "minimal.com"{
- type master;
+ type primary;
file "minimal.com";
};
zone "tsig.com"{
- type master;
+ type primary;
file "tsig.com";
};
zone "stest.com"{
- type master;
+ type primary;
file "stest.com";
};
zone "cdnskey-cds-test.com"{
- type master;
+ type primary;
file "cdnskey-cds-test.com";
};
zone "2.0.192.in-addr.arpa"{
- type master;
+ type primary;
file "2.0.192.in-addr.arpa";
};
zone "cryptokeys.org"{
- type master;
+ type primary;
file "cryptokeys.org";
};
zone "hiddencryptokeys.org"{
- type master;
+ type primary;
file "hiddencryptokeys.org";
};