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\
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\
isc_timer_t *tat_timer;
uint32_t interface_interval;
- uint32_t heartbeat_interval;
atomic_int reload_status;
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);
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);
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);
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);
(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;
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;
&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);
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);
}
isc_timer_destroy(&server->interface_timer);
- isc_timer_destroy(&server->heartbeat_timer);
isc_timer_destroy(&server->pps_timer);
isc_timer_destroy(&server->tat_timer);
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;
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);
checkzone \
cookie \
database \
- dialup \
digdelv \
dispatch \
dlzexternal \
+++ /dev/null
-/*
- * 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; };
-};
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; };
};
directory ".";
dump-file "named_dumpdb";
- heartbeat-interval 30;
hostname none;
interface-interval 30;
listen-on port 90 {
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
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
+++ /dev/null
-#!/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
+++ /dev/null
-; 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
+++ /dev/null
-/*
- * 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";
-};
+++ /dev/null
-; 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
+++ /dev/null
-; 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
+++ /dev/null
-/*
- * 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; };
-};
+++ /dev/null
-; 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
+++ /dev/null
-/*
- * 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; };
-};
+++ /dev/null
-#!/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
+++ /dev/null
-# 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
: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.
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.
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.
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
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>;
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
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
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
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> ]; ... };
#Obsolete
deallocate - on - exit no;
- dialup yes;
-
#Obsolete
fake - iquery no;
max - ixfr - log - size 20m;
max - cache - size 1m;
- heartbeat - interval 1001;
interface - interval 1002;
statistics - interval 1003;
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
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,
*\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);
/*%<
* 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);
}
}
-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));
* 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,
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);
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) {
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.
*/
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;
}
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,
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;
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
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,
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) &&
/*
* 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,
}
}
-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;
* 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 ||
* (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 */
"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",
}
}
- /*
- * 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.
*/
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;
#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 },
{ "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,
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