summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES67
-rw-r--r--FAQ10
-rw-r--r--README6
-rw-r--r--bin/dig/dighost.c8
-rw-r--r--bin/named/client.c34
-rw-r--r--bin/named/interfacemgr.c105
-rw-r--r--bin/named/logconf.c6
-rw-r--r--bin/named/zoneconf.c22
-rw-r--r--bin/nsupdate/nsupdate.c5
-rwxr-xr-xbin/tests/system/tkey/ns1/setup.sh4
-rwxr-xr-xconfigure6
-rw-r--r--configure.in6
-rw-r--r--doc/arm/Bv9ARM-book.xml4
-rw-r--r--doc/arm/Bv9ARM.ch03.html2
-rw-r--r--lib/dns/include/dns/log.h4
-rw-r--r--lib/dns/journal.c4
-rw-r--r--lib/dns/log.c4
-rw-r--r--lib/dns/resolver.c4
-rw-r--r--lib/dns/tkey.c5
-rw-r--r--lib/dns/zone.c6
-rw-r--r--lib/isc/mem.c3
-rw-r--r--lib/isccfg/check.c10
-rw-r--r--lib/isccfg/include/isccfg/log.h6
-rw-r--r--lib/isccfg/log.c6
-rw-r--r--lib/isccfg/parser.c9
-rw-r--r--version4
26 files changed, 220 insertions, 130 deletions
diff --git a/CHANGES b/CHANGES
index e1ad7e41..238f22ad 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,67 @@
+ --- 9.2.0rc7 released ---
+
+1054. [bug] On Win32, cfg_categories and cfg_modules need to be
+ exported from the libisccfg DLL.
+
+1053. [bug] Dig did not increase its timeout when receiving
+ AXFRs unless the +time option was used. [RT #1904]
+
+1052. [bug] Journals were not being created in binary mode
+ resulting in "journal format not recognized" error
+ under Win32. [RT #1889]
+
+1051. [bug] Do not ignore a network interface completely just
+ because it has a noncontiguous netmask. Instead,
+ omit it from the localnets ACL and issue a warning.
+ [RT #1891]
+
+1050. [bug] Log messages reporting malformed IP addresses in
+ address lists such as that of the forwarders option
+ failed to include the correct error code, file
+ name, and line number. [RT #1890]
+
+1048. [bug] Servers built with -DISC_MEM_USE_INTERNAL_MALLOC=1
+ didn't work.
+
+1047. [bug] named was incorrectly refusing all requests signed
+ with a TSIG key derived from an unsigned TKEY
+ negotiation with a NOERROR response. [RT #1886]
+
+1046. [bug] The help message for the --with-openssl configure
+ option was inaccurate. [RT #1880]
+
+1045. [bug] It was possible to skip saving glue for a nameserver
+ for a stub zone.
+
+1044. [bug] Specifying allow-transfer, notify-source, or
+ notify-source-v6 in a stub zone was not treated
+ as an error.
+
+1043. [bug] Specifying a transfer-source or transfer-source-v6
+ option in the zone statement for a master zone was
+ not treated as an error. [RT #1876]
+
+1042. [bug] The "config" logging category did not work properly.
+ [RT #1873]
+
+1041. [bug] Dig/host/nslookup could catch an assertion failure
+ on SIGINT due to an uninitialized variable. [RT #1867]
+
+1040. [bug] Multiple listen-on-v6 options with different ports
+ were not accepted. [RT #1875]
+
+1039. [bug] Negative responses with CNAMEs in the answer section
+ were cached incorrectly. [RT #1862]
+
+1038. [bug] In servers configured with a tkey-domain option,
+ TKEY queries with an owner name other than the root
+ could cause an assertion failure. [RT #1866, #1869]
+
+1033. [bug] Always respond to requests with an unsupported opcode
+ with NOTIMP, even if we don't have a matching view
+ or cannot determine the class.
+
--- 9.2.0rc6 released ---
1031. [bug] libbind.a: isc__gettimeofday() infinite recursion.
@@ -40,7 +103,7 @@
correctly. [RT #1813]
1017. [bug] When specifying TSIG keys to dig and nsupdate using
- the -k option, they must be HMAC-MD5 keys. [RT #1810]
+ the -k option, they must be HMAC-MD5 keys. [RT #1810]
1016. [bug] Slave zones with no backup file were re-transferred
on every server reload.
@@ -114,7 +177,7 @@
(NOTAUTH)".
972. [bug] The file modification time code in zone.c was using the
- wrong epoch. [RT #1667]
+ wrong epoch. [RT #1667]
968. [bug] On win32, the isc_time_now() function was unnecessarily
calling strtime(). [RT #1671]
diff --git a/FAQ b/FAQ
index f1e04d49..b105b747 100644
--- a/FAQ
+++ b/FAQ
@@ -199,3 +199,13 @@ Also check whether your zone contains domain names with embedded
spaces or other special characters, like "John\032Doe\213s\032Computer",
since such names have been known to cause Windows 2000 slaves to
incorrectly reject the zone.
+
+
+Q: Why don't my zones reload when I do an "rndc reload" or SIGHUP?
+
+A: A zone can be updated either by editing zone files and reloading
+the server or by dynamic update, but not both. If you have enabled
+dynamic update for a zone using the "allow-update" option, you are not
+supposed to edit the zone file by hand, and the server will not
+attempt to reload it.
+
diff --git a/README b/README
index 9253e7f2..4cd5d5b8 100644
--- a/README
+++ b/README
@@ -44,10 +44,10 @@ BIND 9
Nominum, Inc.
-BIND 9.2.0rc6
+BIND 9.2.0rc7
- BIND 9.2.0rc6 is a release candidate for BIND 9.2.0.
- It fixes a number of bugs in 9.2.0rc5.
+ BIND 9.2.0rc7 is a release candidate for BIND 9.2.0.
+ It fixes a number of bugs in 9.2.0rc6.
BIND 9.2.0 has a number of new features over 9.1,
including:
diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c
index 79986442..3b346001 100644
--- a/bin/dig/dighost.c
+++ b/bin/dig/dighost.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: dighost.c,v 1.221.2.3 2001/10/04 22:03:41 gson Exp $ */
+/* $Id: dighost.c,v 1.221.2.5 2001/10/15 23:06:07 bwelling Exp $ */
/*
* Notice to programmers: Do not use this code as an example of how to
@@ -373,6 +373,7 @@ make_empty_lookup(void) {
looknew->cdflag = ISC_FALSE;
looknew->ns_search_only = ISC_FALSE;
looknew->origin = NULL;
+ looknew->tsigctx = NULL;
looknew->querysig = NULL;
looknew->retries = tries;
looknew->nsfound = 0;
@@ -440,6 +441,7 @@ clone_lookup(dig_lookup_t *lookold, isc_boolean_t servers) {
looknew->section_authority = lookold->section_authority;
looknew->section_additional = lookold->section_additional;
looknew->retries = lookold->retries;
+ looknew->tsigctx = NULL;
if (servers)
clone_server_list(lookold->my_server_list,
@@ -2270,9 +2272,9 @@ recv_done(isc_task_t *task, isc_event_t *event) {
if (timeout == 0) {
if (l->tcp_mode)
- local_timeout = TCP_TIMEOUT;
+ local_timeout = TCP_TIMEOUT * 4;
else
- local_timeout = UDP_TIMEOUT;
+ local_timeout = UDP_TIMEOUT * 4;
} else {
if (timeout < (INT_MAX / 4))
local_timeout = timeout * 4;
diff --git a/bin/named/client.c b/bin/named/client.c
index c2703226..f1c07953 100644
--- a/bin/named/client.c
+++ b/bin/named/client.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: client.c,v 1.176.2.1 2001/09/19 02:44:00 marka Exp $ */
+/* $Id: client.c,v 1.176.2.4 2001/10/12 19:14:47 gson Exp $ */
#include <config.h>
@@ -1064,6 +1064,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
int match;
dns_messageid_t id;
unsigned int flags;
+ isc_boolean_t notimp;
REQUIRE(event != NULL);
client = event->ev_arg;
@@ -1211,6 +1212,18 @@ client_request(isc_task_t *task, isc_event_t *event) {
goto cleanup;
}
+ switch (client->message->opcode) {
+ case dns_opcode_query:
+ case dns_opcode_update:
+ case dns_opcode_notify:
+ notimp = ISC_FALSE;
+ break;
+ case dns_opcode_iquery:
+ default:
+ notimp = ISC_TRUE;
+ break;
+ }
+
client->message->rcode = dns_rcode_noerror;
/*
@@ -1264,7 +1277,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
"message class could not be determined");
ns_client_dumpmessage(client,
"message class could not be determined");
- ns_client_error(client, DNS_R_FORMERR);
+ ns_client_error(client, notimp ? DNS_R_NOTIMP : DNS_R_FORMERR);
goto cleanup;
}
@@ -1313,7 +1326,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1),
"no matching view in class '%s'", classname);
ns_client_dumpmessage(client, "no matching view in class");
- ns_client_error(client, DNS_R_REFUSED);
+ ns_client_error(client, notimp ? DNS_R_NOTIMP : DNS_R_REFUSED);
goto cleanup;
}
@@ -1344,22 +1357,17 @@ client_request(isc_task_t *task, isc_event_t *event) {
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
"request is signed by a nonauthoritative key");
- /*
- * Accept update messages signed by unknown keys so that
- * update forwarding works transparently through slaves
- * that don't have all the same keys as the master.
- */
- if (!(client->message->tsigstatus == dns_tsigerror_badkey &&
- client->message->opcode == dns_opcode_update)) {
- ns_client_error(client, sigresult);
- goto cleanup;
- }
} else {
/* There is a signature, but it is bad. */
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
NS_LOGMODULE_CLIENT, ISC_LOG_ERROR,
"request has invalid signature: %s",
isc_result_totext(result));
+ /*
+ * Accept update messages signed by unknown keys so that
+ * update forwarding works transparently through slaves
+ * that don't have all the same keys as the master.
+ */
if (!(client->message->tsigstatus == dns_tsigerror_badkey &&
client->message->opcode == dns_opcode_update)) {
ns_client_error(client, sigresult);
diff --git a/bin/named/interfacemgr.c b/bin/named/interfacemgr.c
index 646966b3..7bf696bc 100644
--- a/bin/named/interfacemgr.c
+++ b/bin/named/interfacemgr.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: interfacemgr.c,v 1.59 2001/06/15 23:18:04 gson Exp $ */
+/* $Id: interfacemgr.c,v 1.59.2.2 2001/10/13 03:56:44 marka Exp $ */
#include <config.h>
@@ -505,23 +505,32 @@ do_ipv4(ns_interfacemgr_t *mgr) {
if ((interface.flags & INTERFACE_F_UP) == 0)
continue;
- result = isc_netaddr_masktoprefixlen(&interface.netmask,
- &prefixlen);
- if (result != ISC_R_SUCCESS)
- goto ignore_interface;
elt.type = dns_aclelementtype_ipprefix;
elt.negative = ISC_FALSE;
elt.u.ip_prefix.address = interface.address;
- elt.u.ip_prefix.prefixlen = prefixlen;
- /* XXX suppress duplicates */
- result = dns_acl_appendelement(mgr->aclenv.localnets, &elt);
- if (result != ISC_R_SUCCESS)
- goto ignore_interface;
elt.u.ip_prefix.prefixlen = 32;
result = dns_acl_appendelement(mgr->aclenv.localhost, &elt);
if (result != ISC_R_SUCCESS)
goto ignore_interface;
+ result = isc_netaddr_masktoprefixlen(&interface.netmask,
+ &prefixlen);
+ if (result != ISC_R_SUCCESS) {
+ isc_log_write(IFMGR_COMMON_LOGARGS,
+ ISC_LOG_WARNING,
+ "omitting IPv4 interface %s from "
+ "localnets ACL: %s",
+ interface.name,
+ isc_result_totext(result));
+ } else {
+ elt.u.ip_prefix.prefixlen = prefixlen;
+ /* XXX suppress duplicates */
+ result = dns_acl_appendelement(mgr->aclenv.localnets,
+ &elt);
+ if (result != ISC_R_SUCCESS)
+ goto ignore_interface;
+ }
+
for (le = ISC_LIST_HEAD(mgr->listenon4->elts);
le != NULL;
le = ISC_LIST_NEXT(le, link))
@@ -595,13 +604,7 @@ do_ipv4(ns_interfacemgr_t *mgr) {
}
static isc_boolean_t
-listenon_is_ip6_none(ns_listenlist_t *p) {
- ns_listenelt_t *elt;
- if (ISC_LIST_EMPTY(p->elts))
- return (ISC_TRUE); /* No listen-on-v6 statements */
- elt = ISC_LIST_HEAD(p->elts);
- if (ISC_LIST_NEXT(elt, link) != NULL)
- return (ISC_FALSE); /* More than one listen-on-v6 stmt */
+listenon_is_ip6_none(ns_listenelt_t *elt) {
if (elt->acl->length == 0)
return (ISC_TRUE); /* listen-on-v6 { } */
if (elt->acl->length > 1)
@@ -613,20 +616,12 @@ listenon_is_ip6_none(ns_listenlist_t *p) {
}
static isc_boolean_t
-listenon_is_ip6_any(ns_listenlist_t *p, in_port_t *portp) {
- ns_listenelt_t *elt;
- if (ISC_LIST_EMPTY(p->elts))
- return (ISC_FALSE); /* No listen-on-v6 statements */
- elt = ISC_LIST_HEAD(p->elts);
- if (ISC_LIST_NEXT(elt, link) != NULL)
- return (ISC_FALSE); /* More than one listen-on-v6 stmt */
+listenon_is_ip6_any(ns_listenelt_t *elt) {
if (elt->acl->length != 1)
return (ISC_FALSE);
if (elt->acl->elements[0].negative == ISC_FALSE &&
- elt->acl->elements[0].type == dns_aclelementtype_any) {
- *portp = elt->port;
+ elt->acl->elements[0].type == dns_aclelementtype_any)
return (ISC_TRUE); /* listen-on-v6 { any; } */
- }
return (ISC_FALSE); /* All others */
}
@@ -636,33 +631,41 @@ do_ipv6(ns_interfacemgr_t *mgr) {
ns_interface_t *ifp;
isc_sockaddr_t listen_addr;
struct in6_addr in6a;
- in_port_t port;
+ ns_listenelt_t *le;
- if (listenon_is_ip6_none(mgr->listenon6))
- return;
-
- if (! listenon_is_ip6_any(mgr->listenon6, &port)) {
- isc_log_write(IFMGR_COMMON_LOGARGS,
- ISC_LOG_ERROR,
- "bad IPv6 listen-on list: must be 'any' or 'none'");
- return;
- }
-
- in6a = in6addr_any;
- isc_sockaddr_fromin6(&listen_addr, &in6a, port);
-
- ifp = find_matching_interface(mgr, &listen_addr);
- if (ifp != NULL) {
- ifp->generation = mgr->generation;
- } else {
- isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_INFO,
- "listening on IPv6 interfaces, port %u", port);
- result = ns_interface_setup(mgr, &listen_addr, "<any>", &ifp);
- if (result != ISC_R_SUCCESS) {
+ for (le = ISC_LIST_HEAD(mgr->listenon6->elts);
+ le != NULL;
+ le = ISC_LIST_NEXT(le, link))
+ {
+ if (listenon_is_ip6_none(le))
+ continue;
+ if (! listenon_is_ip6_any(le)) {
isc_log_write(IFMGR_COMMON_LOGARGS,
ISC_LOG_ERROR,
- "listening on IPv6 interfaces failed");
- /* Continue. */
+ "bad IPv6 listen-on list: "
+ "must be 'any' or 'none'");
+ return;
+ }
+
+ in6a = in6addr_any;
+ isc_sockaddr_fromin6(&listen_addr, &in6a, le->port);
+
+ ifp = find_matching_interface(mgr, &listen_addr);
+ if (ifp != NULL) {
+ ifp->generation = mgr->generation;
+ } else {
+ isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_INFO,
+ "listening on IPv6 interfaces, port %u",
+ le->port);
+ result = ns_interface_setup(mgr, &listen_addr,
+ "<any>", &ifp);
+ if (result != ISC_R_SUCCESS) {
+ isc_log_write(IFMGR_COMMON_LOGARGS,
+ ISC_LOG_ERROR,
+ "listening on IPv6 interfaces "
+ "failed");
+ /* Continue. */
+ }
}
}
}
diff --git a/bin/named/logconf.c b/bin/named/logconf.c
index 8d568b86..14db627f 100644
--- a/bin/named/logconf.c
+++ b/bin/named/logconf.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: logconf.c,v 1.30.2.2 2001/09/28 18:35:02 bwelling Exp $ */
+/* $Id: logconf.c,v 1.30.2.3 2001/10/11 02:03:20 marka Exp $ */
#include <config.h>
@@ -74,7 +74,7 @@ category_fromconf(cfg_obj_t *ccat, isc_logconfig_t *lctx) {
result = isc_log_usechannel(lctx, channelname, category,
module);
if (result != ISC_R_SUCCESS) {
- isc_log_write(ns_g_lctx, DNS_LOGCATEGORY_CONFIG,
+ isc_log_write(ns_g_lctx, CFG_LOGCATEGORY_CONFIG,
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
"logging channel '%s': %s", channelname,
isc_result_totext(result));
@@ -221,7 +221,7 @@ channel_fromconf(cfg_obj_t *channel, isc_logconfig_t *lctx) {
*/
result = isc_stdio_open(dest.file.name, "a", &fp);
if (result != ISC_R_SUCCESS)
- isc_log_write(ns_g_lctx, DNS_LOGCATEGORY_CONFIG,
+ isc_log_write(ns_g_lctx, CFG_LOGCATEGORY_CONFIG,
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
"logging channel '%s' file '%s': %s",
channelname, dest.file.name,
diff --git a/bin/named/zoneconf.c b/bin/named/zoneconf.c
index 9272c768..838ded23 100644
--- a/bin/named/zoneconf.c
+++ b/bin/named/zoneconf.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: zoneconf.c,v 1.87.2.1 2001/09/26 03:43:00 marka Exp $ */
+/* $Id: zoneconf.c,v 1.87.2.2 2001/10/11 03:31:03 marka Exp $ */
#include <config.h>
@@ -509,16 +509,6 @@ ns_zone_configure(cfg_obj_t *config, cfg_obj_t *vconfig, cfg_obj_t *zconfig,
dns_zone_clearforwardacl));
}
- obj = NULL;
- result = ns_config_get(maps, "transfer-source", &obj);
- INSIST(result == ISC_R_SUCCESS);
- dns_zone_setxfrsource4(zone, cfg_obj_assockaddr(obj));
-
- obj = NULL;
- result = ns_config_get(maps, "transfer-source-v6", &obj);
- INSIST(result == ISC_R_SUCCESS);
- dns_zone_setxfrsource6(zone, cfg_obj_assockaddr(obj));
-
/*
* Configure slave functionality.
*/
@@ -571,6 +561,16 @@ ns_zone_configure(cfg_obj_t *config, cfg_obj_t *vconfig, cfg_obj_t *zconfig,
INSIST(result == ISC_R_SUCCESS);
dns_zone_setminretrytime(zone, cfg_obj_asuint32(obj));
+ obj = NULL;
+ result = ns_config_get(maps, "transfer-source", &obj);
+ INSIST(result == ISC_R_SUCCESS);
+ dns_zone_setxfrsource4(zone, cfg_obj_assockaddr(obj));
+
+ obj = NULL;
+ result = ns_config_get(maps, "transfer-source-v6", &obj);
+ INSIST(result == ISC_R_SUCCESS);
+ dns_zone_setxfrsource6(zone, cfg_obj_assockaddr(obj));
+
break;
default:
diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c
index f42d6d2b..467bb579 100644
--- a/bin/nsupdate/nsupdate.c
+++ b/bin/nsupdate/nsupdate.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: nsupdate.c,v 1.103.2.3 2001/10/05 00:17:08 bwelling Exp $ */
+/* $Id: nsupdate.c,v 1.103.2.4 2001/10/15 20:25:57 gson Exp $ */
#include <config.h>
@@ -658,7 +658,8 @@ parse_args(int argc, char **argv) {
fprintf(stderr, "%s: invalid argument -%c\n",
argv[0], ch);
fprintf(stderr, "usage: nsupdate [-d] "
- "[-y keyname:secret | -k keyfile] [-v]\n");
+ "[-y keyname:secret | -k keyfile] [-v] "
+ "[filename]\n");
exit(1);
}
}
diff --git a/bin/tests/system/tkey/ns1/setup.sh b/bin/tests/system/tkey/ns1/setup.sh
index bdc99aae..c3853210 100755
--- a/bin/tests/system/tkey/ns1/setup.sh
+++ b/bin/tests/system/tkey/ns1/setup.sh
@@ -15,11 +15,11 @@
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# $Id: setup.sh,v 1.2 2001/01/11 20:51:19 bwelling Exp $
+# $Id: setup.sh,v 1.2.2.2 2001/10/12 20:12:07 gson Exp $
RANDFILE=../random.data
keyname=`$KEYGEN -a DH -b 768 -n host -r $RANDFILE server`
-keyid=`echo $keyname | perl -p -e 's/^.*\+//;'`
+keyid=`echo $keyname | $PERL -p -e 's/^.*\+0*//;'`
rm -f named.conf
perl -p -e "s/KEYID/$keyid/;" < named.conf.in > named.conf
diff --git a/configure b/configure
index 95ecd7cf..3bf4374a 100755
--- a/configure
+++ b/configure
@@ -30,7 +30,7 @@
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# From configure.in Revision: 1.294.2.1
+# From configure.in Revision: 1.294.2.2
# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
## Copyright 1996, 1997, 1998, 1999, 2000, 2001
@@ -209,8 +209,8 @@ ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
ac_help="$ac_help
- --with-openssl=PATH Specify path for system-supplied openssl
- (required for DNSSEC)"
+ --with-openssl[=PATH] Build with OpenSSL [yes|no|path].
+ (Required for DNSSEC)"
ac_help="$ac_help
--with-randomdev=PATH Specify path for random device"
ac_help="$ac_help
diff --git a/configure.in b/configure.in
index 41d37baa..272865ff 100644
--- a/configure.in
+++ b/configure.in
@@ -18,7 +18,7 @@ AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
esyscmd([sed "s/^/# /" COPYRIGHT])dnl
AC_DIVERT_POP()dnl
-AC_REVISION($Revision: 1.294.2.1 $)
+AC_REVISION($Revision: 1.294.2.2 $)
AC_INIT(lib/dns/name.c)
AC_PREREQ(2.13)
@@ -280,8 +280,8 @@ AC_C_BIGENDIAN
#
AC_MSG_CHECKING(for OpenSSL library)
AC_ARG_WITH(openssl,
-[ --with-openssl=PATH Specify path for system-supplied openssl
- (required for DNSSEC)],
+[ --with-openssl[=PATH] Build with OpenSSL [yes|no|path].
+ (Required for DNSSEC)],
use_openssl="$withval", use_openssl="no")
case "$use_openssl" in
diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml
index 572b1ccf..a8310050 100644
--- a/doc/arm/Bv9ARM-book.xml
+++ b/doc/arm/Bv9ARM-book.xml
@@ -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.155.2.1 2001/09/19 22:16:57 gson Exp $ -->
+<!-- File: $Id: Bv9ARM-book.xml,v 1.155.2.2 2001/10/15 18:21:25 gson Exp $ -->
<book>
<title>BIND 9 Administrator Reference Manual</title>
@@ -705,7 +705,7 @@ of a server.</para>
<para>The <command>named-checkzone</command> program checks a master file for
syntax and consistency.</para>
<cmdsynopsis label="Usage">
- <command>check-zone</command>
+ <command>named-checkzone</command>
<arg>-dq</arg>
<arg>-c <replaceable>class</replaceable></arg>
<arg choice="plain"><replaceable>zone</replaceable></arg>
diff --git a/doc/arm/Bv9ARM.ch03.html b/doc/arm/Bv9ARM.ch03.html
index 12d0aeb6..6cb39c70 100644
--- a/doc/arm/Bv9ARM.ch03.html
+++ b/doc/arm/Bv9ARM.ch03.html
@@ -782,7 +782,7 @@ CLASS="command"
><P
><B
CLASS="command"
->check-zone</B
+>named-checkzone</B
> [-dq] [-c <TT
CLASS="replaceable"
><I
diff --git a/lib/dns/include/dns/log.h b/lib/dns/include/dns/log.h
index 6a059865..b65259d1 100644
--- a/lib/dns/include/dns/log.h
+++ b/lib/dns/include/dns/log.h
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: log.h,v 1.30 2001/08/27 03:36:00 marka Exp $ */
+/* $Id: log.h,v 1.30.2.1 2001/10/11 02:03:23 marka Exp $ */
/* Principal Authors: DCL */
@@ -32,7 +32,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodule_t dns_modules[];
#define DNS_LOGCATEGORY_NOTIFY (&dns_categories[0])
#define DNS_LOGCATEGORY_DATABASE (&dns_categories[1])
#define DNS_LOGCATEGORY_SECURITY (&dns_categories[2])
-#define DNS_LOGCATEGORY_CONFIG (&dns_categories[3])
+/* DNS_LOGCATEGORY_CONFIG superseded by CFG_LOGCATEGORY_CONFIG */
#define DNS_LOGCATEGORY_DNSSEC (&dns_categories[4])
#define DNS_LOGCATEGORY_RESOLVER (&dns_categories[5])
#define DNS_LOGCATEGORY_XFER_IN (&dns_categories[6])
diff --git a/lib/dns/journal.c b/lib/dns/journal.c
index 54c4c448..e431f358 100644
--- a/lib/dns/journal.c
+++ b/lib/dns/journal.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: journal.c,v 1.77 2001/08/06 02:10:59 marka Exp $ */
+/* $Id: journal.c,v 1.77.2.1 2001/10/15 04:57:51 marka Exp $ */
#include <config.h>
@@ -490,7 +490,7 @@ journal_file_create(isc_mem_t *mctx, const char *filename) {
INSIST(sizeof(journal_rawheader_t) == JOURNAL_HEADER_SIZE);
- result = isc_stdio_open(filename, "w", &fp);
+ result = isc_stdio_open(filename, "wb", &fp);
if (result != ISC_R_SUCCESS) {
isc_log_write(JOURNAL_COMMON_LOGARGS, ISC_LOG_ERROR,
"%s: create: %s",
diff --git a/lib/dns/log.c b/lib/dns/log.c
index 8b95316a..7f4fe1eb 100644
--- a/lib/dns/log.c
+++ b/lib/dns/log.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: log.c,v 1.33 2001/08/27 03:35:58 marka Exp $ */
+/* $Id: log.c,v 1.33.2.2 2001/10/11 23:07:00 gson Exp $ */
/* Principal Authors: DCL */
@@ -33,7 +33,7 @@ LIBDNS_EXTERNAL_DATA isc_logcategory_t dns_categories[] = {
{ "notify", 0 },
{ "database", 0 },
{ "security", 0 },
- { "config", 0 },
+ { "oldconfig", 0 }, /* Placeholder */
{ "dnssec", 0 },
{ "resolver", 0 },
{ "xfer-in", 0 },
diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c
index 551bc838..35046624 100644
--- a/lib/dns/resolver.c
+++ b/lib/dns/resolver.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: resolver.c,v 1.218.2.3 2001/09/21 20:40:06 gson Exp $ */
+/* $Id: resolver.c,v 1.218.2.4 2001/10/12 17:49:41 gson Exp $ */
#include <config.h>
@@ -3609,7 +3609,7 @@ noanswer_response(fetchctx_t *fctx, dns_name_t *oqname) {
if (ns_name != NULL)
ns_name->attributes &= ~DNS_NAMEATTR_CACHE;
- if (negative_response)
+ if (negative_response && oqname == NULL)
fctx->attributes |= FCTX_ATTR_WANTNCACHE;
return (ISC_R_SUCCESS);
diff --git a/lib/dns/tkey.c b/lib/dns/tkey.c
index a5b756d2..7e485489 100644
--- a/lib/dns/tkey.c
+++ b/lib/dns/tkey.c
@@ -16,7 +16,7 @@
*/
/*
- * $Id: tkey.c,v 1.71 2001/08/08 22:54:43 gson Exp $
+ * $Id: tkey.c,v 1.71.2.1 2001/10/09 23:06:57 gson Exp $
*/
#include <config.h>
@@ -643,7 +643,8 @@ dns_tkey_processquery(dns_message_t *msg, dns_tkeyctx_t *tctx,
if (!dns_name_equal(qname, dns_rootname)) {
unsigned int n = dns_name_countlabels(qname);
- dns_name_getlabelsequence(qname, 0, n - 1, keyname);
+ dns_name_copy(qname, keyname, NULL);
+ dns_name_getlabelsequence(keyname, 0, n - 1, keyname);
}
else {
static char hexdigits[16] = {
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
index f126fe25..6f21c7c4 100644
--- a/lib/dns/zone.c
+++ b/lib/dns/zone.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: zone.c,v 1.333.2.2 2001/09/05 00:38:01 gson Exp $ */
+/* $Id: zone.c,v 1.333.2.3 2001/10/11 17:20:40 gson Exp $ */
#include <config.h>
@@ -2816,10 +2816,8 @@ save_nsrrset(dns_message_t *message, dns_name_t *name,
result = dns_rdata_tostruct(&rdata, &ns, NULL);
dns_rdata_reset(&rdata);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
- if (!dns_name_issubdomain(&ns.name, name)) {
- result = dns_rdataset_next(nsrdataset);
+ if (!dns_name_issubdomain(&ns.name, name))
continue;
- }
rdataset = NULL;
result = dns_message_findname(message, DNS_SECTION_ADDITIONAL,
&ns.name, dns_rdatatype_a6,
diff --git a/lib/isc/mem.c b/lib/isc/mem.c
index 2930a085..b60e0ab8 100644
--- a/lib/isc/mem.c
+++ b/lib/isc/mem.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: mem.c,v 1.98.2.1 2001/09/05 17:51:13 gson Exp $ */
+/* $Id: mem.c,v 1.98.2.2 2001/10/12 01:17:37 marka Exp $ */
#include <config.h>
@@ -475,6 +475,7 @@ mem_getunlocked(isc_mem_t *ctx, size_t size) {
* don't own.
*/
new_size = size;
+ goto done;
}
/*
diff --git a/lib/isccfg/check.c b/lib/isccfg/check.c
index 72c252c1..6aa0b347 100644
--- a/lib/isccfg/check.c
+++ b/lib/isccfg/check.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: check.c,v 1.14.2.2 2001/10/04 19:43:06 gson Exp $ */
+/* $Id: check.c,v 1.14.2.4 2001/10/11 17:12:42 gson Exp $ */
#include <config.h>
@@ -114,7 +114,7 @@ check_zoneconf(cfg_obj_t *zconfig, isc_symtab_t *symtab, isc_log_t *logctx) {
static optionstable options[] = {
{ "allow-query", MASTERZONE | SLAVEZONE | STUBZONE },
- { "allow-transfer", MASTERZONE | SLAVEZONE | STUBZONE },
+ { "allow-transfer", MASTERZONE | SLAVEZONE },
{ "notify", MASTERZONE | SLAVEZONE },
{ "also-notify", MASTERZONE | SLAVEZONE },
{ "dialup", MASTERZONE | SLAVEZONE | STUBZONE },
@@ -122,8 +122,10 @@ check_zoneconf(cfg_obj_t *zconfig, isc_symtab_t *symtab, isc_log_t *logctx) {
{ "forwarders", MASTERZONE | SLAVEZONE | STUBZONE | FORWARDZONE},
{ "maintain-ixfr-base", MASTERZONE | SLAVEZONE },
{ "max-ixfr-log-size", MASTERZONE | SLAVEZONE },
- { "transfer-source", MASTERZONE | SLAVEZONE | STUBZONE },
- { "transfer-source-v6", MASTERZONE | SLAVEZONE | STUBZONE },
+ { "notify-source", MASTERZONE | SLAVEZONE },
+ { "notify-source-v6", MASTERZONE | SLAVEZONE },
+ { "transfer-source", SLAVEZONE | STUBZONE },
+ { "transfer-source-v6", SLAVEZONE | STUBZONE },
{ "max-transfer-time-in", SLAVEZONE | STUBZONE },
{ "max-transfer-time-out", MASTERZONE | SLAVEZONE },
{ "max-transfer-idle-in", SLAVEZONE | STUBZONE },
diff --git a/lib/isccfg/include/isccfg/log.h b/lib/isccfg/include/isccfg/log.h
index 9ed4c9ba..58c1291c 100644
--- a/lib/isccfg/include/isccfg/log.h
+++ b/lib/isccfg/include/isccfg/log.h
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: log.h,v 1.3 2001/03/13 03:04:08 gson Exp $ */
+/* $Id: log.h,v 1.3.2.1 2001/10/16 05:58:29 marka Exp $ */
#ifndef ISCCFG_LOG_H
#define ISCCFG_LOG_H 1
@@ -23,8 +23,8 @@
#include <isc/lang.h>
#include <isc/log.h>
-extern isc_logcategory_t cfg_categories[];
-extern isc_logmodule_t cfg_modules[];
+LIBISCCFG_EXTERNAL_DATA extern isc_logcategory_t cfg_categories[];
+LIBISCCFG_EXTERNAL_DATA extern isc_logmodule_t cfg_modules[];
#define CFG_LOGCATEGORY_CONFIG (&cfg_categories[0])
diff --git a/lib/isccfg/log.c b/lib/isccfg/log.c
index c5a6686d..e7377dfe 100644
--- a/lib/isccfg/log.c
+++ b/lib/isccfg/log.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: log.c,v 1.2 2001/03/13 03:04:05 gson Exp $ */
+/* $Id: log.c,v 1.2.2.1 2001/10/16 05:58:28 marka Exp $ */
#include <config.h>
@@ -27,7 +27,7 @@
* When adding a new category, be sure to add the appropriate
* #define to <isccfg/log.h>.
*/
-isc_logcategory_t cfg_categories[] = {
+LIBISCCFG_EXTERNAL_DATA isc_logcategory_t cfg_categories[] = {
{ "config", 0 },
{ NULL, 0 }
};
@@ -36,7 +36,7 @@ isc_logcategory_t cfg_categories[] = {
* When adding a new module, be sure to add the appropriate
* #define to <isccfg/log.h>.
*/
-isc_logmodule_t cfg_modules[] = {
+LIBISCCFG_EXTERNAL_DATA isc_logmodule_t cfg_modules[] = {
{ "isccfg/parser", 0 },
{ NULL, 0 }
};
diff --git a/lib/isccfg/parser.c b/lib/isccfg/parser.c
index bc7b277f..733ef41d 100644
--- a/lib/isccfg/parser.c
+++ b/lib/isccfg/parser.c
@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: parser.c,v 1.70.2.2 2001/09/06 23:06:43 marka Exp $ */
+/* $Id: parser.c,v 1.70.2.3 2001/10/13 03:52:13 marka Exp $ */
#include <config.h>
@@ -2780,14 +2780,16 @@ token_addr(cfg_parser_t *pctx, unsigned int flags, isc_netaddr_t *na) {
}
}
}
- return (ISC_R_NOTFOUND); /* XXX */
+ return (ISC_R_UNEXPECTEDTOKEN);
}
static isc_result_t
get_addr(cfg_parser_t *pctx, unsigned int flags, isc_netaddr_t *na) {
isc_result_t result;
CHECK(cfg_gettoken(pctx, 0));
- CHECK(token_addr(pctx, flags, na));
+ result = token_addr(pctx, flags, na);
+ if (result == ISC_R_UNEXPECTEDTOKEN)
+ parser_error(pctx, LOG_NEAR, "expected IP address");
cleanup:
return (result);
}
@@ -2943,7 +2945,6 @@ parse_netaddr(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
*ret = obj;
return (ISC_R_SUCCESS);
cleanup:
- parser_error(pctx, LOG_NEAR, "expected IP address");
CLEANUP_OBJ(obj);
return (result);
}
diff --git a/version b/version
index 9ebf5d09..51d4d880 100644
--- a/version
+++ b/version
@@ -1,4 +1,4 @@
-# $Id: version,v 1.26.2.5 2001/10/03 23:24:01 gson Exp $
+# $Id: version,v 1.26.2.6 2001/10/12 23:34:24 gson Exp $
#
# This file must follow /bin/sh rules. It is imported directly via
# configure.
@@ -7,4 +7,4 @@ MAJORVER=9
MINORVER=2
PATCHVER=0
RELEASETYPE=rc
-RELEASEVER=6
+RELEASEVER=7