Commit 1672cff9 authored by Mark Andrews's avatar Mark Andrews
Browse files

1684. [func] ixfr-from-differences now takes master and slave in

                        addition to yes and no at the options and view levels.
parent 276f1d9a
......@@ -167,7 +167,8 @@
1685. [bug] Change #1679 loop tests weren't quite right.
1684. [placeholder] rt10704
1684. [func] ixfr-from-differences now takes master and slave in
addition to yes and no at the options and view levels.
1683. [bug] dig +sigchase could leak memory. [RT #11445]
......
......@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: zoneconf.c,v 1.113 2004/10/07 02:15:12 marka Exp $ */
/* $Id: zoneconf.c,v 1.114 2004/10/14 00:49:33 marka Exp $ */
#include <config.h>
......@@ -337,6 +337,7 @@ ns_zone_configure(cfg_obj_t *config, cfg_obj_t *vconfig, cfg_obj_t *zconfig,
isc_boolean_t alt;
dns_view_t *view;
isc_boolean_t check = ISC_FALSE, fail = ISC_FALSE;
isc_boolean_t ixfrdiff;
i = 0;
if (zconfig != NULL) {
......@@ -535,8 +536,17 @@ ns_zone_configure(cfg_obj_t *config, cfg_obj_t *vconfig, cfg_obj_t *zconfig,
obj = NULL;
result = ns_config_get(maps, "ixfr-from-differences", &obj);
INSIST(result == ISC_R_SUCCESS);
dns_zone_setoption(zone, DNS_ZONEOPT_IXFRFROMDIFFS,
cfg_obj_asboolean(obj));
if (cfg_obj_isboolean(obj))
ixfrdiff = cfg_obj_asboolean(obj);
else if (strcasecmp(cfg_obj_asstring(obj), "master") &&
ztype == dns_zone_master)
ixfrdiff = ISC_TRUE;
else if (strcasecmp(cfg_obj_asstring(obj), "slave") &&
ztype == dns_zone_slave)
ixfrdiff = ISC_TRUE;
else
ixfrdiff = ISC_FALSE;
dns_zone_setoption(zone, DNS_ZONEOPT_IXFRFROMDIFFS, ixfrdiff);
checknames(ztype, maps, &obj);
INSIST(obj != NULL);
......
......@@ -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.255 2004/10/07 02:15:12 marka Exp $ -->
<!-- File: $Id: Bv9ARM-book.xml,v 1.256 2004/10/14 00:49:34 marka Exp $ -->
<book>
<title>BIND 9 Administrator Reference Manual</title>
......@@ -3318,6 +3318,11 @@ will be of a size comparable to the combined size of the
old and new zone version, and the server will need to
temporarily allocate memory to hold this complete
difference set.
</para><para>
<command>ixfr-from-differences</command> also accepts <command>master</command>
and <command>slave</command> at the view and options levels which causes
<command>ixfr-from-differences</command> to apply to all <command>master</command>
or <command>slave</command> zones respectively.
</para></listitem></varlistentry>
<varlistentry><term><command>multi-master</command></term>
......
......@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: namedconf.c,v 1.37 2004/10/07 02:15:14 marka Exp $ */
/* $Id: namedconf.c,v 1.38 2004/10/14 00:49:34 marka Exp $ */
#include <config.h>
......@@ -70,12 +70,13 @@ static cfg_type_t cfg_type_acl;
static cfg_type_t cfg_type_addrmatchelt;
static cfg_type_t cfg_type_bracketed_aml;
static cfg_type_t cfg_type_bracketed_namesockaddrkeylist;
static cfg_type_t cfg_type_bracketed_sockaddrnameportlist;
static cfg_type_t cfg_type_bracketed_sockaddrlist;
static cfg_type_t cfg_type_bracketed_sockaddrnameportlist;
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_ixfrdifftype;
static cfg_type_t cfg_type_key;
static cfg_type_t cfg_type_logfile;
static cfg_type_t cfg_type_logging;
......@@ -729,6 +730,7 @@ view_clauses[] = {
{ "dnssec-lookaside", &cfg_type_lookaside, CFG_CLAUSEFLAG_MULTI },
{ "dnssec-must-be-secure", &cfg_type_mustbesecure,
CFG_CLAUSEFLAG_MULTI },
{ "ixfr-from-differences", &cfg_type_ixfrdifftype, 0 },
{ NULL, NULL, 0 }
};
......@@ -760,7 +762,6 @@ zone_clauses[] = {
{ "dialup", &cfg_type_dialuptype, 0 },
{ "forward", &cfg_type_forwardtype, 0 },
{ "forwarders", &cfg_type_portiplist, 0 },
{ "ixfr-from-differences", &cfg_type_boolean, 0 },
{ "maintain-ixfr-base", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
{ "max-ixfr-log-size", &cfg_type_size, CFG_CLAUSEFLAG_OBSOLETE },
{ "max-journal-size", &cfg_type_sizenodefault, 0 },
......@@ -807,6 +808,7 @@ zone_only_clauses[] = {
* the zone options and the global/view options. Ugh.
*/
{ "check-names", &cfg_type_checkmode, 0 },
{ "ixfr-from-differences", &cfg_type_boolean, 0 },
{ NULL, NULL, 0 }
};
......@@ -1173,6 +1175,16 @@ static cfg_type_t cfg_type_notifytype = {
&cfg_rep_string, notify_enums,
};
static const char *ixfrdiff_enums[] = { "master", "slave", NULL };
static isc_result_t
parse_ixfrdiff_type(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
return (parse_enum_or_other(pctx, type, &cfg_type_boolean, ret));
}
static cfg_type_t cfg_type_ixfrdifftype = {
"ixfrdiff", parse_ixfrdiff_type, cfg_print_ustring, doc_enum_or_other,
&cfg_rep_string, ixfrdiff_enums,
};
static keyword_type_t key_kw = { "key", &cfg_type_astring };
LIBISCCFG_EXTERNAL_DATA cfg_type_t cfg_type_keyref = {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment