2
0
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:
Evan Hunt 2023-07-03 16:22:04 -07:00
parent 99b18bab7e
commit 642a1b985d
33 changed files with 14 additions and 659 deletions

View File

@ -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\

View File

@ -75,7 +75,6 @@ struct named_server {
isc_timer_t *tat_timer;
uint32_t interface_interval;
uint32_t heartbeat_interval;
atomic_int reload_status;

View File

@ -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);

View File

@ -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);

View File

@ -96,7 +96,6 @@ TESTS = \
checkzone \
cookie \
database \
dialup \
digdelv \
dispatch \
dlzexternal \

View File

@ -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; };
};

View File

@ -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; };

View File

@ -56,7 +56,6 @@ options {
};
directory ".";
dump-file "named_dumpdb";
heartbeat-interval 30;
hostname none;
interface-interval 30;
listen-on port 90 {

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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";
};

View File

@ -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

View File

@ -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

View File

@ -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; };
};

View File

@ -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

View File

@ -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; };
};

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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> ]; ... };

View File

@ -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

View File

@ -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,

View File

@ -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);
/*%<

View File

@ -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);

View File

@ -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));

View File

@ -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 ||
zone->type == dns_zone_mirror ||
zone->type == dns_zone_stub))
if (zone->type == dns_zone_secondary ||
zone->type == dns_zone_mirror ||
zone->type == dns_zone_stub)
{
isc_time_t now = isc_time_now();
if (isc_time_compare(&now, &zone->refreshtime) >= 0 ||

View File

@ -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.
*/

View File

@ -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