implemented 'rndc reconfig'

This commit is contained in:
Andreas Gustafsson 2001-05-07 23:34:24 +00:00
parent fd59e59504
commit 9dafd058e3
19 changed files with 449 additions and 281 deletions

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: control.c,v 1.3 2001/04/11 20:37:33 bwelling Exp $ */
/* $Id: control.c,v 1.4 2001/05/07 23:33:58 gson Exp $ */
#include <config.h>
@ -79,6 +79,8 @@ ns_control_docommand(isccc_sexpr_t *message) {
*/
if (command_compare(command, NS_COMMAND_RELOAD)) {
result = ns_server_reloadcommand(ns_g_server, command);
} else if (command_compare(command, NS_COMMAND_RECONFIG)) {
result = ns_server_reconfigcommand(ns_g_server, command);
} else if (command_compare(command, NS_COMMAND_REFRESH)) {
result = ns_server_refreshcommand(ns_g_server, command);
} else if (command_compare(command, NS_COMMAND_HALT)) {
@ -89,13 +91,6 @@ ns_control_docommand(isccc_sexpr_t *message) {
ns_server_flushonshutdown(ns_g_server, ISC_TRUE);
isc_app_shutdown();
result = ISC_R_SUCCESS;
} else if (command_compare(command, NS_COMMAND_RELOADCONFIG) ||
command_compare(command, NS_COMMAND_RELOADZONES)) {
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_CONTROL, ISC_LOG_WARNING,
"unimplemented channel command '%s'",
command);
result = ISC_R_NOTIMPLEMENTED;
} else if (command_compare(command, NS_COMMAND_DUMPSTATS)) {
result = ns_server_dumpstats(ns_g_server);
} else if (command_compare(command, NS_COMMAND_QUERYLOG)) {

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: control.h,v 1.3 2001/04/11 20:37:36 bwelling Exp $ */
/* $Id: control.h,v 1.4 2001/05/07 23:34:01 gson Exp $ */
#ifndef NAMED_CONTROL_H
#define NAMED_CONTROL_H 1
@ -29,8 +29,7 @@
#define NS_COMMAND_STOP "stop"
#define NS_COMMAND_HALT "halt"
#define NS_COMMAND_RELOAD "reload"
#define NS_COMMAND_RELOADCONFIG "reload-config"
#define NS_COMMAND_RELOADZONES "reload-zones"
#define NS_COMMAND_RECONFIG "reconfig"
#define NS_COMMAND_REFRESH "refresh"
#define NS_COMMAND_DUMPSTATS "stats"
#define NS_COMMAND_QUERYLOG "querylog"

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: server.h,v 1.53 2001/04/11 20:37:37 bwelling Exp $ */
/* $Id: server.h,v 1.54 2001/05/07 23:34:02 gson Exp $ */
#ifndef NAMED_SERVER_H
#define NAMED_SERVER_H 1
@ -118,6 +118,12 @@ ns_server_reloadcommand(ns_server_t *server, char *args);
* Act on a "reload" command from the command channel.
*/
isc_result_t
ns_server_reconfigcommand(ns_server_t *server, char *args);
/*
* Act on a "reconfig" command from the command channel.
*/
isc_result_t
ns_server_refreshcommand(ns_server_t *server, char *args);
/*

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: server.c,v 1.318 2001/04/19 23:38:32 bwelling Exp $ */
/* $Id: server.c,v 1.319 2001/05/07 23:34:00 gson Exp $ */
#include <config.h>
@ -2065,6 +2065,28 @@ load_zones(ns_server_t *server, isc_boolean_t stop) {
return (result);
}
static isc_result_t
load_new_zones(ns_server_t *server, isc_boolean_t stop) {
isc_result_t result;
dns_view_t *view;
result = isc_task_beginexclusive(server->task);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
/*
* Load zone data from disk.
*/
for (view = ISC_LIST_HEAD(server->viewlist);
view != NULL;
view = ISC_LIST_NEXT(view, link))
{
CHECK(dns_view_loadnew(view, stop));
}
cleanup:
isc_task_endexclusive(server->task);
return (result);
}
static void
run_server(isc_task_t *task, isc_event_t *event) {
isc_result_t result;
@ -2309,6 +2331,54 @@ fatal(const char *msg, isc_result_t result) {
exit(1);
}
static isc_result_t
loadconfig(ns_server_t *server) {
isc_result_t result;
result = load_configuration(ns_g_lwresdonly ?
lwresd_g_conffile : ns_g_conffile,
server,
ISC_FALSE);
if (result != ISC_R_SUCCESS)
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
"reloading configuration failed: %s",
isc_result_totext(result));
return (result);
}
static void
reload(ns_server_t *server) {
isc_result_t result;
CHECK(loadconfig(server));
result = load_zones(server, ISC_FALSE);
if (result != ISC_R_SUCCESS) {
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
"reloading zones failed: %s",
isc_result_totext(result));
}
cleanup: ;
}
static void
reconfig(ns_server_t *server) {
isc_result_t result;
CHECK(loadconfig(server));
result = load_new_zones(server, ISC_FALSE);
if (result != ISC_R_SUCCESS) {
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
"loading new zones failed: %s",
isc_result_totext(result));
}
cleanup: ;
}
/*
* Handle a reload event (from SIGHUP).
*/
static void
ns_server_reload(isc_task_t *task, isc_event_t *event) {
isc_result_t result;
@ -2317,24 +2387,8 @@ ns_server_reload(isc_task_t *task, isc_event_t *event) {
INSIST(task = server->task);
UNUSED(task);
if (ns_g_lwresdonly)
result = load_configuration(lwresd_g_conffile, server,
ISC_FALSE);
else
result = load_configuration(ns_g_conffile, server, ISC_FALSE);
if (result != ISC_R_SUCCESS) {
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
"reloading configuration failed: %s",
isc_result_totext(result));
}
result = load_zones(server, ISC_FALSE);
if (result != ISC_R_SUCCESS) {
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
"reloading zones failed: %s",
isc_result_totext(result));
}
reload(server);
LOCK(&server->reload_event_lock);
INSIST(server->reload_event == NULL);
server->reload_event = event;
@ -2446,12 +2500,11 @@ ns_server_reloadcommand(ns_server_t *server, char *args) {
dns_zone_t *zone = NULL;
dns_zonetype_t type;
UNUSED(server);
result = zone_from_args(server, args, &zone);
if (result != ISC_R_SUCCESS)
return (result);
if (zone == NULL) {
ns_server_reloadwanted(server);
reload(server);
} else {
type = dns_zone_gettype(zone);
if (type == dns_zone_slave || type == dns_zone_stub)
@ -2463,6 +2516,17 @@ ns_server_reloadcommand(ns_server_t *server, char *args) {
return (ISC_R_SUCCESS);
}
/*
* Act on a "reconfig" command from the command channel.
*/
isc_result_t
ns_server_reconfigcommand(ns_server_t *server, char *args) {
UNUSED(args);
reconfig(server);
return (ISC_R_SUCCESS);
}
/*
* Act on a "refresh" command from the command channel.
*/

View file

@ -2,7 +2,7 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
"http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
<!-- File: $Id: Bv9ARM-book.xml,v 1.126 2001/04/26 18:05:04 gson Exp $ -->
<!-- File: $Id: Bv9ARM-book.xml,v 1.127 2001/05/07 23:34:13 gson Exp $ -->
<book>
<title>BIND 9 Administrator Reference Manual</title>
@ -729,20 +729,33 @@ of a server.</para>
<variablelist>
<varlistentry><term><userinput>reload</userinput></term>
<listitem><para>Reload configuration file and zones.</para></listitem></varlistentry>
<listitem><para>Reload configuration file and zones.</para></listitem>
</varlistentry>
<varlistentry><term><userinput>reload <replaceable>zone</replaceable>
<optional><replaceable>class</replaceable>
<optional><replaceable>view</replaceable></optional></optional></userinput></term>
<listitem><para>Reload the given zone.</para></listitem></varlistentry>
<listitem><para>Reload the given zone.</para></listitem>
</varlistentry>
<varlistentry><term><userinput>refresh <replaceable>zone</replaceable>
<optional><replaceable>class</replaceable>
<optional><replaceable>view</replaceable></optional></optional></userinput></term>
<listitem><para>Schedule zone maintenance for the given zone.</para></listitem></varlistentry>
<listitem><para>Schedule zone maintenance for the given zone.</para></listitem>
</varlistentry>
<varlistentry><term><userinput>reconfig</userinput></term>
<listitem><para>Reload the configuration file and load new zones,
but do not reload existing zone files even if they have changed.
This is faster than a full <command>reload</command> when there
is a large number of zones because it avoids the need to examine the
modification times of the zones files.
</para></listitem>
</varlistentry>
<varlistentry><term><userinput>stats</userinput></term>
<listitem><para>Write server statistics to the statistics file.</para></listitem></varlistentry>
<listitem><para>Write server statistics to the statistics file.</para></listitem>
</varlistentry>
<varlistentry><term><userinput>querylog</userinput></term>
<listitem><para>Toggle query logging.</para></listitem></varlistentry>

View file

@ -949,6 +949,25 @@ CLASS="replaceable"
><TT
CLASS="userinput"
><B
>reconfig</B
></TT
></DT
><DD
><P
>Reload the configuration file and load new zones,
but do not reload existing zone files even if they have changed.
This is faster than a full <B
CLASS="command"
>reload</B
> when there
is a large number of zones because it avoids the need to examine the
modification times of the zones files.
</P
></DD
><DT
><TT
CLASS="userinput"
><B
>stats</B
></TT
></DT
@ -1271,7 +1290,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN628"
NAME="AEN634"
>3.4.2. Signals</A
></H2
><P
@ -1284,7 +1303,7 @@ CLASS="command"
><DIV
CLASS="informaltable"
><A
NAME="AEN632"
NAME="AEN638"
></A
><P
></P

View file

@ -88,7 +88,7 @@ HREF="Bv9ARM.ch04.html#incremental_zone_transfers"
></DT
><DT
>4.3. <A
HREF="Bv9ARM.ch04.html#AEN692"
HREF="Bv9ARM.ch04.html#AEN698"
>Split DNS</A
></DT
><DT
@ -98,12 +98,12 @@ HREF="Bv9ARM.ch04.html#tsig"
></DT
><DT
>4.5. <A
HREF="Bv9ARM.ch04.html#AEN852"
HREF="Bv9ARM.ch04.html#AEN858"
>TKEY</A
></DT
><DT
>4.6. <A
HREF="Bv9ARM.ch04.html#AEN867"
HREF="Bv9ARM.ch04.html#AEN873"
>SIG(0)</A
></DT
><DT
@ -113,7 +113,7 @@ HREF="Bv9ARM.ch04.html#DNSSEC"
></DT
><DT
>4.8. <A
HREF="Bv9ARM.ch04.html#AEN952"
HREF="Bv9ARM.ch04.html#AEN958"
>IPv6 Support in <SPAN
CLASS="acronym"
>BIND</SPAN
@ -274,7 +274,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN692"
NAME="AEN698"
>4.3. Split DNS</A
></H1
><P
@ -672,7 +672,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN783"
NAME="AEN789"
>4.4.1. Generate Shared Keys for Each Pair of Hosts</A
></H2
><P
@ -690,7 +690,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN788"
NAME="AEN794"
>4.4.1.1. Automatic Generation</A
></H3
><P
@ -732,7 +732,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN799"
NAME="AEN805"
>4.4.1.2. Manual Generation</A
></H3
><P
@ -753,7 +753,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN804"
NAME="AEN810"
>4.4.2. Copying the Shared Secret to Both Machines</A
></H2
><P
@ -765,7 +765,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN807"
NAME="AEN813"
>4.4.3. Informing the Servers of the Key's Existence</A
></H2
><P
@ -813,7 +813,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN819"
NAME="AEN825"
>4.4.4. Instructing the Server to Use the Key</A
></H2
><P
@ -873,7 +873,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN835"
NAME="AEN841"
>4.4.5. TSIG Key Based Access Control</A
></H2
><P
@ -919,7 +919,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN848"
NAME="AEN854"
>4.4.6. Errors</A
></H2
><P
@ -948,7 +948,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN852"
NAME="AEN858"
>4.5. TKEY</A
></H1
><P
@ -1014,7 +1014,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN867"
NAME="AEN873"
>4.6. SIG(0)</A
></H1
><P
@ -1086,7 +1086,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN884"
NAME="AEN890"
>4.7.1. Generating Keys</A
></H2
><P
@ -1165,7 +1165,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN904"
NAME="AEN910"
>4.7.2. Creating a Keyset</A
></H2
><P
@ -1218,7 +1218,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN916"
NAME="AEN922"
>4.7.3. Signing the Child's Keyset</A
></H2
><P
@ -1268,7 +1268,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN929"
NAME="AEN935"
>4.7.4. Signing the Zone</A
></H2
><P
@ -1330,7 +1330,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN945"
NAME="AEN951"
>4.7.5. Configuring Servers</A
></H2
><P
@ -1357,7 +1357,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN952"
NAME="AEN958"
>4.8. IPv6 Support in <SPAN
CLASS="acronym"
>BIND</SPAN
@ -1417,7 +1417,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN968"
NAME="AEN974"
>4.8.1. Address Lookups Using AAAA Records</A
></H2
><P
@ -1439,7 +1439,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN973"
NAME="AEN979"
>4.8.2. Address Lookups Using A6 Records</A
></H2
><P
@ -1459,7 +1459,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN977"
NAME="AEN983"
>4.8.2.1. A6 Chains</A
></H3
><P
@ -1505,7 +1505,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN988"
NAME="AEN994"
>4.8.2.2. A6 Records for DNS Servers</A
></H3
><P
@ -1535,7 +1535,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN994"
NAME="AEN1000"
>4.8.3. Address to Name Lookups Using Nibble Format</A
></H2
><P
@ -1566,7 +1566,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1001"
NAME="AEN1007"
>4.8.4. Address to Name Lookups Using Bitstring Format</A
></H2
><P
@ -1593,7 +1593,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1008"
NAME="AEN1014"
>4.8.5. Using DNAME for Delegation of IPv6 Reverse Addresses</A
></H2
><P

View file

@ -81,7 +81,7 @@ CLASS="TOC"
></DT
><DT
>5.1. <A
HREF="Bv9ARM.ch05.html#AEN1028"
HREF="Bv9ARM.ch05.html#AEN1034"
>The Lightweight Resolver Library</A
></DT
><DT
@ -96,7 +96,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN1028"
NAME="AEN1034"
>5.1. The Lightweight Resolver Library</A
></H1
><P

View file

@ -91,7 +91,7 @@ HREF="Bv9ARM.ch06.html#Configuration_File_Grammar"
></DT
><DT
>6.3. <A
HREF="Bv9ARM.ch06.html#AEN3378"
HREF="Bv9ARM.ch06.html#AEN3384"
>Zone File</A
></DT
></DL
@ -145,7 +145,7 @@ file documentation:</P
><DIV
CLASS="informaltable"
><A
NAME="AEN1070"
NAME="AEN1076"
></A
><P
></P
@ -740,7 +740,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1233"
NAME="AEN1239"
>6.1.1.1. Syntax</A
></H3
><PRE
@ -771,7 +771,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1241"
NAME="AEN1247"
>6.1.1.2. Definition and Usage</A
></H3
><P
@ -882,7 +882,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1270"
NAME="AEN1276"
>6.1.2. Comment Syntax</A
></H2
><P
@ -901,7 +901,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1275"
NAME="AEN1281"
>6.1.2.1. Syntax</A
></H3
><P
@ -933,7 +933,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1284"
NAME="AEN1290"
>6.1.2.2. Definition and Usage</A
></H3
><P
@ -1043,7 +1043,7 @@ CLASS="acronym"
><DIV
CLASS="informaltable"
><A
NAME="AEN1308"
NAME="AEN1314"
></A
><P
></P
@ -1271,7 +1271,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1377"
NAME="AEN1383"
>6.2.1. <B
CLASS="command"
>acl</B
@ -1318,7 +1318,7 @@ CLASS="command"
><DIV
CLASS="informaltable"
><A
NAME="AEN1390"
NAME="AEN1396"
></A
><P
></P
@ -1416,7 +1416,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1419"
NAME="AEN1425"
>6.2.3. <B
CLASS="command"
>controls</B
@ -1455,7 +1455,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1428"
NAME="AEN1434"
>6.2.4. <B
CLASS="command"
>controls</B
@ -1560,7 +1560,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1454"
NAME="AEN1460"
>6.2.5. <B
CLASS="command"
>include</B
@ -1580,7 +1580,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1459"
NAME="AEN1465"
>6.2.6. <B
CLASS="command"
>include</B
@ -1610,7 +1610,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1466"
NAME="AEN1472"
>6.2.7. <B
CLASS="command"
>key</B
@ -1644,7 +1644,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1473"
NAME="AEN1479"
>6.2.8. <B
CLASS="command"
>key</B
@ -1698,7 +1698,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1485"
NAME="AEN1491"
>6.2.9. <B
CLASS="command"
>logging</B
@ -1858,7 +1858,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1525"
NAME="AEN1531"
>6.2.10. <B
CLASS="command"
>logging</B
@ -1920,7 +1920,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN1541"
NAME="AEN1547"
>6.2.10.1. The <B
CLASS="command"
>channel</B
@ -2356,7 +2356,7 @@ CLASS="acronym"
><DIV
CLASS="informaltable"
><A
NAME="AEN1644"
NAME="AEN1650"
></A
><P
></P
@ -2692,7 +2692,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1745"
NAME="AEN1751"
>6.2.11. <B
CLASS="command"
>lwres</B
@ -2789,7 +2789,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1769"
NAME="AEN1775"
>6.2.12. <B
CLASS="command"
>lwres</B
@ -2863,7 +2863,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1788"
NAME="AEN1794"
>6.2.13. <B
CLASS="command"
>options</B
@ -3786,7 +3786,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN1998"
NAME="AEN2004"
>6.2.14. <B
CLASS="command"
>options</B
@ -4682,7 +4682,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2272"
NAME="AEN2278"
>6.2.14.2. Forwarding</A
></H3
><P
@ -4886,7 +4886,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2337"
NAME="AEN2343"
>6.2.14.4. Interfaces</A
></H3
><P
@ -4981,7 +4981,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2363"
NAME="AEN2369"
>6.2.14.5. Query Address</A
></H3
><P
@ -5394,7 +5394,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2499"
NAME="AEN2505"
>6.2.14.7. Resource Limits</A
></H3
><P
@ -5531,7 +5531,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN2551"
NAME="AEN2557"
>6.2.14.8. Periodic Task Intervals</A
></H3
><P
@ -5898,7 +5898,7 @@ CLASS="command"
><DIV
CLASS="informaltable"
><A
NAME="AEN2639"
NAME="AEN2645"
></A
><P
></P
@ -6285,7 +6285,7 @@ number is identical to the number in the beginning line.</P
><DIV
CLASS="informaltable"
><A
NAME="AEN2751"
NAME="AEN2757"
></A
><P
></P
@ -6694,7 +6694,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2859"
NAME="AEN2865"
>6.2.17. <B
CLASS="command"
>trusted-keys</B
@ -6769,7 +6769,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2875"
NAME="AEN2881"
>6.2.18. <B
CLASS="command"
>trusted-keys</B
@ -6804,7 +6804,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2883"
NAME="AEN2889"
>6.2.19. <B
CLASS="command"
>view</B
@ -6867,7 +6867,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN2897"
NAME="AEN2903"
>6.2.20. <B
CLASS="command"
>view</B
@ -7497,7 +7497,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN3044"
NAME="AEN3050"
>6.2.22. <B
CLASS="command"
>zone</B
@ -7508,13 +7508,13 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN3047"
NAME="AEN3053"
>6.2.22.1. Zone Types</A
></H3
><DIV
CLASS="informaltable"
><A
NAME="AEN3049"
NAME="AEN3055"
></A
><P
></P
@ -7752,7 +7752,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN3104"
NAME="AEN3110"
>6.2.22.2. Class</A
></H3
><P
@ -7790,7 +7790,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN3114"
NAME="AEN3120"
>6.2.22.3. Zone Options</A
></H3
><P
@ -8431,7 +8431,7 @@ CLASS="varname"
><DIV
CLASS="informaltable"
><A
NAME="AEN3348"
NAME="AEN3354"
></A
><P
></P
@ -8538,7 +8538,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN3378"
NAME="AEN3384"
>6.3. Zone File</A
></H1
><DIV
@ -8559,7 +8559,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN3383"
NAME="AEN3389"
>6.3.1.1. Resource Records</A
></H3
><P
@ -8582,7 +8582,7 @@ HREF="Bv9ARM.ch06.html#rrset_ordering"
><DIV
CLASS="informaltable"
><A
NAME="AEN3389"
NAME="AEN3395"
></A
><P
></P
@ -8693,7 +8693,7 @@ or historical (h) and no longer in general use):</P
><DIV
CLASS="informaltable"
><A
NAME="AEN3421"
NAME="AEN3427"
></A
><P
></P
@ -9070,7 +9070,7 @@ are currently valid in the DNS:</P
><DIV
CLASS="informaltable"
><A
NAME="AEN3533"
NAME="AEN3539"
></A
><P
></P
@ -9122,7 +9122,7 @@ data that describes the resource:</P
><DIV
CLASS="informaltable"
><A
NAME="AEN3549"
NAME="AEN3555"
></A
><P
></P
@ -9299,7 +9299,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN3597"
NAME="AEN3603"
>6.3.1.2. Textual expression of RRs</A
></H3
><P
@ -9329,7 +9329,7 @@ knowledge of the typical representation for the data.</P
><DIV
CLASS="informaltable"
><A
NAME="AEN3604"
NAME="AEN3610"
></A
><P
></P
@ -9538,7 +9538,7 @@ domain names.</P
><DIV
CLASS="informaltable"
><A
NAME="AEN3670"
NAME="AEN3676"
></A
><P
></P
@ -9629,7 +9629,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN3698"
NAME="AEN3704"
>6.3.2. Discussion of MX Records</A
></H2
><P
@ -9662,7 +9662,7 @@ pointed to by the CNAME.</P
><DIV
CLASS="informaltable"
><A
NAME="AEN3704"
NAME="AEN3710"
></A
><P
></P
@ -9958,7 +9958,7 @@ used in a zone file.</P
><DIV
CLASS="informaltable"
><A
NAME="AEN3796"
NAME="AEN3802"
></A
><P
></P
@ -10041,7 +10041,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN3819"
NAME="AEN3825"
>6.3.4. Inverse Mapping in IPv4</A
></H2
><P
@ -10065,7 +10065,7 @@ CLASS="optional"
><DIV
CLASS="informaltable"
><A
NAME="AEN3824"
NAME="AEN3830"
></A
><P
></P
@ -10145,7 +10145,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN3846"
NAME="AEN3852"
>6.3.5. Other Zone File Directives</A
></H2
><P
@ -10170,7 +10170,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN3853"
NAME="AEN3859"
>6.3.5.1. The <B
CLASS="command"
>$ORIGIN</B
@ -10240,7 +10240,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN3873"
NAME="AEN3879"
>6.3.5.2. The <B
CLASS="command"
>$INCLUDE</B
@ -10322,7 +10322,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN3893"
NAME="AEN3899"
>6.3.5.3. The <B
CLASS="command"
>$TTL</B
@ -10362,7 +10362,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN3904"
NAME="AEN3910"
>6.3.6. <SPAN
CLASS="acronym"
>BIND</SPAN
@ -10441,7 +10441,7 @@ CLASS="literal"
><DIV
CLASS="informaltable"
><A
NAME="AEN3924"
NAME="AEN3930"
></A
><P
></P

View file

@ -86,7 +86,7 @@ HREF="Bv9ARM.ch07.html#Access_Control_Lists"
></DT
><DT
>7.2. <A
HREF="Bv9ARM.ch07.html#AEN3996"
HREF="Bv9ARM.ch07.html#AEN4002"
><B
CLASS="command"
>chroot</B
@ -188,7 +188,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN3996"
NAME="AEN4002"
>7.2. <B
CLASS="command"
>chroot</B
@ -267,7 +267,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN4019"
NAME="AEN4025"
>7.2.1. The <B
CLASS="command"
>chroot</B
@ -323,7 +323,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN4034"
NAME="AEN4040"
>7.2.2. Using the <B
CLASS="command"
>setuid</B

View file

@ -78,17 +78,17 @@ CLASS="TOC"
></DT
><DT
>8.1. <A
HREF="Bv9ARM.ch08.html#AEN4055"
HREF="Bv9ARM.ch08.html#AEN4061"
>Common Problems</A
></DT
><DT
>8.2. <A
HREF="Bv9ARM.ch08.html#AEN4060"
HREF="Bv9ARM.ch08.html#AEN4066"
>Incrementing and Changing the Serial Number</A
></DT
><DT
>8.3. <A
HREF="Bv9ARM.ch08.html#AEN4065"
HREF="Bv9ARM.ch08.html#AEN4071"
>Where Can I Get Help?</A
></DT
></DL
@ -98,7 +98,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN4055"
NAME="AEN4061"
>8.1. Common Problems</A
></H1
><DIV
@ -106,7 +106,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN4057"
NAME="AEN4063"
>8.1.1. It's not working; how can I figure out what's wrong?</A
></H2
><P
@ -122,7 +122,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN4060"
NAME="AEN4066"
>8.2. Incrementing and Changing the Serial Number</A
></H1
><P
@ -151,7 +151,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN4065"
NAME="AEN4071"
>8.3. Where Can I Get Help?</A
></H1
><P

View file

@ -72,7 +72,7 @@ CLASS="TOC"
></DT
><DT
>A.1. <A
HREF="Bv9ARM.ch09.html#AEN4081"
HREF="Bv9ARM.ch09.html#AEN4087"
>Acknowledgements</A
></DT
><DT
@ -85,7 +85,7 @@ CLASS="acronym"
></DT
><DT
>A.3. <A
HREF="Bv9ARM.ch09.html#AEN4122"
HREF="Bv9ARM.ch09.html#AEN4128"
>General <SPAN
CLASS="acronym"
>DNS</SPAN
@ -103,7 +103,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN4081"
NAME="AEN4087"
>A.1. Acknowledgements</A
></H1
><DIV
@ -111,7 +111,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN4083"
NAME="AEN4089"
>A.1.1. A Brief History of the <SPAN
CLASS="acronym"
>DNS</SPAN
@ -246,7 +246,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN4113"
NAME="AEN4119"
>A.2.1.1. HS = hesiod</A
></H3
><P
@ -267,7 +267,7 @@ CLASS="sect3"
><H3
CLASS="sect3"
><A
NAME="AEN4118"
NAME="AEN4124"
>A.2.1.2. CH = chaos</A
></H3
><P
@ -285,7 +285,7 @@ CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="AEN4122"
NAME="AEN4128"
>A.3. General <SPAN
CLASS="acronym"
>DNS</SPAN
@ -324,7 +324,7 @@ Unicast address scheme. For more information, see RFC 2374.</P
><DIV
CLASS="informaltable"
><A
NAME="AEN4133"
NAME="AEN4139"
></A
><P
></P
@ -543,7 +543,7 @@ VALIGN="MIDDLE"
<DIV
CLASS="informaltable"
><A
NAME="AEN4202"
NAME="AEN4208"
></A
><P
></P
@ -726,7 +726,7 @@ unicast address consists of:</P
><DIV
CLASS="informaltable"
><A
NAME="AEN4257"
NAME="AEN4263"
></A
><P
></P
@ -886,19 +886,19 @@ TARGET="_top"
</P
><H3
><A
NAME="AEN4301"
NAME="AEN4307"
>Bibliography</A
></H3
><H1
CLASS="bibliodiv"
><A
NAME="AEN4302"
NAME="AEN4308"
>Standards</A
></H1
><DIV
CLASS="biblioentry"
><A
NAME="AEN4304"
NAME="AEN4310"
></A
><P
>[RFC974]&nbsp;<SPAN
@ -915,7 +915,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4311"
NAME="AEN4317"
></A
><P
>[RFC1034]&nbsp;<SPAN
@ -932,7 +932,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4318"
NAME="AEN4324"
></A
><P
>[RFC1035]&nbsp;<SPAN
@ -956,7 +956,7 @@ NAME="proposed_standards"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4327"
NAME="AEN4333"
></A
><P
>[RFC2181]&nbsp;<SPAN
@ -976,7 +976,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4335"
NAME="AEN4341"
></A
><P
>[RFC2308]&nbsp;<SPAN
@ -996,7 +996,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4343"
NAME="AEN4349"
></A
><P
>[RFC1995]&nbsp;<SPAN
@ -1016,7 +1016,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4351"
NAME="AEN4357"
></A
><P
>[RFC1996]&nbsp;<SPAN
@ -1033,7 +1033,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4358"
NAME="AEN4364"
></A
><P
>[RFC2136]&nbsp;<SPAN
@ -1059,7 +1059,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4375"
NAME="AEN4381"
></A
><P
>[RFC2845]&nbsp;<SPAN
@ -1088,13 +1088,13 @@ STYLE="margin-left=0.5in"
><H1
CLASS="bibliodiv"
><A
NAME="AEN4394"
NAME="AEN4400"
>Proposed Standards Still Under Development</A
></H1
><DIV
CLASS="biblioentry"
><A
NAME="AEN4399"
NAME="AEN4405"
></A
><P
>[RFC1886]&nbsp;<SPAN
@ -1117,7 +1117,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4411"
NAME="AEN4417"
></A
><P
>[RFC2065]&nbsp;<SPAN
@ -1137,7 +1137,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4423"
NAME="AEN4429"
></A
><P
>[RFC2137]&nbsp;<SPAN
@ -1154,7 +1154,7 @@ STYLE="margin-left=0.5in"
><H1
CLASS="bibliodiv"
><A
NAME="AEN4431"
NAME="AEN4437"
>Other Important RFCs About <SPAN
CLASS="acronym"
>DNS</SPAN
@ -1163,7 +1163,7 @@ CLASS="acronym"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4434"
NAME="AEN4440"
></A
><P
>[RFC1535]&nbsp;<SPAN
@ -1183,7 +1183,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4442"
NAME="AEN4448"
></A
><P
>[RFC1536]&nbsp;<SPAN
@ -1215,7 +1215,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4463"
NAME="AEN4469"
></A
><P
>[RFC1982]&nbsp;<SPAN
@ -1235,13 +1235,13 @@ STYLE="margin-left=0.5in"
><H1
CLASS="bibliodiv"
><A
NAME="AEN4474"
NAME="AEN4480"
>Resource Record Types</A
></H1
><DIV
CLASS="biblioentry"
><A
NAME="AEN4476"
NAME="AEN4482"
></A
><P
>[RFC1183]&nbsp;<SPAN
@ -1270,7 +1270,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4494"
NAME="AEN4500"
></A
><P
>[RFC1706]&nbsp;<SPAN
@ -1293,7 +1293,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4506"
NAME="AEN4512"
></A
><P
>[RFC2168]&nbsp;<SPAN
@ -1314,7 +1314,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4517"
NAME="AEN4523"
></A
><P
>[RFC1876]&nbsp;<SPAN
@ -1341,7 +1341,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4534"
NAME="AEN4540"
></A
><P
>[RFC2052]&nbsp;<SPAN
@ -1365,7 +1365,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4546"
NAME="AEN4552"
></A
><P
>[RFC2163]&nbsp;<SPAN
@ -1386,7 +1386,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4554"
NAME="AEN4560"
></A
><P
>[RFC2230]&nbsp;<SPAN
@ -1406,7 +1406,7 @@ STYLE="margin-left=0.5in"
><H1
CLASS="bibliodiv"
><A
NAME="AEN4562"
NAME="AEN4568"
><SPAN
CLASS="acronym"
>DNS</SPAN
@ -1415,7 +1415,7 @@ CLASS="acronym"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4565"
NAME="AEN4571"
></A
><P
>[RFC1101]&nbsp;<SPAN
@ -1435,7 +1435,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4573"
NAME="AEN4579"
></A
><P
>[RFC1123]&nbsp;<SPAN
@ -1452,7 +1452,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4580"
NAME="AEN4586"
></A
><P
>[RFC1591]&nbsp;<SPAN
@ -1469,7 +1469,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4587"
NAME="AEN4593"
></A
><P
>[RFC2317]&nbsp;<SPAN
@ -1492,7 +1492,7 @@ STYLE="margin-left=0.5in"
><H1
CLASS="bibliodiv"
><A
NAME="AEN4601"
NAME="AEN4607"
><SPAN
CLASS="acronym"
>DNS</SPAN
@ -1501,7 +1501,7 @@ CLASS="acronym"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4604"
NAME="AEN4610"
></A
><P
>[RFC1537]&nbsp;<SPAN
@ -1521,7 +1521,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4612"
NAME="AEN4618"
></A
><P
>[RFC1912]&nbsp;<SPAN
@ -1541,7 +1541,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4620"
NAME="AEN4626"
></A
><P
>[RFC1912]&nbsp;<SPAN
@ -1561,7 +1561,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4628"
NAME="AEN4634"
></A
><P
>[RFC2010]&nbsp;<SPAN
@ -1581,7 +1581,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4639"
NAME="AEN4645"
></A
><P
>[RFC2219]&nbsp;<SPAN
@ -1604,7 +1604,7 @@ STYLE="margin-left=0.5in"
><H1
CLASS="bibliodiv"
><A
NAME="AEN4651"
NAME="AEN4657"
>Other <SPAN
CLASS="acronym"
>DNS</SPAN
@ -1613,7 +1613,7 @@ CLASS="acronym"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4657"
NAME="AEN4663"
></A
><P
>[RFC1464]&nbsp;<SPAN
@ -1630,7 +1630,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4664"
NAME="AEN4670"
></A
><P
>[RFC1713]&nbsp;<SPAN
@ -1650,7 +1650,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4672"
NAME="AEN4678"
></A
><P
>[RFC1794]&nbsp;<SPAN
@ -1670,7 +1670,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4680"
NAME="AEN4686"
></A
><P
>[RFC2240]&nbsp;<SPAN
@ -1687,7 +1687,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4687"
NAME="AEN4693"
></A
><P
>[RFC2345]&nbsp;<SPAN
@ -1710,7 +1710,7 @@ STYLE="margin-left=0.5in"
><DIV
CLASS="biblioentry"
><A
NAME="AEN4701"
NAME="AEN4707"
></A
><P
>[RFC2352]&nbsp;<SPAN
@ -1727,13 +1727,13 @@ STYLE="margin-left=0.5in"
><H1
CLASS="bibliodiv"
><A
NAME="AEN4708"
NAME="AEN4714"
>Obsolete and Unimplemented Experimental RRs</A
></H1
><DIV
CLASS="biblioentry"
><A
NAME="AEN4710"
NAME="AEN4716"
></A
><P
>[RFC1712]&nbsp;<SPAN
@ -1784,7 +1784,7 @@ CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN4731"
NAME="AEN4737"
>A.4.3. Other Documents About <SPAN
CLASS="acronym"
>BIND</SPAN
@ -1794,13 +1794,13 @@ CLASS="acronym"
></P
><H3
><A
NAME="AEN4735"
NAME="AEN4741"
>Bibliography</A
></H3
><DIV
CLASS="biblioentry"
><A
NAME="AEN4736"
NAME="AEN4742"
></A
><P
><SPAN

View file

@ -193,7 +193,7 @@ HREF="Bv9ARM.ch03.html#AEN371"
></DT
><DT
>3.4.2. <A
HREF="Bv9ARM.ch03.html#AEN628"
HREF="Bv9ARM.ch03.html#AEN634"
>Signals</A
></DT
></DL
@ -228,7 +228,7 @@ HREF="Bv9ARM.ch04.html#incremental_zone_transfers"
></DT
><DT
>4.3. <A
HREF="Bv9ARM.ch04.html#AEN692"
HREF="Bv9ARM.ch04.html#AEN698"
>Split DNS</A
></DT
><DT
@ -240,44 +240,44 @@ HREF="Bv9ARM.ch04.html#tsig"
><DL
><DT
>4.4.1. <A
HREF="Bv9ARM.ch04.html#AEN783"
HREF="Bv9ARM.ch04.html#AEN789"
>Generate Shared Keys for Each Pair of Hosts</A
></DT
><DT
>4.4.2. <A
HREF="Bv9ARM.ch04.html#AEN804"
HREF="Bv9ARM.ch04.html#AEN810"
>Copying the Shared Secret to Both Machines</A
></DT
><DT
>4.4.3. <A
HREF="Bv9ARM.ch04.html#AEN807"
HREF="Bv9ARM.ch04.html#AEN813"
>Informing the Servers of the Key's Existence</A
></DT
><DT
>4.4.4. <A
HREF="Bv9ARM.ch04.html#AEN819"
HREF="Bv9ARM.ch04.html#AEN825"
>Instructing the Server to Use the Key</A
></DT
><DT
>4.4.5. <A
HREF="Bv9ARM.ch04.html#AEN835"
HREF="Bv9ARM.ch04.html#AEN841"
>TSIG Key Based Access Control</A
></DT
><DT
>4.4.6. <A
HREF="Bv9ARM.ch04.html#AEN848"
HREF="Bv9ARM.ch04.html#AEN854"
>Errors</A
></DT
></DL
></DD
><DT
>4.5. <A
HREF="Bv9ARM.ch04.html#AEN852"
HREF="Bv9ARM.ch04.html#AEN858"
>TKEY</A
></DT
><DT
>4.6. <A
HREF="Bv9ARM.ch04.html#AEN867"
HREF="Bv9ARM.ch04.html#AEN873"
>SIG(0)</A
></DT
><DT
@ -289,34 +289,34 @@ HREF="Bv9ARM.ch04.html#DNSSEC"
><DL
><DT
>4.7.1. <A
HREF="Bv9ARM.ch04.html#AEN884"
HREF="Bv9ARM.ch04.html#AEN890"
>Generating Keys</A
></DT
><DT
>4.7.2. <A
HREF="Bv9ARM.ch04.html#AEN904"
HREF="Bv9ARM.ch04.html#AEN910"
>Creating a Keyset</A
></DT
><DT
>4.7.3. <A
HREF="Bv9ARM.ch04.html#AEN916"
HREF="Bv9ARM.ch04.html#AEN922"
>Signing the Child's Keyset</A
></DT
><DT
>4.7.4. <A
HREF="Bv9ARM.ch04.html#AEN929"
HREF="Bv9ARM.ch04.html#AEN935"
>Signing the Zone</A
></DT
><DT
>4.7.5. <A
HREF="Bv9ARM.ch04.html#AEN945"
HREF="Bv9ARM.ch04.html#AEN951"
>Configuring Servers</A
></DT
></DL
></DD
><DT
>4.8. <A
HREF="Bv9ARM.ch04.html#AEN952"
HREF="Bv9ARM.ch04.html#AEN958"
>IPv6 Support in <SPAN
CLASS="acronym"
>BIND</SPAN
@ -326,27 +326,27 @@ CLASS="acronym"
><DL
><DT
>4.8.1. <A
HREF="Bv9ARM.ch04.html#AEN968"
HREF="Bv9ARM.ch04.html#AEN974"
>Address Lookups Using AAAA Records</A
></DT
><DT
>4.8.2. <A
HREF="Bv9ARM.ch04.html#AEN973"
HREF="Bv9ARM.ch04.html#AEN979"
>Address Lookups Using A6 Records</A
></DT
><DT
>4.8.3. <A
HREF="Bv9ARM.ch04.html#AEN994"
HREF="Bv9ARM.ch04.html#AEN1000"
>Address to Name Lookups Using Nibble Format</A
></DT
><DT
>4.8.4. <A
HREF="Bv9ARM.ch04.html#AEN1001"
HREF="Bv9ARM.ch04.html#AEN1007"
>Address to Name Lookups Using Bitstring Format</A
></DT
><DT
>4.8.5. <A
HREF="Bv9ARM.ch04.html#AEN1008"
HREF="Bv9ARM.ch04.html#AEN1014"
>Using DNAME for Delegation of IPv6 Reverse Addresses</A
></DT
></DL
@ -365,7 +365,7 @@ CLASS="acronym"
><DL
><DT
>5.1. <A
HREF="Bv9ARM.ch05.html#AEN1028"
HREF="Bv9ARM.ch05.html#AEN1034"
>The Lightweight Resolver Library</A
></DT
><DT
@ -399,7 +399,7 @@ HREF="Bv9ARM.ch06.html#address_match_lists"
></DT
><DT
>6.1.2. <A
HREF="Bv9ARM.ch06.html#AEN1270"
HREF="Bv9ARM.ch06.html#AEN1276"
>Comment Syntax</A
></DT
></DL
@ -413,7 +413,7 @@ HREF="Bv9ARM.ch06.html#Configuration_File_Grammar"
><DL
><DT
>6.2.1. <A
HREF="Bv9ARM.ch06.html#AEN1377"
HREF="Bv9ARM.ch06.html#AEN1383"
><B
CLASS="command"
>acl</B
@ -430,7 +430,7 @@ Usage</A
></DT
><DT
>6.2.3. <A
HREF="Bv9ARM.ch06.html#AEN1419"
HREF="Bv9ARM.ch06.html#AEN1425"
><B
CLASS="command"
>controls</B
@ -438,7 +438,7 @@ CLASS="command"
></DT
><DT
>6.2.4. <A
HREF="Bv9ARM.ch06.html#AEN1428"
HREF="Bv9ARM.ch06.html#AEN1434"
><B
CLASS="command"
>controls</B
@ -447,7 +447,7 @@ Usage</A
></DT
><DT
>6.2.5. <A
HREF="Bv9ARM.ch06.html#AEN1454"
HREF="Bv9ARM.ch06.html#AEN1460"
><B
CLASS="command"
>include</B
@ -455,7 +455,7 @@ CLASS="command"
></DT
><DT
>6.2.6. <A
HREF="Bv9ARM.ch06.html#AEN1459"
HREF="Bv9ARM.ch06.html#AEN1465"
><B
CLASS="command"
>include</B
@ -464,7 +464,7 @@ Usage</A
></DT
><DT
>6.2.7. <A
HREF="Bv9ARM.ch06.html#AEN1466"
HREF="Bv9ARM.ch06.html#AEN1472"
><B
CLASS="command"
>key</B
@ -472,7 +472,7 @@ CLASS="command"
></DT
><DT
>6.2.8. <A
HREF="Bv9ARM.ch06.html#AEN1473"
HREF="Bv9ARM.ch06.html#AEN1479"
><B
CLASS="command"
>key</B
@ -480,7 +480,7 @@ CLASS="command"
></DT
><DT
>6.2.9. <A
HREF="Bv9ARM.ch06.html#AEN1485"
HREF="Bv9ARM.ch06.html#AEN1491"
><B
CLASS="command"
>logging</B
@ -488,7 +488,7 @@ CLASS="command"
></DT
><DT
>6.2.10. <A
HREF="Bv9ARM.ch06.html#AEN1525"
HREF="Bv9ARM.ch06.html#AEN1531"
><B
CLASS="command"
>logging</B
@ -496,7 +496,7 @@ CLASS="command"
></DT
><DT
>6.2.11. <A
HREF="Bv9ARM.ch06.html#AEN1745"
HREF="Bv9ARM.ch06.html#AEN1751"
><B
CLASS="command"
>lwres</B
@ -504,7 +504,7 @@ CLASS="command"
></DT
><DT
>6.2.12. <A
HREF="Bv9ARM.ch06.html#AEN1769"
HREF="Bv9ARM.ch06.html#AEN1775"
><B
CLASS="command"
>lwres</B
@ -512,7 +512,7 @@ CLASS="command"
></DT
><DT
>6.2.13. <A
HREF="Bv9ARM.ch06.html#AEN1788"
HREF="Bv9ARM.ch06.html#AEN1794"
><B
CLASS="command"
>options</B
@ -520,7 +520,7 @@ CLASS="command"
></DT
><DT
>6.2.14. <A
HREF="Bv9ARM.ch06.html#AEN1998"
HREF="Bv9ARM.ch06.html#AEN2004"
><B
CLASS="command"
>options</B
@ -545,7 +545,7 @@ and Usage</A
></DT
><DT
>6.2.17. <A
HREF="Bv9ARM.ch06.html#AEN2859"
HREF="Bv9ARM.ch06.html#AEN2865"
><B
CLASS="command"
>trusted-keys</B
@ -553,7 +553,7 @@ CLASS="command"
></DT
><DT
>6.2.18. <A
HREF="Bv9ARM.ch06.html#AEN2875"
HREF="Bv9ARM.ch06.html#AEN2881"
><B
CLASS="command"
>trusted-keys</B
@ -562,7 +562,7 @@ and Usage</A
></DT
><DT
>6.2.19. <A
HREF="Bv9ARM.ch06.html#AEN2883"
HREF="Bv9ARM.ch06.html#AEN2889"
><B
CLASS="command"
>view</B
@ -570,7 +570,7 @@ CLASS="command"
></DT
><DT
>6.2.20. <A
HREF="Bv9ARM.ch06.html#AEN2897"
HREF="Bv9ARM.ch06.html#AEN2903"
><B
CLASS="command"
>view</B
@ -587,7 +587,7 @@ Statement Grammar</A
></DT
><DT
>6.2.22. <A
HREF="Bv9ARM.ch06.html#AEN3044"
HREF="Bv9ARM.ch06.html#AEN3050"
><B
CLASS="command"
>zone</B
@ -597,7 +597,7 @@ CLASS="command"
></DD
><DT
>6.3. <A
HREF="Bv9ARM.ch06.html#AEN3378"
HREF="Bv9ARM.ch06.html#AEN3384"
>Zone File</A
></DT
><DD
@ -609,7 +609,7 @@ HREF="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them"
></DT
><DT
>6.3.2. <A
HREF="Bv9ARM.ch06.html#AEN3698"
HREF="Bv9ARM.ch06.html#AEN3704"
>Discussion of MX Records</A
></DT
><DT
@ -619,17 +619,17 @@ HREF="Bv9ARM.ch06.html#Setting_TTLs"
></DT
><DT
>6.3.4. <A
HREF="Bv9ARM.ch06.html#AEN3819"
HREF="Bv9ARM.ch06.html#AEN3825"
>Inverse Mapping in IPv4</A
></DT
><DT
>6.3.5. <A
HREF="Bv9ARM.ch06.html#AEN3846"
HREF="Bv9ARM.ch06.html#AEN3852"
>Other Zone File Directives</A
></DT
><DT
>6.3.6. <A
HREF="Bv9ARM.ch06.html#AEN3904"
HREF="Bv9ARM.ch06.html#AEN3910"
><SPAN
CLASS="acronym"
>BIND</SPAN
@ -659,7 +659,7 @@ HREF="Bv9ARM.ch07.html#Access_Control_Lists"
></DT
><DT
>7.2. <A
HREF="Bv9ARM.ch07.html#AEN3996"
HREF="Bv9ARM.ch07.html#AEN4002"
><B
CLASS="command"
>chroot</B
@ -673,7 +673,7 @@ UNIX servers)</A
><DL
><DT
>7.2.1. <A
HREF="Bv9ARM.ch07.html#AEN4019"
HREF="Bv9ARM.ch07.html#AEN4025"
>The <B
CLASS="command"
>chroot</B
@ -681,7 +681,7 @@ CLASS="command"
></DT
><DT
>7.2.2. <A
HREF="Bv9ARM.ch07.html#AEN4034"
HREF="Bv9ARM.ch07.html#AEN4040"
>Using the <B
CLASS="command"
>setuid</B
@ -705,26 +705,26 @@ HREF="Bv9ARM.ch08.html"
><DL
><DT
>8.1. <A
HREF="Bv9ARM.ch08.html#AEN4055"
HREF="Bv9ARM.ch08.html#AEN4061"
>Common Problems</A
></DT
><DD
><DL
><DT
>8.1.1. <A
HREF="Bv9ARM.ch08.html#AEN4057"
HREF="Bv9ARM.ch08.html#AEN4063"
>It's not working; how can I figure out what's wrong?</A
></DT
></DL
></DD
><DT
>8.2. <A
HREF="Bv9ARM.ch08.html#AEN4060"
HREF="Bv9ARM.ch08.html#AEN4066"
>Incrementing and Changing the Serial Number</A
></DT
><DT
>8.3. <A
HREF="Bv9ARM.ch08.html#AEN4065"
HREF="Bv9ARM.ch08.html#AEN4071"
>Where Can I Get Help?</A
></DT
></DL
@ -738,14 +738,14 @@ HREF="Bv9ARM.ch09.html"
><DL
><DT
>A.1. <A
HREF="Bv9ARM.ch09.html#AEN4081"
HREF="Bv9ARM.ch09.html#AEN4087"
>Acknowledgements</A
></DT
><DD
><DL
><DT
>A.1.1. <A
HREF="Bv9ARM.ch09.html#AEN4083"
HREF="Bv9ARM.ch09.html#AEN4089"
>A Brief History of the <SPAN
CLASS="acronym"
>DNS</SPAN
@ -775,7 +775,7 @@ HREF="Bv9ARM.ch09.html#classes_of_resource_records"
></DD
><DT
>A.3. <A
HREF="Bv9ARM.ch09.html#AEN4122"
HREF="Bv9ARM.ch09.html#AEN4128"
>General <SPAN
CLASS="acronym"
>DNS</SPAN
@ -809,7 +809,7 @@ HREF="Bv9ARM.ch09.html#internet_drafts"
></DT
><DT
>A.4.3. <A
HREF="Bv9ARM.ch09.html#AEN4731"
HREF="Bv9ARM.ch09.html#AEN4737"
>Other Documents About <SPAN
CLASS="acronym"
>BIND</SPAN

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: view.h,v 1.70 2001/04/11 20:37:50 bwelling Exp $ */
/* $Id: view.h,v 1.71 2001/05/07 23:34:09 gson Exp $ */
#ifndef DNS_VIEW_H
#define DNS_VIEW_H 1
@ -581,10 +581,17 @@ dns_view_findzone(dns_view_t *view, dns_name_t *name, dns_zone_t **zonep);
isc_result_t
dns_view_load(dns_view_t *view, isc_boolean_t stop);
isc_result_t
dns_view_loadnew(dns_view_t *view, isc_boolean_t stop);
/*
* Load all zones attached to this view. If 'stop' is ISC_TRUE,
* stop on the first error and return it. If 'stop'
* is ISC_FALSE, ignore errors.
* Load zones attached to this view. dns_view_load() loads
* all zones whose master file has changed since the last
* load; dns_view_loadnew() loads only zones that have never
* been loaded.
*
* If 'stop' is ISC_TRUE, stop on the first error and return it.
* If 'stop' is ISC_FALSE, ignore errors.
*
* Requires:
*

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: zone.h,v 1.103 2001/05/04 23:57:22 gson Exp $ */
/* $Id: zone.h,v 1.104 2001/05/07 23:34:10 gson Exp $ */
#ifndef DNS_ZONE_H
#define DNS_ZONE_H 1
@ -205,11 +205,18 @@ dns_zone_getfile(dns_zone_t *zone);
isc_result_t
dns_zone_load(dns_zone_t *zone);
isc_result_t
dns_zone_loadnew(dns_zone_t *zone);
/*
* Cause the database to be loaded from its backing store.
* Confirm that the mimimum requirements for the zone type are
* met, otherwise DNS_R_BADZONE is return.
*
* dns_zone_loadnew() only loads zones that are not yet loaded.
* dns_zone_load() also loads zones that are already loaded and
* and whose master file has changed since the last load.
*
* Require:
* 'zone' to be a valid zone.
*

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: zt.h,v 1.24 2001/01/09 21:53:44 bwelling Exp $ */
/* $Id: zt.h,v 1.25 2001/05/07 23:34:11 gson Exp $ */
#ifndef DNS_ZT_H
#define DNS_ZT_H 1
@ -129,11 +129,18 @@ dns_zt_attach(dns_zt_t *zt, dns_zt_t **ztp);
isc_result_t
dns_zt_load(dns_zt_t *zt, isc_boolean_t stop);
isc_result_t
dns_zt_loadnew(dns_zt_t *zt, isc_boolean_t stop);
/*
* Load all zones in the table. If 'stop' is ISC_TRUE,
* stop on the first error and return it. If 'stop'
* is ISC_FALSE, ignore errors.
*
* dns_zt_loadnew() only loads zones that are not yet loaded.
* dns_zt_load() also loads zones that are already loaded and
* and whose master file has changed since the last load.
*
* Requires:
* 'zt' to be valid
*/

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: view.c,v 1.99 2001/04/11 20:37:45 bwelling Exp $ */
/* $Id: view.c,v 1.100 2001/05/07 23:34:04 gson Exp $ */
#include <config.h>
@ -1035,6 +1035,14 @@ dns_view_load(dns_view_t *view, isc_boolean_t stop) {
return (dns_zt_load(view->zonetable, stop));
}
isc_result_t
dns_view_loadnew(dns_view_t *view, isc_boolean_t stop) {
REQUIRE(DNS_VIEW_VALID(view));
return (dns_zt_loadnew(view->zonetable, stop));
}
isc_result_t
dns_view_gettsig(dns_view_t *view, dns_name_t *keyname, dns_tsigkey_t **keyp)
{

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: zone.c,v 1.320 2001/04/27 02:34:18 marka Exp $ */
/* $Id: zone.c,v 1.321 2001/05/07 23:34:05 gson Exp $ */
#include <config.h>
@ -254,6 +254,9 @@ struct dns_zone {
#define DNS_ZONE_OPTION(z,o) (((z)->options & (o)) != 0)
/* Flags for zone_load() */
#define DNS_ZONELOADFLAG_NOSTAT 0x00000001U /* Do not stat() master files */
struct dns_zonemgr {
unsigned int magic;
isc_mem_t * mctx;
@ -876,8 +879,8 @@ zone_isdynamic(dns_zone_t *zone) {
}
isc_result_t
dns_zone_load(dns_zone_t *zone) {
static isc_result_t
zone_load(dns_zone_t *zone, unsigned int flags) {
isc_result_t result;
isc_stdtime_t now;
isc_time_t loadtime, filetime;
@ -918,27 +921,36 @@ dns_zone_load(dns_zone_t *zone) {
goto cleanup;
}
dns_zone_log(zone, ISC_LOG_DEBUG(1), "starting load");
/*
* Don't do the load if the file that stores the zone is older
* than the last time the zone was loaded. If the zone has not
* been loaded yet, zone->loadtime will be the epoch.
*/
if (zone->masterfile != NULL &&
! DNS_ZONE_FLAG(zone, DNS_ZONEFLG_HASINCLUDE)) {
result = isc_file_getmodtime(zone->masterfile, &filetime);
if (result == ISC_R_SUCCESS &&
!isc_time_isepoch(&zone->loadtime) &&
isc_time_compare(&filetime, &zone->loadtime) < 0) {
dns_zone_log(zone, ISC_LOG_DEBUG(1),
"skipping load: master file older "
"than last load");
if (zone->masterfile != NULL && ! isc_time_isepoch(&zone->loadtime)) {
/*
* The file is already loaded. If we are just doing a
* "rndc reconfig", we are done.
*/
if ((flags & DNS_ZONELOADFLAG_NOSTAT) != 0) {
result = ISC_R_SUCCESS;
goto cleanup;
}
if (! DNS_ZONE_FLAG(zone, DNS_ZONEFLG_HASINCLUDE)) {
result = isc_file_getmodtime(zone->masterfile,
&filetime);
if (result == ISC_R_SUCCESS &&
isc_time_compare(&filetime, &zone->loadtime) < 0) {
dns_zone_log(zone, ISC_LOG_DEBUG(1),
"skipping load: master file older "
"than last load");
result = ISC_R_SUCCESS;
goto cleanup;
}
}
}
dns_zone_log(zone, ISC_LOG_DEBUG(1), "starting load");
/*
* Store the current time before the zone is loaded, so that if the
* file changes between the time of the load and the time that
@ -995,6 +1007,16 @@ dns_zone_load(dns_zone_t *zone) {
return (result);
}
isc_result_t
dns_zone_load(dns_zone_t *zone) {
return (zone_load(zone, 0));
}
isc_result_t
dns_zone_loadnew(dns_zone_t *zone) {
return (zone_load(zone, DNS_ZONELOADFLAG_NOSTAT));
}
static void
zone_gotreadhandle(isc_task_t *task, isc_event_t *event) {
dns_load_t *load = event->ev_arg;

View file

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: zt.c,v 1.29 2001/02/27 02:54:11 bwelling Exp $ */
/* $Id: zt.c,v 1.30 2001/05/07 23:34:07 gson Exp $ */
#include <config.h>
@ -48,6 +48,9 @@ auto_detach(void *, void *);
static isc_result_t
load(dns_zone_t *zone, void *uap);
static isc_result_t
loadnew(dns_zone_t *zone, void *uap);
isc_result_t
dns_zt_create(isc_mem_t *mctx, dns_rdataclass_t rdclass, dns_zt_t **ztp) {
dns_zt_t *zt;
@ -235,6 +238,24 @@ load(dns_zone_t *zone, void *uap) {
return (dns_zone_load(zone));
}
isc_result_t
dns_zt_loadnew(dns_zt_t *zt, isc_boolean_t stop) {
isc_result_t result;
REQUIRE(VALID_ZT(zt));
RWLOCK(&zt->rwlock, isc_rwlocktype_read);
result = dns_zt_apply(zt, stop, loadnew, NULL);
RWUNLOCK(&zt->rwlock, isc_rwlocktype_read);
return (result);
}
static isc_result_t
loadnew(dns_zone_t *zone, void *uap) {
UNUSED(uap);
return (dns_zone_loadnew(zone));
}
isc_result_t
dns_zt_apply(dns_zt_t *zt, isc_boolean_t stop,
isc_result_t (*action)(dns_zone_t *, void *), void *uap)