mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-22 10:10:06 +00:00
remove the "dialup" and "heartbeat-interval" options
mark "dialup" and "heartbeat-interval" options as ancient and remove the documentation and the code implementing them.
This commit is contained in:
parent
99b18bab7e
commit
642a1b985d
@ -63,7 +63,6 @@ options {\n\
|
||||
geoip-directory \".\";\n"
|
||||
#endif /* if defined(HAVE_GEOIP2) */
|
||||
"\
|
||||
heartbeat-interval 60;\n\
|
||||
interface-interval 60;\n\
|
||||
listen-on {any;};\n\
|
||||
listen-on-v6 {any;};\n\
|
||||
@ -217,7 +216,6 @@ options {\n\
|
||||
check-sibling yes;\n\
|
||||
check-srv-cname warn;\n\
|
||||
check-wildcard yes;\n\
|
||||
dialup no;\n\
|
||||
dnssec-loadkeys-interval 60;\n\
|
||||
# forward <none>\n\
|
||||
# forwarders <none>\n\
|
||||
|
@ -75,7 +75,6 @@ struct named_server {
|
||||
isc_timer_t *tat_timer;
|
||||
|
||||
uint32_t interface_interval;
|
||||
uint32_t heartbeat_interval;
|
||||
|
||||
atomic_int reload_status;
|
||||
|
||||
|
@ -1967,7 +1967,6 @@ dns64_reverse(dns_view_t *view, isc_mem_t *mctx, isc_netaddr_t *na,
|
||||
if (view->queryonacl != NULL) {
|
||||
dns_zone_setqueryonacl(zone, view->queryonacl);
|
||||
}
|
||||
dns_zone_setdialup(zone, dns_dialuptype_no);
|
||||
dns_zone_setcheckdstype(zone, dns_checkdstype_no);
|
||||
dns_zone_setnotifytype(zone, dns_notifytype_no);
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS, true);
|
||||
@ -3639,7 +3638,6 @@ create_empty_zone(dns_zone_t *pzone, dns_name_t *name, dns_view_t *view,
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS, true);
|
||||
dns_zone_setcheckdstype(zone, dns_checkdstype_no);
|
||||
dns_zone_setnotifytype(zone, dns_notifytype_no);
|
||||
dns_zone_setdialup(zone, dns_dialuptype_no);
|
||||
dns_zone_setautomatic(zone, true);
|
||||
if (view->queryacl != NULL) {
|
||||
dns_zone_setqueryacl(zone, view->queryacl);
|
||||
@ -3737,7 +3735,6 @@ create_ipv4only_zone(dns_zone_t *pzone, dns_view_t *view,
|
||||
dns_zone_settype(zone, dns_zone_primary);
|
||||
dns_zone_setstats(zone, named_g_server->zonestats);
|
||||
dns_zone_setdbtype(zone, dbtypec, dbtype);
|
||||
dns_zone_setdialup(zone, dns_dialuptype_no);
|
||||
dns_zone_setcheckdstype(zone, dns_checkdstype_no);
|
||||
dns_zone_setnotifytype(zone, dns_notifytype_no);
|
||||
dns_zone_setautomatic(zone, true);
|
||||
@ -7053,7 +7050,6 @@ add_keydata_zone(dns_view_t *view, const char *directory, isc_mem_t *mctx) {
|
||||
dns_zone_setqueryonacl(zone, none);
|
||||
dns_acl_detach(&none);
|
||||
|
||||
dns_zone_setdialup(zone, dns_dialuptype_no);
|
||||
dns_zone_setcheckdstype(zone, dns_checkdstype_no);
|
||||
dns_zone_setnotifytype(zone, dns_notifytype_no);
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_NOCHECKNS, true);
|
||||
@ -7159,18 +7155,6 @@ interface_timer_tick(void *arg) {
|
||||
(void)ns_interfacemgr_scan(server->interfacemgr, false, false);
|
||||
}
|
||||
|
||||
static void
|
||||
heartbeat_timer_tick(void *arg) {
|
||||
named_server_t *server = (named_server_t *)arg;
|
||||
dns_view_t *view = NULL;
|
||||
|
||||
view = ISC_LIST_HEAD(server->viewlist);
|
||||
while (view != NULL) {
|
||||
dns_view_dialup(view);
|
||||
view = ISC_LIST_NEXT(view, link);
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
isc_mem_t *mctx;
|
||||
isc_loop_t *loop;
|
||||
@ -8308,7 +8292,6 @@ load_configuration(const char *filename, named_server_t *server,
|
||||
isc_portset_t *v4portset = NULL;
|
||||
isc_portset_t *v6portset = NULL;
|
||||
isc_result_t result;
|
||||
uint32_t heartbeat_interval;
|
||||
uint32_t interface_interval;
|
||||
uint32_t udpsize;
|
||||
uint32_t transfer_message_size;
|
||||
@ -9039,22 +9022,6 @@ load_configuration(const char *filename, named_server_t *server,
|
||||
&interval);
|
||||
}
|
||||
|
||||
/*
|
||||
* Configure the dialup heartbeat timer.
|
||||
*/
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "heartbeat-interval", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
heartbeat_interval = cfg_obj_asuint32(obj) * 60;
|
||||
if (heartbeat_interval == 0) {
|
||||
isc_timer_stop(server->heartbeat_timer);
|
||||
} else if (server->heartbeat_interval != heartbeat_interval) {
|
||||
isc_interval_set(&interval, heartbeat_interval, 0);
|
||||
isc_timer_start(server->heartbeat_timer, isc_timertype_ticker,
|
||||
&interval);
|
||||
}
|
||||
server->heartbeat_interval = heartbeat_interval;
|
||||
|
||||
isc_interval_set(&interval, 1200, 0);
|
||||
isc_timer_start(server->pps_timer, isc_timertype_ticker, &interval);
|
||||
|
||||
@ -10040,9 +10007,6 @@ run_server(void *arg) {
|
||||
isc_timer_create(named_g_mainloop, interface_timer_tick, server,
|
||||
&server->interface_timer);
|
||||
|
||||
isc_timer_create(named_g_mainloop, heartbeat_timer_tick, server,
|
||||
&server->heartbeat_timer);
|
||||
|
||||
isc_timer_create(named_g_mainloop, tat_timer_tick, server,
|
||||
&server->tat_timer);
|
||||
|
||||
@ -10155,7 +10119,6 @@ shutdown_server(void *arg) {
|
||||
}
|
||||
|
||||
isc_timer_destroy(&server->interface_timer);
|
||||
isc_timer_destroy(&server->heartbeat_timer);
|
||||
isc_timer_destroy(&server->pps_timer);
|
||||
isc_timer_destroy(&server->tat_timer);
|
||||
|
||||
|
@ -886,7 +886,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
static char dlz_dbtype[] = "dlz";
|
||||
char *cpval = default_dbtype;
|
||||
isc_mem_t *mctx = dns_zone_getmctx(zone);
|
||||
dns_dialuptype_t dialup = dns_dialuptype_no;
|
||||
dns_zonetype_t ztype;
|
||||
int i;
|
||||
int32_t journal_size;
|
||||
@ -1132,34 +1131,6 @@ named_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
zone, dns_zone_setqueryonacl,
|
||||
dns_zone_clearqueryonacl));
|
||||
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "dialup", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
if (cfg_obj_isboolean(obj)) {
|
||||
if (cfg_obj_asboolean(obj)) {
|
||||
dialup = dns_dialuptype_yes;
|
||||
} else {
|
||||
dialup = dns_dialuptype_no;
|
||||
}
|
||||
} else {
|
||||
const char *dialupstr = cfg_obj_asstring(obj);
|
||||
if (strcasecmp(dialupstr, "notify") == 0) {
|
||||
dialup = dns_dialuptype_notify;
|
||||
} else if (strcasecmp(dialupstr, "notify-passive") == 0) {
|
||||
dialup = dns_dialuptype_notifypassive;
|
||||
} else if (strcasecmp(dialupstr, "refresh") == 0) {
|
||||
dialup = dns_dialuptype_refresh;
|
||||
} else if (strcasecmp(dialupstr, "passive") == 0) {
|
||||
dialup = dns_dialuptype_passive;
|
||||
} else {
|
||||
UNREACHABLE();
|
||||
}
|
||||
}
|
||||
if (raw != NULL) {
|
||||
dns_zone_setdialup(raw, dialup);
|
||||
}
|
||||
dns_zone_setdialup(zone, dialup);
|
||||
|
||||
obj = NULL;
|
||||
result = named_config_get(maps, "zone-statistics", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS && obj != NULL);
|
||||
|
@ -96,7 +96,6 @@ TESTS = \
|
||||
checkzone \
|
||||
cookie \
|
||||
database \
|
||||
dialup \
|
||||
digdelv \
|
||||
dispatch \
|
||||
dlzexternal \
|
||||
|
@ -1,36 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
controls { /* empty */ };
|
||||
options {
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port 5300;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
listen-on-v6 { none; };
|
||||
heartbeat-interval 2;
|
||||
recursion no;
|
||||
};
|
||||
zone "." {
|
||||
type hint;
|
||||
file "hint";
|
||||
};
|
||||
zone "example." {
|
||||
type stub;
|
||||
dialup notify;
|
||||
notify no;
|
||||
file "example.bk";
|
||||
// primaries { 10.53.0.1; };
|
||||
};
|
@ -19,9 +19,6 @@ options {
|
||||
dnssec-validation yes;
|
||||
max-zone-ttl 600;
|
||||
|
||||
dialup yes;
|
||||
heartbeat-interval 60;
|
||||
|
||||
use-v4-udp-ports { range 1024 65535; };
|
||||
use-v6-udp-ports { range 1024 65535; };
|
||||
avoid-v4-udp-ports { range 1 1023; };
|
||||
|
@ -56,7 +56,6 @@ options {
|
||||
};
|
||||
directory ".";
|
||||
dump-file "named_dumpdb";
|
||||
heartbeat-interval 30;
|
||||
hostname none;
|
||||
interface-interval 30;
|
||||
listen-on port 90 {
|
||||
|
@ -174,7 +174,7 @@ fi
|
||||
n=$((n + 1))
|
||||
echo_i "checking named-checkconf deprecate warnings ($n)"
|
||||
ret=0
|
||||
$CHECKCONF deprecated.conf >checkconf.out$n.1 2>&1
|
||||
$CHECKCONF deprecated.conf >checkconf.out$n.1 2>&1 || ret=1
|
||||
grep "option 'managed-keys' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "option 'trusted-keys' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "option 'max-zone-ttl' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
@ -182,8 +182,6 @@ grep "option 'use-v4-udp-ports' is deprecated" <checkconf.out$n.1 >/dev/null ||
|
||||
grep "option 'use-v6-udp-ports' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "option 'avoid-v4-udp-ports' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "option 'avoid-v6-udp-ports' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "option 'dialup' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "option 'heartbeat-interval' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "option 'dnssec-must-be-secure' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "option 'sortlist' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
grep "token 'port' is deprecated" <checkconf.out$n.1 >/dev/null || ret=1
|
||||
|
@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
rm -f ns2/example.bk
|
||||
rm -f ns3/example.bk
|
||||
rm -f */named.memstats */named.run
|
||||
rm -f ns*/named.conf
|
@ -1,19 +0,0 @@
|
||||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
@ 3600 SOA hostmaster.ns1 ns1 (
|
||||
1 3600 1200 3600000 1200 )
|
||||
NS ns1.example.
|
||||
NS ns2.example.
|
||||
NS ns3.example.
|
||||
ns1 A 10.53.0.1
|
||||
ns2 A 10.53.0.2
|
||||
ns3 A 10.53.0.3
|
@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.1;
|
||||
notify-source 10.53.0.1;
|
||||
transfer-source 10.53.0.1;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.1; };
|
||||
listen-on-v6 { none; };
|
||||
allow-transfer { any; };
|
||||
heartbeat-interval 1;
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type primary;
|
||||
file "root.db";
|
||||
};
|
||||
|
||||
zone "example." {
|
||||
type primary;
|
||||
notify explicit;
|
||||
also-notify { 10.53.0.2; };
|
||||
dialup yes;
|
||||
file "example.db";
|
||||
};
|
@ -1,20 +0,0 @@
|
||||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
@ 3600 SOA hostmaster.ns1.example ns1.example (
|
||||
1 3600 1200 3600000 1200 )
|
||||
NS ns1.example
|
||||
example NS ns1.example
|
||||
NS ns2.example
|
||||
NS ns3.example
|
||||
ns1.example A 10.53.0.1
|
||||
ns2.example A 10.53.0.2
|
||||
ns3.example A 10.53.0.3
|
@ -1,13 +0,0 @@
|
||||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
. 1200 NS ns1.example
|
||||
ns1.example A 10.53.0.1
|
@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
listen-on-v6 { none; };
|
||||
allow-transfer { any; };
|
||||
heartbeat-interval 1;
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "hint.db";
|
||||
};
|
||||
|
||||
zone "example." {
|
||||
type secondary;
|
||||
dialup passive;
|
||||
notify no;
|
||||
file "example.bk";
|
||||
primaries { 10.53.0.1; };
|
||||
};
|
@ -1,13 +0,0 @@
|
||||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
. 1200 NS ns1.example
|
||||
ns1.example A 10.53.0.1
|
@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.3;
|
||||
notify-source 10.53.0.3;
|
||||
transfer-source 10.53.0.3;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; };
|
||||
listen-on-v6 { none; };
|
||||
heartbeat-interval 1;
|
||||
recursion no;
|
||||
dnssec-validation no;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "hint.db";
|
||||
};
|
||||
|
||||
zone "example." {
|
||||
type secondary;
|
||||
dialup refresh;
|
||||
notify no;
|
||||
file "example.bk";
|
||||
primaries { 10.53.0.2; };
|
||||
};
|
@ -1,19 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
# shellcheck source=conf.sh
|
||||
. ../conf.sh
|
||||
|
||||
copy_setports ns1/named.conf.in ns1/named.conf
|
||||
copy_setports ns2/named.conf.in ns2/named.conf
|
||||
copy_setports ns3/named.conf.in ns3/named.conf
|
@ -1,33 +0,0 @@
|
||||
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
import pytest
|
||||
|
||||
import isctest
|
||||
|
||||
import dns.message
|
||||
|
||||
|
||||
@pytest.mark.parametrize("ns", [2, 3])
|
||||
def test_dialup_zone_transfer(named_port, servers, ns):
|
||||
msg = dns.message.make_query("example.", "SOA")
|
||||
# Drop the RD flag from the query
|
||||
msg.flags &= ~dns.flags.RD
|
||||
ns1response = isctest.query.tcp(msg, "10.53.0.1")
|
||||
with servers[f"ns{ns}"].watch_log_from_start() as watcher:
|
||||
watcher.wait_for_line(
|
||||
f"transfer of 'example/IN' from 10.53.0.{ns-1}#{named_port}: Transfer status: success",
|
||||
timeout=90,
|
||||
)
|
||||
response = isctest.query.tcp(msg, f"10.53.0.{ns}")
|
||||
if response.rcode() != dns.rcode.SERVFAIL:
|
||||
assert response.answer == ns1response.answer
|
||||
assert response.authority == ns1response.authority
|
@ -2030,64 +2030,6 @@ Boolean Options
|
||||
:any:`memstatistics-file` at exit. The default is ``no`` unless :option:`-m
|
||||
record <named -m>` is specified on the command line, in which case it is ``yes``.
|
||||
|
||||
.. namedconf:statement:: dialup
|
||||
:tags: deprecated
|
||||
:short: Concentrates zone maintenance so that all transfers take place once every :any:`heartbeat-interval`, ideally during a single call.
|
||||
|
||||
This option is deprecated and will be removed in a future release.
|
||||
|
||||
If ``yes``, then the server treats all zones as if they are doing
|
||||
zone transfers across a dial-on-demand dialup link, which can be
|
||||
brought up by traffic originating from this server. Although this setting has
|
||||
different effects according to zone type, it concentrates the zone
|
||||
maintenance so that everything happens quickly, once every
|
||||
:any:`heartbeat-interval`, ideally during a single call. It also
|
||||
suppresses some normal zone maintenance traffic. The default
|
||||
is ``no``.
|
||||
|
||||
If specified in the :any:`view` and
|
||||
:any:`zone` statements, the :any:`dialup` option overrides the global :any:`dialup`
|
||||
option.
|
||||
|
||||
If the zone is a primary zone, the server sends out a NOTIFY
|
||||
request to all the secondaries (default). This should trigger the zone
|
||||
serial number check in the secondary (providing it supports NOTIFY),
|
||||
allowing the secondary to verify the zone while the connection is active.
|
||||
The set of servers to which NOTIFY is sent can be controlled by
|
||||
:namedconf:ref:`notify` and :any:`also-notify`.
|
||||
|
||||
If the zone is a secondary or stub zone, the server suppresses
|
||||
the regular "zone up to date" (refresh) queries and only performs them
|
||||
when the :any:`heartbeat-interval` expires, in addition to sending NOTIFY
|
||||
requests.
|
||||
|
||||
Finer control can be achieved by using :namedconf:ref:`notify`, which only sends
|
||||
NOTIFY messages; ``notify-passive``, which sends NOTIFY messages and
|
||||
suppresses the normal refresh queries; ``refresh``, which suppresses
|
||||
normal refresh processing and sends refresh queries when the
|
||||
:any:`heartbeat-interval` expires; and ``passive``, which disables
|
||||
normal refresh processing.
|
||||
|
||||
+--------------------+-----------------+-----------------+-----------------+
|
||||
| dialup mode | normal refresh | heart-beat | heart-beat |
|
||||
| | | refresh | notify |
|
||||
+--------------------+-----------------+-----------------+-----------------+
|
||||
| ``no`` | yes | no | no |
|
||||
| (default) | | | |
|
||||
+--------------------+-----------------+-----------------+-----------------+
|
||||
| ``yes`` | no | yes | yes |
|
||||
+--------------------+-----------------+-----------------+-----------------+
|
||||
| ``notify`` | yes | no | yes |
|
||||
+--------------------+-----------------+-----------------+-----------------+
|
||||
| ``refresh`` | no | yes | no |
|
||||
+--------------------+-----------------+-----------------+-----------------+
|
||||
| ``passive`` | no | no | no |
|
||||
+--------------------+-----------------+-----------------+-----------------+
|
||||
| ``notify-passive`` | no | no | yes |
|
||||
+--------------------+-----------------+-----------------+-----------------+
|
||||
|
||||
Note that normal NOTIFY processing is not affected by :any:`dialup`.
|
||||
|
||||
.. namedconf:statement:: flush-zones-on-shutdown
|
||||
:tags: zone
|
||||
:short: Controls whether pending zone writes are flushed when the name server exits.
|
||||
@ -4065,18 +4007,6 @@ system.
|
||||
Periodic Task Intervals
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. namedconf:statement:: heartbeat-interval
|
||||
:tags: deprecated
|
||||
:short: Sets the interval at which the server performs zone maintenance tasks for all zones marked as :any:`dialup`.
|
||||
|
||||
The server performs zone maintenance tasks for all zones marked
|
||||
as :any:`dialup` whenever this interval expires. The default is 60
|
||||
minutes. Reasonable values are up to 1 day (1440 minutes). The
|
||||
maximum value is 28 days (40320 minutes). If set to 0, no zone
|
||||
maintenance for these zones occurs.
|
||||
|
||||
This option is deprecated and will be removed in a future release.
|
||||
|
||||
.. namedconf:statement:: interface-interval
|
||||
:tags: server
|
||||
:short: Sets the interval at which the server scans the network interface list.
|
||||
@ -7267,9 +7197,6 @@ Zone Options
|
||||
linked into the server. Some sample drivers are included with the
|
||||
distribution but none are linked in by default.
|
||||
|
||||
:any:`dialup`
|
||||
See the description of :any:`dialup` in :ref:`boolean_options`.
|
||||
|
||||
.. namedconf:statement:: file
|
||||
:tags: zone
|
||||
:short: Specifies the zone's filename.
|
||||
|
@ -105,7 +105,6 @@ options {
|
||||
cookie-secret <string>; // may occur multiple times
|
||||
deny-answer-addresses { <address_match_element>; ... } [ except-from { <string>; ... } ];
|
||||
deny-answer-aliases { <string>; ... } [ except-from { <string>; ... } ];
|
||||
dialup ( notify | notify-passive | passive | refresh | <boolean> ); // deprecated
|
||||
directory <quoted_string>;
|
||||
disable-algorithms <string> { <string>; ... }; // may occur multiple times
|
||||
disable-ds-digests <string> { <string>; ... }; // may occur multiple times
|
||||
@ -156,7 +155,6 @@ options {
|
||||
fstrm-set-output-queue-size <integer>; // not configured
|
||||
fstrm-set-reopen-interval <duration>; // not configured
|
||||
geoip-directory ( <quoted_string> | none );
|
||||
heartbeat-interval <integer>; // deprecated
|
||||
hostname ( <quoted_string> | none );
|
||||
http-listener-clients <integer>;
|
||||
http-port <integer>;
|
||||
@ -411,7 +409,6 @@ view <string> [ <class> ] {
|
||||
clients-per-query <integer>;
|
||||
deny-answer-addresses { <address_match_element>; ... } [ except-from { <string>; ... } ];
|
||||
deny-answer-aliases { <string>; ... } [ except-from { <string>; ... } ];
|
||||
dialup ( notify | notify-passive | passive | refresh | <boolean> ); // deprecated
|
||||
disable-algorithms <string> { <string>; ... }; // may occur multiple times
|
||||
disable-ds-digests <string> { <string>; ... }; // may occur multiple times
|
||||
disable-empty-zone <string>; // may occur multiple times
|
||||
|
@ -17,7 +17,6 @@ zone <string> [ <class> ] {
|
||||
check-wildcard <boolean>;
|
||||
checkds ( explicit | <boolean> );
|
||||
database <string>;
|
||||
dialup ( notify | notify-passive | passive | refresh | <boolean> ); // deprecated
|
||||
dlz <string>;
|
||||
dnskey-sig-validity <integer>; // obsolete
|
||||
dnssec-dnskey-kskonly <boolean>; // obsolete
|
||||
|
@ -9,7 +9,6 @@ zone <string> [ <class> ] {
|
||||
check-names ( fail | warn | ignore );
|
||||
checkds ( explicit | <boolean> );
|
||||
database <string>;
|
||||
dialup ( notify | notify-passive | passive | refresh | <boolean> ); // deprecated
|
||||
dlz <string>;
|
||||
dnskey-sig-validity <integer>; // obsolete
|
||||
dnssec-dnskey-kskonly <boolean>; // obsolete
|
||||
|
@ -4,7 +4,6 @@ zone <string> [ <class> ] {
|
||||
allow-query-on { <address_match_element>; ... };
|
||||
check-names ( fail | warn | ignore );
|
||||
database <string>;
|
||||
dialup ( notify | notify-passive | passive | refresh | <boolean> ); // deprecated
|
||||
file <quoted_string>;
|
||||
forward ( first | only );
|
||||
forwarders [ port <integer> ] [ tls <string> ] { ( <ipv4_address> | <ipv6_address> ) [ port <integer> ] [ tls <string> ]; ... };
|
||||
|
Binary file not shown.
@ -55,8 +55,6 @@ options {
|
||||
#Obsolete
|
||||
deallocate - on - exit no;
|
||||
|
||||
dialup yes;
|
||||
|
||||
#Obsolete
|
||||
fake - iquery no;
|
||||
|
||||
@ -166,7 +164,6 @@ options {
|
||||
|
||||
max - ixfr - log - size 20m;
|
||||
max - cache - size 1m;
|
||||
heartbeat - interval 1001;
|
||||
interface - interval 1002;
|
||||
statistics - interval 1003;
|
||||
|
||||
@ -325,14 +322,12 @@ view "test-view" in {
|
||||
server 5.6.7.8 { keys "viewkey"; };
|
||||
|
||||
server 10.9.8.7 { keys "non-viewkey"; };
|
||||
dialup yes;
|
||||
};
|
||||
|
||||
zone "stub.demo.zone" {
|
||||
type stub; // stub zones are like secondary zones,
|
||||
// except that only the NS records
|
||||
// are transferred.
|
||||
dialup yes;
|
||||
file "stub.demo.zone";
|
||||
primaries {
|
||||
1.2.3.4; // where to zone transfer from
|
||||
|
@ -228,15 +228,6 @@ typedef enum {
|
||||
dns_minimal_noauthrec = 3
|
||||
} dns_minimaltype_t;
|
||||
|
||||
typedef enum {
|
||||
dns_dialuptype_no = 0,
|
||||
dns_dialuptype_yes = 1,
|
||||
dns_dialuptype_notify = 2,
|
||||
dns_dialuptype_notifypassive = 3,
|
||||
dns_dialuptype_refresh = 4,
|
||||
dns_dialuptype_passive = 5
|
||||
} dns_dialuptype_t;
|
||||
|
||||
typedef enum {
|
||||
dns_masterformat_none = 0,
|
||||
dns_masterformat_text = 1,
|
||||
|
@ -855,12 +855,6 @@ dns_view_checksig(dns_view_t *view, isc_buffer_t *source, dns_message_t *msg);
|
||||
*\li see dns_tsig_verify()
|
||||
*/
|
||||
|
||||
void
|
||||
dns_view_dialup(dns_view_t *view);
|
||||
/*%<
|
||||
* Perform dialup-time maintenance on the zones of 'view'.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
dns_view_flushcache(dns_view_t *view, bool fixuponly);
|
||||
/*%<
|
||||
|
@ -2101,22 +2101,6 @@ dns_zone_getdnssecsignstats(dns_zone_t *zone);
|
||||
* otherwise NULL.
|
||||
*/
|
||||
|
||||
void
|
||||
dns_zone_dialup(dns_zone_t *zone);
|
||||
/*%<
|
||||
* Perform dialup-time maintenance on 'zone'.
|
||||
*/
|
||||
|
||||
void
|
||||
dns_zone_setdialup(dns_zone_t *zone, dns_dialuptype_t dialup);
|
||||
/*%<
|
||||
* Set the dialup type of 'zone' to 'dialup'.
|
||||
*
|
||||
* Requires:
|
||||
* \li 'zone' to be valid initialised zone.
|
||||
*\li 'dialup' to be a valid dialup type.
|
||||
*/
|
||||
|
||||
void
|
||||
dns_zone_logv(dns_zone_t *zone, isc_logcategory_t category, int level,
|
||||
const char *prefix, const char *msg, va_list ap);
|
||||
|
@ -545,27 +545,6 @@ dns_view_detach(dns_view_t **viewp) {
|
||||
}
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
dialup(dns_zone_t *zone, void *dummy) {
|
||||
UNUSED(dummy);
|
||||
dns_zone_dialup(zone);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
void
|
||||
dns_view_dialup(dns_view_t *view) {
|
||||
dns_zt_t *zonetable = NULL;
|
||||
|
||||
REQUIRE(DNS_VIEW_VALID(view));
|
||||
|
||||
rcu_read_lock();
|
||||
zonetable = rcu_dereference(view->zonetable);
|
||||
if (zonetable != NULL) {
|
||||
(void)dns_zt_apply(zonetable, false, NULL, dialup, NULL);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
void
|
||||
dns_view_weakattach(dns_view_t *source, dns_view_t **targetp) {
|
||||
REQUIRE(DNS_VIEW_VALID(source));
|
||||
|
101
lib/dns/zone.c
101
lib/dns/zone.c
@ -546,9 +546,6 @@ typedef enum {
|
||||
* are still using
|
||||
* default timer values) */
|
||||
DNS_ZONEFLG_FORCEXFER = 0x00008000U, /*%< Force a zone xfer */
|
||||
DNS_ZONEFLG_NOREFRESH = 0x00010000U,
|
||||
DNS_ZONEFLG_DIALNOTIFY = 0x00020000U,
|
||||
DNS_ZONEFLG_DIALREFRESH = 0x00040000U,
|
||||
DNS_ZONEFLG_SHUTDOWN = 0x00080000U,
|
||||
DNS_ZONEFLG_NOIXFR = 0x00100000U, /*%< IXFR failed, force AXFR */
|
||||
DNS_ZONEFLG_FLUSH = 0x00200000U,
|
||||
@ -11128,9 +11125,7 @@ zone_maintenance(dns_zone_t *zone) {
|
||||
case dns_zone_mirror:
|
||||
case dns_zone_stub:
|
||||
LOCK_ZONE(zone);
|
||||
if (!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALREFRESH) &&
|
||||
isc_time_compare(&now, &zone->refreshtime) >= 0)
|
||||
{
|
||||
if (isc_time_compare(&now, &zone->refreshtime) >= 0) {
|
||||
zone_refresh(zone);
|
||||
}
|
||||
UNLOCK_ZONE(zone);
|
||||
@ -12539,9 +12534,6 @@ notify_send_toaddr(void *arg) {
|
||||
goto cleanup_key;
|
||||
}
|
||||
udptimeout = 5;
|
||||
if (DNS_ZONE_FLAG(notify->zone, DNS_ZONEFLG_DIALNOTIFY)) {
|
||||
udptimeout = 30;
|
||||
}
|
||||
timeout = 3 * udptimeout + 1;
|
||||
again:
|
||||
if ((notify->flags & DNS_NOTIFY_TCP) != 0) {
|
||||
@ -12713,14 +12705,6 @@ zone_notify(dns_zone_t *zone, isc_time_t *now) {
|
||||
|
||||
origin = &zone->origin;
|
||||
|
||||
/*
|
||||
* If the zone is dialup we are done as we don't want to send
|
||||
* the current soa so as to force a refresh query.
|
||||
*/
|
||||
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALNOTIFY)) {
|
||||
flags |= DNS_NOTIFY_NOSOA;
|
||||
}
|
||||
|
||||
/*
|
||||
* Record that this was a notify due to starting up.
|
||||
*/
|
||||
@ -14271,7 +14255,6 @@ soa_query(void *arg) {
|
||||
dns_transport_t *transport = NULL;
|
||||
uint32_t options;
|
||||
bool cancel = true;
|
||||
int timeout;
|
||||
bool have_xfrsource = false, reqnsid, reqexpire;
|
||||
uint16_t udpsize = SEND_BUFFER_SIZE;
|
||||
isc_sockaddr_t curraddr, sourceaddr;
|
||||
@ -14433,10 +14416,8 @@ again:
|
||||
}
|
||||
|
||||
zone_iattach(zone, &(dns_zone_t *){ NULL });
|
||||
timeout = 5;
|
||||
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALREFRESH)) {
|
||||
timeout = 30;
|
||||
}
|
||||
|
||||
int timeout = 5;
|
||||
result = dns_request_create(
|
||||
zone->view->requestmgr, message, &zone->sourceaddr, &curraddr,
|
||||
NULL, NULL, options, key, timeout * 3 + 1, timeout, 2,
|
||||
@ -14515,7 +14496,6 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
|
||||
isc_netaddr_t primaryip;
|
||||
dns_tsigkey_t *key = NULL;
|
||||
dns_dbnode_t *node = NULL;
|
||||
int timeout;
|
||||
bool have_xfrsource = false;
|
||||
bool reqnsid;
|
||||
uint16_t udpsize = SEND_BUFFER_SIZE;
|
||||
@ -14701,10 +14681,6 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
|
||||
POST(result);
|
||||
goto cleanup;
|
||||
}
|
||||
timeout = 5;
|
||||
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALREFRESH)) {
|
||||
timeout = 30;
|
||||
}
|
||||
|
||||
/*
|
||||
* Save request parameters so we can reuse them later on
|
||||
@ -14714,9 +14690,10 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
|
||||
cb_args->stub = stub;
|
||||
cb_args->tsig_key = key;
|
||||
cb_args->udpsize = udpsize;
|
||||
cb_args->timeout = timeout;
|
||||
cb_args->timeout = 15;
|
||||
cb_args->reqnsid = reqnsid;
|
||||
|
||||
int timeout = 5;
|
||||
result = dns_request_create(
|
||||
zone->view->requestmgr, message, &zone->sourceaddr, &curraddr,
|
||||
NULL, NULL, DNS_REQUESTOPT_TCP, key, timeout * 3 + 1, timeout,
|
||||
@ -15019,7 +14996,6 @@ zone__settimer(void *arg) {
|
||||
case dns_zone_stub:
|
||||
if (!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_REFRESH) &&
|
||||
!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NOPRIMARIES) &&
|
||||
!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NOREFRESH) &&
|
||||
!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADING) &&
|
||||
!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADPENDING) &&
|
||||
!isc_time_isepoch(&zone->refreshtime) &&
|
||||
@ -15380,13 +15356,10 @@ dns_zone_notifyreceive(dns_zone_t *zone, isc_sockaddr_t *from,
|
||||
|
||||
/*
|
||||
* If the zone is loaded and there are answers check the serial
|
||||
* to see if we need to do a refresh. Do not worry about this
|
||||
* check if we are a dialup zone as we use the notify request
|
||||
* to trigger a refresh check.
|
||||
* to see if we need to do a refresh.
|
||||
*/
|
||||
if (msg->counts[DNS_SECTION_ANSWER] > 0 &&
|
||||
DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADED) &&
|
||||
!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NOREFRESH))
|
||||
DNS_ZONE_FLAG(zone, DNS_ZONEFLG_LOADED))
|
||||
{
|
||||
result = dns_message_findname(
|
||||
msg, DNS_SECTION_ANSWER, &zone->origin,
|
||||
@ -19723,61 +19696,6 @@ dns_zone_getrcvquerystats(dns_zone_t *zone) {
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
dns_zone_dialup(dns_zone_t *zone) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
zone_debuglog(zone, __func__, 3, "notify = %d, refresh = %d",
|
||||
DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALNOTIFY),
|
||||
DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALREFRESH));
|
||||
|
||||
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALNOTIFY)) {
|
||||
dns_zone_notify(zone);
|
||||
}
|
||||
if (zone->type != dns_zone_primary &&
|
||||
dns_remote_addresses(&zone->primaries) != NULL &&
|
||||
DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALREFRESH))
|
||||
{
|
||||
dns_zone_refresh(zone);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
dns_zone_setdialup(dns_zone_t *zone, dns_dialuptype_t dialup) {
|
||||
REQUIRE(DNS_ZONE_VALID(zone));
|
||||
|
||||
LOCK_ZONE(zone);
|
||||
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_DIALNOTIFY |
|
||||
DNS_ZONEFLG_DIALREFRESH |
|
||||
DNS_ZONEFLG_NOREFRESH);
|
||||
switch (dialup) {
|
||||
case dns_dialuptype_no:
|
||||
break;
|
||||
case dns_dialuptype_yes:
|
||||
DNS_ZONE_SETFLAG(zone, (DNS_ZONEFLG_DIALNOTIFY |
|
||||
DNS_ZONEFLG_DIALREFRESH |
|
||||
DNS_ZONEFLG_NOREFRESH));
|
||||
break;
|
||||
case dns_dialuptype_notify:
|
||||
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_DIALNOTIFY);
|
||||
break;
|
||||
case dns_dialuptype_notifypassive:
|
||||
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_DIALNOTIFY);
|
||||
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NOREFRESH);
|
||||
break;
|
||||
case dns_dialuptype_refresh:
|
||||
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_DIALREFRESH);
|
||||
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NOREFRESH);
|
||||
break;
|
||||
case dns_dialuptype_passive:
|
||||
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NOREFRESH);
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
UNLOCK_ZONE(zone);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
dns_zone_setkeydirectory(dns_zone_t *zone, const char *directory) {
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
@ -19943,10 +19861,9 @@ dns_zone_getxfr(dns_zone_t *zone, dns_xfrin_t **xfrp, bool *is_firstrefresh,
|
||||
* No operation is ongoing or pending, just check if the zone
|
||||
* needs a refresh by looking at the refresh and expire times.
|
||||
*/
|
||||
if (!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALREFRESH) &&
|
||||
(zone->type == dns_zone_secondary ||
|
||||
if (zone->type == dns_zone_secondary ||
|
||||
zone->type == dns_zone_mirror ||
|
||||
zone->type == dns_zone_stub))
|
||||
zone->type == dns_zone_stub)
|
||||
{
|
||||
isc_time_t now = isc_time_now();
|
||||
if (isc_time_compare(&now, &zone->refreshtime) >= 0 ||
|
||||
|
@ -1253,7 +1253,6 @@ check_options(const cfg_obj_t *options, const cfg_obj_t *config,
|
||||
* (scale * value) <= UINT32_MAX
|
||||
*/
|
||||
static intervaltable intervals[] = {
|
||||
{ "heartbeat-interval", 60, 28 * 24 * 60 }, /* 28 days */
|
||||
{ "interface-interval", 60, 28 * 24 * 60 }, /* 28 days */
|
||||
{ "max-transfer-idle-in", 60, 28 * 24 * 60 }, /* 28 days */
|
||||
{ "max-transfer-idle-out", 60, 28 * 24 * 60 }, /* 28 days */
|
||||
@ -3116,12 +3115,6 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
|
||||
"allow-update",
|
||||
"allow-update-forwarding",
|
||||
};
|
||||
static optionstable dialups[] = {
|
||||
{ "notify", CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY },
|
||||
{ "notify-passive", CFG_ZONE_SECONDARY },
|
||||
{ "passive", CFG_ZONE_SECONDARY | CFG_ZONE_STUB },
|
||||
{ "refresh", CFG_ZONE_SECONDARY | CFG_ZONE_STUB },
|
||||
};
|
||||
static const char *sources[] = {
|
||||
"transfer-source", "transfer-source-v6", "notify-source",
|
||||
"notify-source-v6", "parental-source", "parental-source-v6",
|
||||
@ -3745,42 +3738,6 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Check the excessively complicated "dialup" option.
|
||||
*/
|
||||
if (ztype == CFG_ZONE_PRIMARY || ztype == CFG_ZONE_SECONDARY ||
|
||||
ztype == CFG_ZONE_STUB)
|
||||
{
|
||||
obj = NULL;
|
||||
(void)cfg_map_get(zoptions, "dialup", &obj);
|
||||
if (obj != NULL && cfg_obj_isstring(obj)) {
|
||||
const char *str = cfg_obj_asstring(obj);
|
||||
for (i = 0; i < sizeof(dialups) / sizeof(dialups[0]);
|
||||
i++)
|
||||
{
|
||||
if (strcasecmp(dialups[i].name, str) != 0) {
|
||||
continue;
|
||||
}
|
||||
if ((dialups[i].allowed & ztype) == 0) {
|
||||
cfg_obj_log(obj, ISC_LOG_ERROR,
|
||||
"dialup type '%s' is not "
|
||||
"allowed in '%s' "
|
||||
"zone '%s'",
|
||||
str, typestr, znamestr);
|
||||
result = ISC_R_FAILURE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (i == sizeof(dialups) / sizeof(dialups[0])) {
|
||||
cfg_obj_log(obj, ISC_LOG_ERROR,
|
||||
"invalid dialup type '%s' in zone "
|
||||
"'%s'",
|
||||
str, znamestr);
|
||||
result = ISC_R_FAILURE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that forwarding is reasonable.
|
||||
*/
|
||||
|
@ -95,7 +95,6 @@ static cfg_type_t cfg_type_checkdstype;
|
||||
static cfg_type_t cfg_type_controls;
|
||||
static cfg_type_t cfg_type_controls_sockaddr;
|
||||
static cfg_type_t cfg_type_destinationlist;
|
||||
static cfg_type_t cfg_type_dialuptype;
|
||||
static cfg_type_t cfg_type_dlz;
|
||||
static cfg_type_t cfg_type_dnssecpolicy;
|
||||
static cfg_type_t cfg_type_dnstap;
|
||||
@ -1375,7 +1374,7 @@ static cfg_clausedef_t options_clauses[] = {
|
||||
#endif /* HAVE_GEOIP2 */
|
||||
{ "geoip-use-ecs", NULL, CFG_CLAUSEFLAG_ANCIENT },
|
||||
{ "has-old-clients", NULL, CFG_CLAUSEFLAG_ANCIENT },
|
||||
{ "heartbeat-interval", &cfg_type_uint32, CFG_CLAUSEFLAG_DEPRECATED },
|
||||
{ "heartbeat-interval", &cfg_type_uint32, CFG_CLAUSEFLAG_ANCIENT },
|
||||
{ "host-statistics", NULL, CFG_CLAUSEFLAG_ANCIENT },
|
||||
{ "host-statistics-max", NULL, CFG_CLAUSEFLAG_ANCIENT },
|
||||
{ "hostname", &cfg_type_qstringornone, 0 },
|
||||
@ -2402,9 +2401,9 @@ static cfg_clausedef_t zone_clauses[] = {
|
||||
{ "check-srv-cname", &cfg_type_checkmode, CFG_ZONE_PRIMARY },
|
||||
{ "check-svcb", &cfg_type_boolean, CFG_ZONE_PRIMARY },
|
||||
{ "check-wildcard", &cfg_type_boolean, CFG_ZONE_PRIMARY },
|
||||
{ "dialup", &cfg_type_dialuptype,
|
||||
{ "dialup", &cfg_type_void,
|
||||
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_STUB |
|
||||
CFG_CLAUSEFLAG_DEPRECATED },
|
||||
CFG_CLAUSEFLAG_ANCIENT },
|
||||
{ "dnssec-dnskey-kskonly", &cfg_type_boolean,
|
||||
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_CLAUSEFLAG_OBSOLETE },
|
||||
{ "dnssec-loadkeys-interval", &cfg_type_uint32,
|
||||
@ -3108,20 +3107,6 @@ doc_optional_keyvalue(cfg_printer_t *pctx, const cfg_type_t *type) {
|
||||
cfg_print_cstr(pctx, " ]");
|
||||
}
|
||||
|
||||
static const char *dialup_enums[] = { "notify", "notify-passive", "passive",
|
||||
"refresh", NULL };
|
||||
static isc_result_t
|
||||
parse_dialup_type(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
|
||||
return (cfg_parse_enum_or_other(pctx, type, &cfg_type_boolean, ret));
|
||||
}
|
||||
static void
|
||||
doc_dialup_type(cfg_printer_t *pctx, const cfg_type_t *type) {
|
||||
cfg_doc_enum_or_other(pctx, type, &cfg_type_boolean);
|
||||
}
|
||||
static cfg_type_t cfg_type_dialuptype = { "dialuptype", parse_dialup_type,
|
||||
cfg_print_ustring, doc_dialup_type,
|
||||
&cfg_rep_string, dialup_enums };
|
||||
|
||||
static const char *notify_enums[] = { "explicit", "master-only", "primary-only",
|
||||
NULL };
|
||||
static isc_result_t
|
||||
|
Loading…
x
Reference in New Issue
Block a user