Compare commits
36
Commits
v9.5.0-P2-W1
...
v9.5.0b1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d7d597a2a3 | ||
|
|
6170a1cbb4 | ||
|
|
e0e85f6ba7 | ||
|
|
fd42a23377 | ||
|
|
32d56ec3e4 | ||
|
|
ff3fafc428 | ||
|
|
2c4eba5b5a | ||
|
|
e967a73d77 | ||
|
|
69d39ed2e5 | ||
|
|
cfed2ee62a | ||
|
|
1766e3e5aa | ||
|
|
0d940038e4 | ||
|
|
2cf81a3d8a | ||
|
|
2e6ce48c34 | ||
|
|
681beefc66 | ||
|
|
fb1f902017 | ||
|
|
015fea0a27 | ||
|
|
7fc835d63f | ||
|
|
905ed71124 | ||
|
|
386d3a99c1 | ||
|
|
40976ef802 | ||
|
|
cf03a9be41 | ||
|
|
fb44d91ff2 | ||
|
|
0c6ada0a81 | ||
|
|
553b424cef | ||
|
|
030aac3dbc | ||
|
|
4f5257ba7a | ||
|
|
cfaa17671d | ||
|
|
2a128f5386 | ||
|
|
05e2cc8445 | ||
|
|
783224b143 | ||
|
|
0f39ff74a8 | ||
|
|
072440df4f | ||
|
|
bf7e8a8250 | ||
|
|
fe93d86ab7 | ||
|
|
ef10c16c06 |
@@ -1,4 +1,4 @@
|
||||
Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright (C) 1996-2003 Internet Software Consortium.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
||||
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
$Id: COPYRIGHT,v 1.13.130.1 2008/01/02 23:46:28 tbox Exp $
|
||||
$Id: COPYRIGHT,v 1.13 2007/06/18 05:59:26 marka Exp $
|
||||
|
||||
Portions Copyright (C) 1996-2001 Nominum, Inc.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Frequently Asked Questions about BIND 9
|
||||
|
||||
Copyright © 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright © 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
|
||||
Copyright © 2000-2003 Internet Software Consortium.
|
||||
|
||||
@@ -594,12 +594,7 @@ Q: I get the error message "named: capset failed: Operation not permitted"
|
||||
when starting named.
|
||||
|
||||
A: The capability module, part of "Linux Security Modules/LSM", has not
|
||||
been loaded into the kernel. See insmod(8), modprobe(8).
|
||||
|
||||
The relevant modules can be loaded by running:
|
||||
|
||||
modprobe commoncap
|
||||
modprobe capability
|
||||
been loaded into the kernel. See insmod(8).
|
||||
|
||||
Q: I'm running BIND on Red Hat Enterprise Linux or Fedora Core -
|
||||
|
||||
@@ -704,18 +699,6 @@ A: Red Hat Security Enhanced Linux (SELinux) policy security protections :
|
||||
See these man-pages for more information : selinux(8), named_selinux
|
||||
(8), chcon(1), setsebool(8)
|
||||
|
||||
Q: Listening on individual IPv6 interfaces does not work.
|
||||
|
||||
A: This is usually due to "/proc/net/if_inet6" not being available in the
|
||||
chroot file system. Mount another instance of "proc" in the chroot file
|
||||
system.
|
||||
|
||||
This can be be made permanent by adding a second instance to /etc/
|
||||
fstab.
|
||||
|
||||
proc /proc proc defaults 0 0
|
||||
proc /var/named/proc proc defaults 0 0
|
||||
|
||||
4.3. Windows
|
||||
|
||||
Q: Zone transfers from my BIND 9 master to my Windows 2000 slave fail.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []>
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -17,7 +17,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: FAQ.xml,v 1.30.26.4 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: FAQ.xml,v 1.30 2007/11/02 00:25:41 marka Exp $ -->
|
||||
|
||||
<article class="faq">
|
||||
<title>Frequently Asked Questions about BIND 9</title>
|
||||
@@ -27,7 +27,6 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -706,7 +705,8 @@ zone "list.dsbl.org" {
|
||||
requests are coming from a Windows 2000 machine, see
|
||||
<ulink
|
||||
url="http://support.microsoft.com/support/kb/articles/q246/8/04.asp">
|
||||
<http://support.microsoft.com/support/kb/articles/q246/8/04.asp></ulink>
|
||||
http://support.microsoft.com/support/kb/articles/q246/8/04.asp
|
||||
</ulink>
|
||||
for information about how to turn them off.
|
||||
</para>
|
||||
</answer>
|
||||
@@ -856,7 +856,7 @@ serial-query-rate 5; // default 20</programlisting>
|
||||
usage rules and are leaking queries to the Internet. You
|
||||
should establish your own zones for these addresses to prevent
|
||||
you querying the Internet's name servers for these addresses.
|
||||
Please see <ulink url="http://as112.net/"><http://as112.net/></ulink>
|
||||
Please see <ulink url="http://as112.net/">http://as112.net/</ulink>
|
||||
for details of the problems you are causing and the counter
|
||||
measures that have had to be deployed.
|
||||
</para>
|
||||
@@ -1009,31 +1009,7 @@ client: UDP client handler shutting down due to fatal receive error: unexpected
|
||||
</para>
|
||||
<para>
|
||||
See:
|
||||
<ulink url="http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2"><http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2></ulink>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
Why does named lock up when it attempts to connect over IPSEC tunnels?
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
This is due to a kernel bug where the fact that a socket is marked
|
||||
non-blocking is ignored. It is reported that setting
|
||||
xfrm_larval_drop to 1 helps but this may have negative side effects.
|
||||
See:
|
||||
<ulink url="https://bugzilla.redhat.com/show_bug.cgi?id=427629"><https://bugzilla.redhat.com/show_bug.cgi?id=427629></ulink>
|
||||
and
|
||||
<ulink url="http://lkml.org/lkml/2007/12/4/260"><http://lkml.org/lkml/2007/12/4/260></ulink>.
|
||||
</para>
|
||||
<para>
|
||||
xfrm_larval_drop can be set to 1 by the following procedure:
|
||||
<programlisting>
|
||||
echo "1" > proc/sys/net/core/xfrm_larval_drop</programlisting>
|
||||
<ulink url="http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2">http://marc.theaimsgroup.com/?l=linux-netdev&m=113081708031466&w=2</ulink>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -1088,13 +1064,7 @@ echo "1" > proc/sys/net/core/xfrm_larval_drop</programlisting>
|
||||
<answer>
|
||||
<para>
|
||||
The capability module, part of "Linux Security Modules/LSM",
|
||||
has not been loaded into the kernel. See insmod(8), modprobe(8).
|
||||
</para>
|
||||
<para>
|
||||
The relevant modules can be loaded by running:
|
||||
<programlisting>
|
||||
modprobe commoncap
|
||||
modprobe capability</programlisting>
|
||||
has not been loaded into the kernel. See insmod(8).
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -1124,9 +1094,8 @@ modprobe capability</programlisting>
|
||||
|
||||
<para>
|
||||
Red Hat have adopted the National Security Agency's
|
||||
SELinux security policy (see <ulink
|
||||
url="http://www.nsa.gov/selinux"><http://www.nsa.gov/selinux></ulink>)
|
||||
and recommendations for BIND security , which are more
|
||||
SELinux security policy ( see http://www.nsa.gov/selinux
|
||||
) and recommendations for BIND security , which are more
|
||||
secure than running named in a chroot and make use of
|
||||
the bind-chroot environment unnecessary .
|
||||
</para>
|
||||
@@ -1264,30 +1233,6 @@ named_cache_t: for files modifiable by named - $ROOTDIR/var/{tmp,named/{slaves,d
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>
|
||||
Listening on individual IPv6 interfaces does not work.
|
||||
</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>
|
||||
This is usually due to "/proc/net/if_inet6" not being available
|
||||
in the chroot file system. Mount another instance of "proc"
|
||||
in the chroot file system.
|
||||
</para>
|
||||
<para>
|
||||
This can be be made permanent by adding a second instance to
|
||||
/etc/fstab.
|
||||
<informalexample>
|
||||
<programlisting>
|
||||
proc /proc proc defaults 0 0
|
||||
proc /var/named/proc proc defaults 0 0</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandadiv> <!-- Linux -->
|
||||
|
||||
@@ -1365,7 +1310,8 @@ rand_irqs="3 14 15"</programlisting>
|
||||
<para>
|
||||
See also
|
||||
<ulink url="http://people.freebsd.org/~dougb/randomness.html">
|
||||
<http://people.freebsd.org/~dougb/randomness.html></ulink>.
|
||||
http://people.freebsd.org/~dougb/randomness.html
|
||||
</ulink>
|
||||
</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
@@ -1387,7 +1333,7 @@ rand_irqs="3 14 15"</programlisting>
|
||||
<para>
|
||||
<ulink
|
||||
url="http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris">
|
||||
<http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris>
|
||||
http://blogs.sun.com/roller/page/anay/Weblog?catname=%2FSolaris
|
||||
</ulink>
|
||||
</para>
|
||||
</answer>
|
||||
|
||||
@@ -48,18 +48,17 @@ BIND 9.5.0
|
||||
BIND 9.5.0 has a number of new features over 9.4,
|
||||
including:
|
||||
|
||||
- GSS-TSIG support (RFC 3645).
|
||||
- DHCID support.
|
||||
- Experimental http server and statistics support for named via xml.
|
||||
- More detailed statistics counters including those supported in
|
||||
BIND 8.
|
||||
- Faster ACL processing.
|
||||
- Internal documentation generated by Doxygen.
|
||||
- Efficient LRU cache-cleaning mechanism.
|
||||
- NSID support (RFC 5001).
|
||||
GSS-TSIG support (RFC 3645).
|
||||
|
||||
Please see the file KNOWN-DEFECTS for information about known
|
||||
problems in the 9.5.0 release.
|
||||
DHCID support.
|
||||
|
||||
Experimental http server and statistics support for named via xml.
|
||||
|
||||
Faster ACL processing.
|
||||
|
||||
Use Doxygen to generate internal documention.
|
||||
|
||||
Efficient LRU cache-cleaning mechanism.
|
||||
|
||||
BIND 9.4.0
|
||||
|
||||
@@ -430,6 +429,8 @@ Building
|
||||
-DDIG_SIGCHASE_BU=1)
|
||||
Disable dropping queries from particular well known ports.
|
||||
-DNS_CLIENT_DROPPORT=0
|
||||
Disable support for "rrset-order fixed".
|
||||
-DDNS_RDATASET_FIXED=0
|
||||
|
||||
LDFLAGS
|
||||
Linker flags. Defaults to empty string.
|
||||
@@ -465,11 +466,6 @@ Building
|
||||
on the configure command line. The default is operating
|
||||
system dependent.
|
||||
|
||||
Support for the "fixed" rrset-order option can be enabled
|
||||
or disabled by specifying "--enable-fixed-rrset" or
|
||||
"--disable-fixed-rrset" on the configure command line.
|
||||
The default is "disabled", to reduce memory footprint.
|
||||
|
||||
If your operating system has integrated support for IPv6, it
|
||||
will be used automatically. If you have installed KAME IPv6
|
||||
separately, use "--with-kame[=PATH]" to specify its location.
|
||||
@@ -512,9 +508,6 @@ Building
|
||||
on your system, and some require Perl; see bin/tests/system/README
|
||||
for details.
|
||||
|
||||
SunOS 4 requires "printf" to be installed to make the shared
|
||||
libraries. sh-utils-1.16 provides a "printf" which compiles
|
||||
on SunOS 4.
|
||||
|
||||
Documentation
|
||||
|
||||
|
||||
+3
-8
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: dig.1,v 1.45.150.3 2008/05/15 01:42:11 tbox Exp $
|
||||
.\" $Id: dig.1,v 1.45 2007/05/16 06:12:00 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -489,11 +489,6 @@ Requires dig be compiled with \-DDIG_SIGCHASE.
|
||||
.RS 4
|
||||
When chasing DNSSEC signature chains perform a top\-down validation. Requires dig be compiled with \-DDIG_SIGCHASE.
|
||||
.RE
|
||||
.PP
|
||||
\fB+[no]nsid\fR
|
||||
.RS 4
|
||||
Include an EDNS name server ID request when sending a query.
|
||||
.RE
|
||||
.SH "MULTIPLE QUERIES"
|
||||
.PP
|
||||
The BIND 9 implementation of
|
||||
@@ -556,7 +551,7 @@ RFC1035.
|
||||
.PP
|
||||
There are probably too many query options.
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004\-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004\-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2003 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+42
-57
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.c,v 1.218.12.3 2008/04/03 02:12:21 marka Exp $ */
|
||||
/* $Id: dig.c,v 1.217 2007/06/18 23:47:17 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
#define ADD_STRING(b, s) { \
|
||||
if (strlen(s) >= isc_buffer_availablelength(b)) \
|
||||
return (ISC_R_NOSPACE); \
|
||||
return (ISC_R_NOSPACE); \
|
||||
else \
|
||||
isc_buffer_putstr(b, s); \
|
||||
}
|
||||
@@ -144,8 +144,8 @@ help(void) {
|
||||
" q-type is one of (a,any,mx,ns,soa,hinfo,axfr,txt,...) [default:a]\n"
|
||||
" (Use ixfr=version for type ixfr)\n"
|
||||
" q-opt is one of:\n"
|
||||
" -x dot-notation (shortcut for reverse lookups)\n"
|
||||
" -i (use IP6.INT for IPv6 reverse lookups)\n"
|
||||
" -x dot-notation (shortcut for in-addr lookups)\n"
|
||||
" -i (IP6.INT reverse IPv6 lookups)\n"
|
||||
" -f filename (batch mode)\n"
|
||||
" -b address[#port] (bind to source address/port)\n"
|
||||
" -p port (specify port number)\n"
|
||||
@@ -194,7 +194,6 @@ help(void) {
|
||||
" +[no]identify (ID responders in short answers)\n"
|
||||
" +[no]trace (Trace delegation down from root)\n"
|
||||
" +[no]dnssec (Request DNSSEC records)\n"
|
||||
" +[no]nsid (Request Name Server ID)\n"
|
||||
#ifdef DIG_SIGCHASE
|
||||
" +[no]sigchase (Chase DNSSEC signatures)\n"
|
||||
" +trusted-key=#### (Trusted Key when chasing DNSSEC sigs)\n"
|
||||
@@ -384,7 +383,7 @@ printrdataset(dns_name_t *owner_name, dns_rdataset_t *rdataset,
|
||||
else if (nottl || noclass)
|
||||
result = dns_master_stylecreate(&style, styleflags,
|
||||
24, 24, 32, 40, 80, 8, mctx);
|
||||
else
|
||||
else
|
||||
result = dns_master_stylecreate(&style, styleflags,
|
||||
24, 32, 40, 48, 80, 8, mctx);
|
||||
check_result(result, "dns_master_stylecreate");
|
||||
@@ -393,7 +392,7 @@ printrdataset(dns_name_t *owner_name, dns_rdataset_t *rdataset,
|
||||
|
||||
if (style != NULL)
|
||||
dns_master_styledestroy(&style, mctx);
|
||||
|
||||
|
||||
return(result);
|
||||
}
|
||||
#endif
|
||||
@@ -430,7 +429,7 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
|
||||
else if (nottl || noclass)
|
||||
result = dns_master_stylecreate(&style, styleflags,
|
||||
24, 24, 32, 40, 80, 8, mctx);
|
||||
else
|
||||
else
|
||||
result = dns_master_stylecreate(&style, styleflags,
|
||||
24, 32, 40, 48, 80, 8, mctx);
|
||||
check_result(result, "dns_master_stylecreate");
|
||||
@@ -639,7 +638,7 @@ printgreeting(int argc, char **argv, dig_lookup_t *lookup) {
|
||||
strncat(lookup->cmdline, append, remaining);
|
||||
}
|
||||
if (first) {
|
||||
snprintf(append, sizeof(append),
|
||||
snprintf(append, sizeof(append),
|
||||
";; global options: %s %s\n",
|
||||
short_form ? "short_form" : "",
|
||||
printcmd ? "printcmd" : "");
|
||||
@@ -717,7 +716,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
FULLCHECK2("aaonly", "aaflag");
|
||||
lookup->aaonly = state;
|
||||
break;
|
||||
case 'd':
|
||||
case 'd':
|
||||
switch (cmd[2]) {
|
||||
case 'd': /* additional */
|
||||
FULLCHECK("additional");
|
||||
@@ -802,13 +801,13 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
FULLCHECK("defname");
|
||||
usesearch = state;
|
||||
break;
|
||||
case 'n': /* dnssec */
|
||||
case 'n': /* dnssec */
|
||||
FULLCHECK("dnssec");
|
||||
if (state && lookup->edns == -1)
|
||||
lookup->edns = 0;
|
||||
lookup->dnssec = state;
|
||||
break;
|
||||
case 'o': /* domain */
|
||||
case 'o': /* domain */
|
||||
FULLCHECK("domain");
|
||||
if (value == NULL)
|
||||
goto need_value;
|
||||
@@ -861,40 +860,28 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
goto invalid_option;
|
||||
ndots = parse_uint(value, "ndots", MAXNDOTS);
|
||||
break;
|
||||
case 's':
|
||||
switch (cmd[2]) {
|
||||
case 'i': /* nsid */
|
||||
FULLCHECK("nsid");
|
||||
if (state && lookup->edns == -1)
|
||||
lookup->edns = 0;
|
||||
lookup->nsid = state;
|
||||
break;
|
||||
case 's': /* nssearch */
|
||||
FULLCHECK("nssearch");
|
||||
lookup->ns_search_only = state;
|
||||
if (state) {
|
||||
lookup->trace_root = ISC_TRUE;
|
||||
lookup->recurse = ISC_TRUE;
|
||||
lookup->identify = ISC_TRUE;
|
||||
lookup->stats = ISC_FALSE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_authority = ISC_FALSE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
short_form = ISC_TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
case 's': /* nssearch */
|
||||
FULLCHECK("nssearch");
|
||||
lookup->ns_search_only = state;
|
||||
if (state) {
|
||||
lookup->trace_root = ISC_TRUE;
|
||||
lookup->recurse = ISC_TRUE;
|
||||
lookup->identify = ISC_TRUE;
|
||||
lookup->stats = ISC_FALSE;
|
||||
lookup->comments = ISC_FALSE;
|
||||
lookup->section_additional = ISC_FALSE;
|
||||
lookup->section_authority = ISC_FALSE;
|
||||
lookup->section_question = ISC_FALSE;
|
||||
lookup->rdtype = dns_rdatatype_ns;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
short_form = ISC_TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
goto invalid_option;
|
||||
}
|
||||
break;
|
||||
case 'q':
|
||||
case 'q':
|
||||
switch (cmd[1]) {
|
||||
case 'r': /* qr */
|
||||
FULLCHECK("qr");
|
||||
@@ -970,11 +957,11 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
break;
|
||||
#ifdef DIG_SIGCHASE
|
||||
case 'i': /* sigchase */
|
||||
FULLCHECK("sigchase");
|
||||
FULLCHECK("sigchase");
|
||||
lookup->sigchase = state;
|
||||
if (lookup->sigchase)
|
||||
lookup->dnssec = ISC_TRUE;
|
||||
break;
|
||||
break;
|
||||
#endif
|
||||
case 't': /* stats */
|
||||
FULLCHECK("stats");
|
||||
@@ -1002,7 +989,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
timeout = 1;
|
||||
break;
|
||||
#if DIG_SIGCHASE_TD
|
||||
case 'o': /* topdown */
|
||||
case 'o': /* topdown */
|
||||
FULLCHECK("topdown");
|
||||
lookup->do_topdown = state;
|
||||
break;
|
||||
@@ -1037,7 +1024,7 @@ plus_option(char *option, isc_boolean_t is_batchfile,
|
||||
#ifdef DIG_SIGCHASE
|
||||
case 'u': /* trusted-key */
|
||||
FULLCHECK("trusted-key");
|
||||
if (value == NULL)
|
||||
if (value == NULL)
|
||||
goto need_value;
|
||||
if (!state)
|
||||
goto invalid_option;
|
||||
@@ -1171,7 +1158,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
hash = strchr(value, '#');
|
||||
if (hash != NULL) {
|
||||
srcport = (in_port_t)
|
||||
parse_uint(hash + 1,
|
||||
parse_uint(hash + 1,
|
||||
"port number", MAXPORT);
|
||||
*hash = '\0';
|
||||
} else
|
||||
@@ -1224,7 +1211,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
(*lookup) = clone_lookup(default_lookup,
|
||||
ISC_TRUE);
|
||||
*need_clone = ISC_TRUE;
|
||||
strncpy((*lookup)->textname, value,
|
||||
strncpy((*lookup)->textname, value,
|
||||
sizeof((*lookup)->textname));
|
||||
(*lookup)->textname[sizeof((*lookup)->textname)-1]=0;
|
||||
(*lookup)->trace_root = ISC_TF((*lookup)->trace ||
|
||||
@@ -1263,10 +1250,9 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
(*lookup)->ixfr_serial =
|
||||
parse_uint(&value[5], "serial number",
|
||||
MAXSERIAL);
|
||||
MAXSERIAL);
|
||||
(*lookup)->section_question = plusquest;
|
||||
(*lookup)->comments = pluscomm;
|
||||
(*lookup)->tcp_mode = ISC_TRUE;
|
||||
} else {
|
||||
(*lookup)->rdtype = rdtype;
|
||||
(*lookup)->rdtypeset = ISC_TRUE;
|
||||
@@ -1290,7 +1276,7 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
|
||||
if (ptr2 == NULL)
|
||||
usage();
|
||||
ptr3 = next_token(&value,":"); /* secret or NULL */
|
||||
if (ptr3 != NULL) {
|
||||
if (ptr3 != NULL) {
|
||||
if (strcasecmp(ptr, "hmac-md5") == 0) {
|
||||
hmacname = DNS_TSIG_HMACMD5_NAME;
|
||||
digestbits = 0;
|
||||
@@ -1439,7 +1425,7 @@ getaddresses(dig_lookup_t *lookup, const char *host) {
|
||||
char tmp[ISC_NETADDR_FORMATSIZE];
|
||||
|
||||
result = bind9_getaddresses(host, 0, sockaddrs,
|
||||
DIG_MAX_ADDRESSES, &count);
|
||||
DIG_MAX_ADDRESSES, &count);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("couldn't get address for '%s': %s",
|
||||
host, isc_result_totext(result));
|
||||
@@ -1501,7 +1487,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
if (homedir != NULL) {
|
||||
unsigned int n;
|
||||
n = snprintf(rcfile, sizeof(rcfile), "%s/.digrc",
|
||||
homedir);
|
||||
homedir);
|
||||
if (n < sizeof(rcfile))
|
||||
batchfp = fopen(rcfile, "r");
|
||||
}
|
||||
@@ -1581,7 +1567,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
tr.base = rv[0];
|
||||
tr.length = strlen(rv[0]);
|
||||
result = dns_rdatatype_fromtext(&rdtype,
|
||||
(isc_textregion_t *)&tr);
|
||||
(isc_textregion_t *)&tr);
|
||||
if (result == ISC_R_SUCCESS &&
|
||||
rdtype == dns_rdatatype_ixfr) {
|
||||
result = DNS_R_UNKNOWN;
|
||||
@@ -1602,12 +1588,11 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->ixfr_serial =
|
||||
parse_uint(&rv[0][5],
|
||||
"serial number",
|
||||
MAXSERIAL);
|
||||
"serial number",
|
||||
MAXSERIAL);
|
||||
lookup->section_question =
|
||||
plusquest;
|
||||
lookup->comments = pluscomm;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else {
|
||||
lookup->rdtype = rdtype;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
@@ -1639,7 +1624,7 @@ parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only,
|
||||
lookup = clone_lookup(default_lookup,
|
||||
ISC_TRUE);
|
||||
need_clone = ISC_TRUE;
|
||||
strncpy(lookup->textname, rv[0],
|
||||
strncpy(lookup->textname, rv[0],
|
||||
sizeof(lookup->textname));
|
||||
lookup->textname[sizeof(lookup->textname)-1]=0;
|
||||
lookup->trace_root = ISC_TF(lookup->trace ||
|
||||
|
||||
+2
-11
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: dig.docbook,v 1.38.130.2 2008/05/14 23:46:33 tbox Exp $ -->
|
||||
<!-- $Id: dig.docbook,v 1.38 2007/06/18 23:47:17 tbox Exp $ -->
|
||||
<refentry id="man.dig">
|
||||
|
||||
<refentryinfo>
|
||||
@@ -42,7 +42,6 @@
|
||||
<year>2005</year>
|
||||
<year>2006</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -830,14 +829,6 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>+[no]nsid</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Include an EDNS name server ID request when sending a query.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
</variablelist>
|
||||
|
||||
+11
-15
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: dig.html,v 1.41.150.2 2008/05/15 01:42:11 tbox Exp $ -->
|
||||
<!-- $Id: dig.html,v 1.41 2007/05/16 06:12:01 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -34,7 +34,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543511"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543508"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
(domain information groper) is a flexible tool
|
||||
for interrogating DNS name servers. It performs DNS lookups and
|
||||
@@ -80,7 +80,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543580"></a><h2>SIMPLE USAGE</h2>
|
||||
<a name="id2543577"></a><h2>SIMPLE USAGE</h2>
|
||||
<p>
|
||||
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
|
||||
</p>
|
||||
@@ -126,7 +126,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543671"></a><h2>OPTIONS</h2>
|
||||
<a name="id2543668"></a><h2>OPTIONS</h2>
|
||||
<p>
|
||||
The <code class="option">-b</code> option sets the source IP address of the query
|
||||
to <em class="parameter"><code>address</code></em>. This must be a valid
|
||||
@@ -226,7 +226,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543942"></a><h2>QUERY OPTIONS</h2>
|
||||
<a name="id2543939"></a><h2>QUERY OPTIONS</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
provides a number of query options which affect
|
||||
the way in which lookups are made and the results displayed. Some of
|
||||
@@ -539,17 +539,13 @@
|
||||
validation.
|
||||
Requires dig be compiled with -DDIG_SIGCHASE.
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="option">+[no]nsid</code></span></dt>
|
||||
<dd><p>
|
||||
Include an EDNS name server ID request when sending a query.
|
||||
</p></dd>
|
||||
</dl></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545145"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<a name="id2545128"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<p>
|
||||
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
|
||||
supports
|
||||
@@ -595,7 +591,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545275"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2545258"></a><h2>IDN SUPPORT</h2>
|
||||
<p>
|
||||
If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
|
||||
domain name) support, it can accept and display non-ASCII domain names.
|
||||
@@ -609,14 +605,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545298"></a><h2>FILES</h2>
|
||||
<a name="id2545281"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/resolv.conf</code>
|
||||
</p>
|
||||
<p><code class="filename">${HOME}/.digrc</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545315"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2545298"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
|
||||
@@ -624,7 +620,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2545352"></a><h2>BUGS</h2>
|
||||
<a name="id2545335"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
There are probably too many query options.
|
||||
</p>
|
||||
|
||||
+125
-144
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dighost.c,v 1.304.12.5 2008/04/03 02:12:21 marka Exp $ */
|
||||
/* $Id: dighost.c,v 1.303 2007/06/18 23:47:17 tbox Exp $ */
|
||||
|
||||
/*! \file
|
||||
* \note
|
||||
@@ -277,7 +277,7 @@ dns_name_t chase_name; /* the query name */
|
||||
/*
|
||||
* the current name is the parent name when we follow delegation
|
||||
*/
|
||||
dns_name_t chase_current_name;
|
||||
dns_name_t chase_current_name;
|
||||
/*
|
||||
* the child name is used for delegation (NS DS responses in AUTHORITY section)
|
||||
*/
|
||||
@@ -493,7 +493,6 @@ void
|
||||
fatal(const char *format, ...) {
|
||||
va_list args;
|
||||
|
||||
fflush(stdout);
|
||||
fprintf(stderr, "%s: ", progname);
|
||||
va_start(args, format);
|
||||
vfprintf(stderr, format, args);
|
||||
@@ -511,7 +510,6 @@ debug(const char *format, ...) {
|
||||
va_list args;
|
||||
|
||||
if (debugging) {
|
||||
fflush(stdout);
|
||||
va_start(args, format);
|
||||
vfprintf(stderr, format, args);
|
||||
va_end(args);
|
||||
@@ -618,13 +616,13 @@ set_nameserver(char *opt) {
|
||||
return;
|
||||
|
||||
result = bind9_getaddresses(opt, 0, sockaddrs,
|
||||
DIG_MAX_ADDRESSES, &count);
|
||||
DIG_MAX_ADDRESSES, &count);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("couldn't get address for '%s': %s",
|
||||
opt, isc_result_totext(result));
|
||||
|
||||
flush_server_list();
|
||||
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
isc_netaddr_fromsockaddr(&netaddr, &sockaddrs[i]);
|
||||
isc_netaddr_format(&netaddr, tmp, sizeof(tmp));
|
||||
@@ -724,7 +722,6 @@ make_empty_lookup(void) {
|
||||
looknew->servfail_stops = ISC_TRUE;
|
||||
looknew->besteffort = ISC_TRUE;
|
||||
looknew->dnssec = ISC_FALSE;
|
||||
looknew->nsid = ISC_FALSE;
|
||||
#ifdef DIG_SIGCHASE
|
||||
looknew->sigchase = ISC_FALSE;
|
||||
#if DIG_SIGCHASE_TD
|
||||
@@ -804,7 +801,6 @@ clone_lookup(dig_lookup_t *lookold, isc_boolean_t servers) {
|
||||
looknew->servfail_stops = lookold->servfail_stops;
|
||||
looknew->besteffort = lookold->besteffort;
|
||||
looknew->dnssec = lookold->dnssec;
|
||||
looknew->nsid = lookold->nsid;
|
||||
#ifdef DIG_SIGCHASE
|
||||
looknew->sigchase = lookold->sigchase;
|
||||
#if DIG_SIGCHASE_TD
|
||||
@@ -895,7 +891,7 @@ setup_text_key(void) {
|
||||
result = isc_base64_decodestring(keysecret, &secretbuf);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto failure;
|
||||
|
||||
|
||||
secretsize = isc_buffer_usedlength(&secretbuf);
|
||||
|
||||
result = dns_name_fromtext(&keyname, namebuf,
|
||||
@@ -1029,7 +1025,7 @@ setup_system(void) {
|
||||
domain = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (ndots == -1) {
|
||||
ndots = lwconf->ndots;
|
||||
debug("ndots is %d.", ndots);
|
||||
@@ -1092,7 +1088,7 @@ clear_searchlist(void) {
|
||||
void
|
||||
set_search_domain(char *domain) {
|
||||
dig_searchlist_t *search;
|
||||
|
||||
|
||||
clear_searchlist();
|
||||
search = make_searchlist_entry(domain);
|
||||
ISC_LIST_APPEND(search_list, search, link);
|
||||
@@ -1157,11 +1153,11 @@ setup_libs(void) {
|
||||
|
||||
/*%
|
||||
* Add EDNS0 option record to a message. Currently, the only supported
|
||||
* options are UDP buffer size, the DO bit, and NSID request.
|
||||
* options are UDP buffer size and the DO bit.
|
||||
*/
|
||||
static void
|
||||
add_opt(dns_message_t *msg, isc_uint16_t udpsize, isc_uint16_t edns,
|
||||
isc_boolean_t dnssec, isc_boolean_t nsid)
|
||||
isc_boolean_t dnssec)
|
||||
{
|
||||
dns_rdataset_t *rdataset = NULL;
|
||||
dns_rdatalist_t *rdatalist = NULL;
|
||||
@@ -1184,19 +1180,8 @@ add_opt(dns_message_t *msg, isc_uint16_t udpsize, isc_uint16_t edns,
|
||||
rdatalist->ttl = edns << 16;
|
||||
if (dnssec)
|
||||
rdatalist->ttl |= DNS_MESSAGEEXTFLAG_DO;
|
||||
if (nsid) {
|
||||
unsigned char data[4];
|
||||
isc_buffer_t buf;
|
||||
|
||||
isc_buffer_init(&buf, data, sizeof(data));
|
||||
isc_buffer_putuint16(&buf, DNS_OPT_NSID);
|
||||
isc_buffer_putuint16(&buf, 0);
|
||||
rdata->data = data;
|
||||
rdata->length = sizeof(data);
|
||||
} else {
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
}
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
ISC_LIST_INIT(rdatalist->rdata);
|
||||
ISC_LIST_APPEND(rdatalist->rdata, rdata, link);
|
||||
dns_rdatalist_tordataset(rdatalist, rdataset);
|
||||
@@ -1424,7 +1409,7 @@ start_lookup(void) {
|
||||
current_lookup->qrdtype_sigchase
|
||||
= current_lookup->qrdtype;
|
||||
current_lookup->qrdtype = dns_rdatatype_ns;
|
||||
|
||||
|
||||
current_lookup->rdclass_sigchase
|
||||
= current_lookup->rdclass;
|
||||
current_lookup->rdclass_sigchaseset
|
||||
@@ -1505,7 +1490,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section)
|
||||
INSIST(!free_now);
|
||||
|
||||
debug("following up %s", query->lookup->textname);
|
||||
|
||||
|
||||
for (result = dns_message_firstname(msg, section);
|
||||
result == ISC_R_SUCCESS;
|
||||
result = dns_message_nextname(msg, section)) {
|
||||
@@ -1560,8 +1545,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section)
|
||||
dns_rdataset_current(rdataset, &rdata);
|
||||
|
||||
query->lookup->nsfound++;
|
||||
result = dns_rdata_tostruct(&rdata, &ns, NULL);
|
||||
check_result(result, "dns_rdata_tostruct");
|
||||
(void)dns_rdata_tostruct(&rdata, &ns, NULL);
|
||||
dns_name_format(&ns.name, namestr, sizeof(namestr));
|
||||
dns_rdata_freestruct(&ns);
|
||||
|
||||
@@ -1966,15 +1950,12 @@ setup_lookup(dig_lookup_t *lookup) {
|
||||
|
||||
if ((lookup->rdtype == dns_rdatatype_axfr) ||
|
||||
(lookup->rdtype == dns_rdatatype_ixfr)) {
|
||||
lookup->doing_xfr = ISC_TRUE;
|
||||
/*
|
||||
* Force TCP mode if we're doing an axfr.
|
||||
* Force TCP mode if we're doing an xfr.
|
||||
* XXX UDP ixfr's would be useful
|
||||
*/
|
||||
if (lookup->rdtype == dns_rdatatype_axfr) {
|
||||
lookup->doing_xfr = ISC_TRUE;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else if (lookup->tcp_mode) {
|
||||
lookup->doing_xfr = ISC_TRUE;
|
||||
}
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
}
|
||||
|
||||
add_question(lookup->sendmsg, lookup->name, lookup->rdclass,
|
||||
@@ -2011,7 +1992,7 @@ setup_lookup(dig_lookup_t *lookup) {
|
||||
if (lookup->edns < 0)
|
||||
lookup->edns = 0;
|
||||
add_opt(lookup->sendmsg, lookup->udpsize,
|
||||
lookup->edns, lookup->dnssec, lookup->nsid);
|
||||
lookup->edns, lookup->dnssec);
|
||||
}
|
||||
|
||||
result = dns_message_rendersection(lookup->sendmsg,
|
||||
@@ -2108,7 +2089,7 @@ send_done(isc_task_t *_task, isc_event_t *event) {
|
||||
|
||||
for (b = ISC_LIST_HEAD(sevent->bufferlist);
|
||||
b != NULL;
|
||||
b = ISC_LIST_HEAD(sevent->bufferlist))
|
||||
b = ISC_LIST_HEAD(sevent->bufferlist))
|
||||
ISC_LIST_DEQUEUE(sevent->bufferlist, b, link);
|
||||
|
||||
query = event->ev_arg;
|
||||
@@ -2188,7 +2169,7 @@ bringup_timer(dig_query_t *query, unsigned int default_timeout) {
|
||||
&l->interval, global_task, connect_timeout,
|
||||
l, &l->timer);
|
||||
check_result(result, "isc_timer_create");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
connect_done(isc_task_t *task, isc_event_t *event);
|
||||
@@ -2210,7 +2191,7 @@ send_tcp_connect(dig_query_t *query) {
|
||||
query->waiting_connect = ISC_TRUE;
|
||||
query->lookup->current_query = query;
|
||||
get_address(query->servname, port, &query->sockaddr);
|
||||
|
||||
|
||||
if (specified_source &&
|
||||
(isc_sockaddr_pf(&query->sockaddr) !=
|
||||
isc_sockaddr_pf(&bind_address))) {
|
||||
@@ -2680,8 +2661,7 @@ check_for_more_data(dig_query_t *query, dns_message_t *msg,
|
||||
goto next_rdata;
|
||||
/* Now we have an SOA. Work with it. */
|
||||
debug("got an SOA");
|
||||
result = dns_rdata_tostruct(&rdata, &soa, NULL);
|
||||
check_result(result, "dns_rdata_tostruct");
|
||||
(void)dns_rdata_tostruct(&rdata, &soa, NULL);
|
||||
serial = soa.serial;
|
||||
dns_rdata_freestruct(&soa);
|
||||
if (!query->first_soa_rcvd) {
|
||||
@@ -2844,13 +2824,13 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
char buf2[ISC_SOCKADDR_FORMATSIZE];
|
||||
isc_sockaddr_t any;
|
||||
|
||||
if (isc_sockaddr_pf(&query->sockaddr) == AF_INET)
|
||||
if (isc_sockaddr_pf(&query->sockaddr) == AF_INET)
|
||||
isc_sockaddr_any(&any);
|
||||
else
|
||||
isc_sockaddr_any6(&any);
|
||||
|
||||
/*
|
||||
* We don't expect a match when the packet is
|
||||
* We don't expect a match when the packet is
|
||||
* sent to 0.0.0.0, :: or to a multicast addresses.
|
||||
* XXXMPA broadcast needs to be handled here as well.
|
||||
*/
|
||||
@@ -2868,7 +2848,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
}
|
||||
|
||||
result = dns_message_peekheader(b, &id, &msgflags);
|
||||
result = dns_message_peekheader(b, &id, &msgflags);
|
||||
if (result != ISC_R_SUCCESS || l->sendmsg->id != id) {
|
||||
match = ISC_FALSE;
|
||||
if (l->tcp_mode) {
|
||||
@@ -2973,7 +2953,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
return;
|
||||
}
|
||||
if ((msg->flags & DNS_MESSAGEFLAG_TC) != 0 &&
|
||||
!l->ignore && !l->tcp_mode) {
|
||||
!l->ignore && !l->tcp_mode) {
|
||||
printf(";; Truncated, retrying in TCP mode.\n");
|
||||
n = requeue_lookup(l, ISC_TRUE);
|
||||
n->tcp_mode = ISC_TRUE;
|
||||
@@ -2985,7 +2965,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
check_next_lookup(l);
|
||||
UNLOCK_LOOKUP;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ((msg->rcode == dns_rcode_servfail && !l->servfail_stops) ||
|
||||
(check_ra && (msg->flags & DNS_MESSAGEFLAG_RA) == 0 && l->recurse))
|
||||
{
|
||||
@@ -3111,7 +3091,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
if (l->trace_root) {
|
||||
/*
|
||||
* This is the initial NS query.
|
||||
* This is the initial NS query.
|
||||
*/
|
||||
int n;
|
||||
|
||||
@@ -3126,7 +3106,7 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
if (!do_sigchase)
|
||||
#endif
|
||||
printmessage(query, msg, ISC_TRUE);
|
||||
}
|
||||
}
|
||||
#ifdef DIG_SIGCHASE
|
||||
if (do_sigchase) {
|
||||
chase_msg = isc_mem_allocate(mctx,
|
||||
@@ -3145,13 +3125,13 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
isc_buffer_usedregion(b, &r);
|
||||
result = isc_buffer_allocate(mctx, &buf, r.length);
|
||||
|
||||
|
||||
check_result(result, "isc_buffer_allocate");
|
||||
result = isc_buffer_copyregion(buf, &r);
|
||||
check_result(result, "isc_buffer_copyregion");
|
||||
|
||||
|
||||
result = dns_message_parse(msg_temp, buf, 0);
|
||||
|
||||
|
||||
isc_buffer_free(&buf);
|
||||
chase_msg->msg = msg_temp;
|
||||
|
||||
@@ -3167,9 +3147,9 @@ recv_done(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef DIG_SIGCHASE
|
||||
if (l->sigchase && ISC_LIST_EMPTY(lookup_list)) {
|
||||
if (l->sigchase && ISC_LIST_EMPTY(lookup_list)) {
|
||||
sigchase(msg_temp);
|
||||
}
|
||||
#endif
|
||||
@@ -3326,7 +3306,7 @@ cancel_all(void) {
|
||||
*/
|
||||
void
|
||||
destroy_libs(void) {
|
||||
#ifdef DIG_SIGCHASE
|
||||
#ifdef DIG_SIGCHASE
|
||||
void * ptr;
|
||||
dig_message_t *chase_msg;
|
||||
#endif
|
||||
@@ -3366,8 +3346,8 @@ destroy_libs(void) {
|
||||
clear_searchlist();
|
||||
|
||||
#ifdef WITH_IDN
|
||||
result = dns_name_settotextfilter(NULL);
|
||||
check_result(result, "dns_name_settotextfilter");
|
||||
result = dns_name_settotextfilter(NULL);
|
||||
check_result(result, "dns_name_settotextfilter");
|
||||
#endif
|
||||
dns_name_destroy();
|
||||
|
||||
@@ -3439,7 +3419,7 @@ destroy_libs(void) {
|
||||
#endif
|
||||
|
||||
debug("Destroy memory");
|
||||
|
||||
|
||||
#endif
|
||||
if (memdebugging != 0)
|
||||
isc_mem_stats(mctx, stderr);
|
||||
@@ -3536,7 +3516,7 @@ append_textname(char *name, const char *origin, size_t namesize) {
|
||||
(void)strcpy(name + namelen, origin);
|
||||
return idn_success;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
idn_check_result(idn_result_t r, const char *msg) {
|
||||
if (r != idn_success) {
|
||||
@@ -3572,14 +3552,14 @@ void
|
||||
dump_database_section(dns_message_t *msg, int section)
|
||||
{
|
||||
dns_name_t *msg_name=NULL;
|
||||
|
||||
|
||||
dns_rdataset_t *rdataset;
|
||||
|
||||
do {
|
||||
dns_message_currentname(msg, section, &msg_name);
|
||||
|
||||
|
||||
for (rdataset = ISC_LIST_HEAD(msg_name->list); rdataset != NULL;
|
||||
rdataset = ISC_LIST_NEXT(rdataset, link)) {
|
||||
rdataset = ISC_LIST_NEXT(rdataset, link)) {
|
||||
dns_name_print(msg_name, stdout);
|
||||
printf("\n");
|
||||
print_rdataset(msg_name, rdataset, mctx);
|
||||
@@ -3596,15 +3576,15 @@ dump_database(void) {
|
||||
for (msg = ISC_LIST_HEAD(chase_message_list); msg != NULL;
|
||||
msg = ISC_LIST_NEXT(msg, link)) {
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_ANSWER)
|
||||
== ISC_R_SUCCESS)
|
||||
== ISC_R_SUCCESS)
|
||||
dump_database_section(msg->msg, DNS_SECTION_ANSWER);
|
||||
|
||||
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_AUTHORITY)
|
||||
== ISC_R_SUCCESS)
|
||||
== ISC_R_SUCCESS)
|
||||
dump_database_section(msg->msg, DNS_SECTION_AUTHORITY);
|
||||
|
||||
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_ADDITIONAL)
|
||||
== ISC_R_SUCCESS)
|
||||
== ISC_R_SUCCESS)
|
||||
dump_database_section(msg->msg, DNS_SECTION_ADDITIONAL);
|
||||
}
|
||||
}
|
||||
@@ -3634,7 +3614,7 @@ search_type(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers) {
|
||||
if ((siginfo.covered == covers) ||
|
||||
(covers == dns_rdatatype_any)) {
|
||||
dns_rdata_reset(&sigrdata);
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
return (rdataset);
|
||||
}
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -3672,7 +3652,7 @@ chase_scanname(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers)
|
||||
{
|
||||
dns_rdataset_t *rdataset = NULL;
|
||||
dig_message_t * msg;
|
||||
|
||||
|
||||
for (msg = ISC_LIST_HEAD(chase_message_list2); msg != NULL;
|
||||
msg = ISC_LIST_NEXT(msg, link)) {
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_ANSWER)
|
||||
@@ -3765,7 +3745,7 @@ insert_trustedkey(dst_key_t * key)
|
||||
return;
|
||||
|
||||
tk_list.key[tk_list.nb_tk++] = key;
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -3788,7 +3768,7 @@ char alphnum[] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
|
||||
isc_result_t
|
||||
removetmpkey(isc_mem_t *mctx, const char *file)
|
||||
removetmpkey(isc_mem_t *mctx, const char *file)
|
||||
{
|
||||
char *tempnamekey = NULL;
|
||||
int tempnamekeylen;
|
||||
@@ -3801,7 +3781,7 @@ removetmpkey(isc_mem_t *mctx, const char *file)
|
||||
return (ISC_R_NOMEMORY);
|
||||
|
||||
memset(tempnamekey, 0, tempnamekeylen);
|
||||
|
||||
|
||||
strcat(tempnamekey, file);
|
||||
strcat(tempnamekey,".key");
|
||||
isc_file_remove(tempnamekey);
|
||||
@@ -3841,24 +3821,24 @@ opentmpkey(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) {
|
||||
isc_mem_free(mctx, tempname);
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
|
||||
x = cp--;
|
||||
while (cp >= tempname && *cp == 'X') {
|
||||
isc_random_get(&which);
|
||||
*cp = alphnum[which % (sizeof(alphnum) - 1)];
|
||||
x = cp--;
|
||||
}
|
||||
|
||||
|
||||
tempnamekeylen = tempnamelen+5;
|
||||
tempnamekey = isc_mem_allocate(mctx, tempnamekeylen);
|
||||
if (tempnamekey == NULL)
|
||||
return (ISC_R_NOMEMORY);
|
||||
|
||||
|
||||
memset(tempnamekey, 0, tempnamekeylen);
|
||||
strncpy(tempnamekey, tempname, tempnamelen);
|
||||
strcat(tempnamekey ,".key");
|
||||
|
||||
|
||||
|
||||
if (isc_file_exists(tempnamekey)) {
|
||||
isc_mem_free(mctx, tempnamekey);
|
||||
isc_mem_free(mctx, tempname);
|
||||
@@ -3879,7 +3859,7 @@ opentmpkey(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) {
|
||||
|
||||
cleanup:
|
||||
isc_mem_free(mctx, tempname);
|
||||
|
||||
|
||||
return (result);
|
||||
}
|
||||
|
||||
@@ -3893,7 +3873,7 @@ get_trusted_key(isc_mem_t *mctx)
|
||||
char buf[1500];
|
||||
FILE *fp, *fptemp;
|
||||
dst_key_t *key = NULL;
|
||||
|
||||
|
||||
result = isc_file_exists(trustedkey);
|
||||
if (result != ISC_TRUE) {
|
||||
result = isc_file_exists("/etc/trusted-key.key");
|
||||
@@ -3971,11 +3951,11 @@ nameFromString(const char *str, dns_name_t *p_ret) {
|
||||
|
||||
result = dns_name_dup(dns_fixedname_name(&fixedname), mctx, p_ret);
|
||||
check_result(result, "nameFromString");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#if DIG_SIGCHASE_TD
|
||||
isc_result_t
|
||||
isc_result_t
|
||||
prepare_lookup(dns_name_t *name)
|
||||
{
|
||||
isc_result_t result;
|
||||
@@ -3993,7 +3973,7 @@ prepare_lookup(dns_name_t *name)
|
||||
lookup->rdtype = lookup->rdtype_sigchase;
|
||||
lookup->rdtypeset = ISC_TRUE;
|
||||
lookup->qrdtype = lookup->qrdtype_sigchase;
|
||||
|
||||
|
||||
s = ISC_LIST_HEAD(lookup->my_server_list);
|
||||
while (s != NULL) {
|
||||
debug("freeing server %p belonging to %p",
|
||||
@@ -4026,11 +4006,12 @@ prepare_lookup(dns_name_t *name)
|
||||
|
||||
dns_rdataset_current(chase_nsrdataset, &rdata);
|
||||
|
||||
result = dns_rdata_tostruct(&rdata, &ns, NULL);
|
||||
check_result(result, "dns_rdata_tostruct");
|
||||
|
||||
(void)dns_rdata_tostruct(&rdata, &ns, NULL);
|
||||
|
||||
|
||||
|
||||
#ifdef __FOLLOW_GLUE__
|
||||
|
||||
|
||||
result = advanced_rrsearch(&rdataset, &ns.name,
|
||||
dns_rdatatype_aaaa,
|
||||
dns_rdatatype_any, &true);
|
||||
@@ -4054,12 +4035,12 @@ prepare_lookup(dns_name_t *name)
|
||||
|
||||
|
||||
srv = make_server(namestr, namestr);
|
||||
|
||||
|
||||
ISC_LIST_APPEND(lookup->my_server_list,
|
||||
srv, link);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
rdataset = NULL;
|
||||
result = advanced_rrsearch(&rdataset, &ns.name, dns_rdatatype_a,
|
||||
dns_rdatatype_any, &true);
|
||||
@@ -4081,28 +4062,28 @@ prepare_lookup(dns_name_t *name)
|
||||
isc_buffer_free(&b);
|
||||
dns_rdata_reset(&a);
|
||||
printf("ns name: %s\n", namestr);
|
||||
|
||||
|
||||
|
||||
srv = make_server(namestr, namestr);
|
||||
|
||||
|
||||
ISC_LIST_APPEND(lookup->my_server_list,
|
||||
srv, link);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
|
||||
dns_name_format(&ns.name, namestr, sizeof(namestr));
|
||||
printf("ns name: ");
|
||||
dns_name_print(&ns.name, stdout);
|
||||
printf("\n");
|
||||
srv = make_server(namestr, namestr);
|
||||
|
||||
|
||||
ISC_LIST_APPEND(lookup->my_server_list, srv, link);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
dns_rdata_freestruct(&ns);
|
||||
dns_rdata_reset(&rdata);
|
||||
|
||||
|
||||
}
|
||||
|
||||
ISC_LIST_APPEND(lookup_list, lookup, link);
|
||||
@@ -4156,10 +4137,10 @@ grandfather_pb_test(dns_name_t *zone_name, dns_rdataset_t *sigrdataset)
|
||||
|
||||
do {
|
||||
dns_rdataset_current(sigrdataset, &sigrdata);
|
||||
|
||||
|
||||
result = dns_rdata_tostruct(&sigrdata, &siginfo, NULL);
|
||||
check_result(result, "sigrdata tostruct siginfo");
|
||||
|
||||
|
||||
if (dns_name_compare(&siginfo.signer, zone_name) == 0) {
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -4167,7 +4148,7 @@ grandfather_pb_test(dns_name_t *zone_name, dns_rdataset_t *sigrdataset)
|
||||
}
|
||||
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
|
||||
|
||||
} while (dns_rdataset_next(chase_sigkeyrdataset) == ISC_R_SUCCESS);
|
||||
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -4197,7 +4178,7 @@ initialization(dns_name_t *name)
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void
|
||||
print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx)
|
||||
@@ -4221,10 +4202,10 @@ print_rdataset(dns_name_t *name, dns_rdataset_t *rdataset, isc_mem_t *mctx)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
void
|
||||
dup_name(dns_name_t *source, dns_name_t *target, isc_mem_t *mctx) {
|
||||
isc_result_t result;
|
||||
|
||||
isc_result_t result;
|
||||
|
||||
if (dns_name_dynamic(target))
|
||||
free_name(target, mctx);
|
||||
result = dns_name_dup(source, mctx, target);
|
||||
@@ -4243,7 +4224,7 @@ free_name(dns_name_t *name, isc_mem_t *mctx) {
|
||||
* return ISC_R_SUCCESS if the DNSKEY RRset contains a trusted_key
|
||||
* and the RRset is valid
|
||||
* return ISC_R_NOTFOUND if not contains trusted key
|
||||
or if the RRset isn't valid
|
||||
or if the RRset isn't valid
|
||||
* return ISC_R_FAILURE if problem
|
||||
*
|
||||
*/
|
||||
@@ -4268,17 +4249,17 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
do {
|
||||
dns_rdataset_current(rdataset, &rdata);
|
||||
INSIST(rdata.type == dns_rdatatype_dnskey);
|
||||
|
||||
|
||||
result = dns_dnssec_keyfromrdata(name, &rdata,
|
||||
mctx, &dnsseckey);
|
||||
check_result(result, "dns_dnssec_keyfromrdata");
|
||||
|
||||
|
||||
|
||||
for (i = 0; i < tk_list.nb_tk; i++) {
|
||||
if (dst_key_compare(tk_list.key[i], dnsseckey)
|
||||
== ISC_TRUE) {
|
||||
dns_rdata_reset(&rdata);
|
||||
|
||||
|
||||
printf(";; Ok, find a Trusted Key in the "
|
||||
"DNSKEY RRset: %d\n",
|
||||
dst_key_id(dnsseckey));
|
||||
@@ -4293,7 +4274,7 @@ contains_trusted_key(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dns_rdata_reset(&rdata);
|
||||
if (dnsseckey != NULL)
|
||||
dst_key_free(&dnsseckey);
|
||||
@@ -4323,7 +4304,7 @@ sigchase_verify_sig(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
do {
|
||||
dns_rdataset_current(keyrdataset, &keyrdata);
|
||||
INSIST(keyrdata.type == dns_rdatatype_dnskey);
|
||||
|
||||
|
||||
result = dns_dnssec_keyfromrdata(name, &keyrdata,
|
||||
mctx, &dnsseckey);
|
||||
check_result(result, "dns_dnssec_keyfromrdata");
|
||||
@@ -4355,22 +4336,22 @@ sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
result = dns_rdataset_first(sigrdataset);
|
||||
check_result(result, "empty RRSIG dataset");
|
||||
dns_rdata_init(&sigrdata);
|
||||
|
||||
|
||||
do {
|
||||
dns_rdataset_current(sigrdataset, &sigrdata);
|
||||
|
||||
result = dns_rdata_tostruct(&sigrdata, &siginfo, NULL);
|
||||
check_result(result, "sigrdata tostruct siginfo");
|
||||
|
||||
|
||||
/*
|
||||
* Test if the id of the DNSKEY is
|
||||
* the id of the DNSKEY signer's
|
||||
*/
|
||||
if (siginfo.keyid == dst_key_id(dnsseckey)) {
|
||||
|
||||
|
||||
result = dns_rdataset_first(rdataset);
|
||||
check_result(result, "empty DS dataset");
|
||||
|
||||
|
||||
result = dns_dnssec_verify(name, rdataset, dnsseckey,
|
||||
ISC_FALSE, mctx, &sigrdata);
|
||||
|
||||
@@ -4387,7 +4368,7 @@ sigchase_verify_sig_key(dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
}
|
||||
}
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
|
||||
|
||||
} while (dns_rdataset_next(chase_sigkeyrdataset) == ISC_R_SUCCESS);
|
||||
|
||||
dns_rdata_reset(&sigrdata);
|
||||
@@ -4413,18 +4394,18 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
dns_rdata_init(&dsrdata);
|
||||
do {
|
||||
dns_rdataset_current(dsrdataset, &dsrdata);
|
||||
|
||||
|
||||
result = dns_rdata_tostruct(&dsrdata, &dsinfo, NULL);
|
||||
check_result(result, "dns_rdata_tostruct for DS");
|
||||
|
||||
|
||||
result = dns_rdataset_first(keyrdataset);
|
||||
check_result(result, "empty KEY dataset");
|
||||
dns_rdata_init(&keyrdata);
|
||||
dns_rdata_init(&keyrdata);
|
||||
|
||||
do {
|
||||
dns_rdataset_current(keyrdataset, &keyrdata);
|
||||
INSIST(keyrdata.type == dns_rdatatype_dnskey);
|
||||
|
||||
|
||||
result = dns_dnssec_keyfromrdata(name, &keyrdata,
|
||||
mctx, &dnsseckey);
|
||||
check_result(result, "dns_dnssec_keyfromrdata");
|
||||
@@ -4439,20 +4420,20 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
result = dns_ds_buildrdata(name, &keyrdata,
|
||||
dsinfo.digest_type,
|
||||
dsbuf, &newdsrdata);
|
||||
dns_rdata_freestruct(&dsinfo);
|
||||
dns_rdata_freestruct(&dsinfo);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_rdata_reset(&keyrdata);
|
||||
dns_rdata_reset(&newdsrdata);
|
||||
dns_rdata_reset(&dsrdata);
|
||||
dst_key_free(&dnsseckey);
|
||||
dns_rdata_freestruct(&dsinfo);
|
||||
dns_rdata_freestruct(&dsinfo);
|
||||
printf("Oops: impossible to build"
|
||||
" new DS rdata\n");
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (dns_rdata_compare(&dsrdata,
|
||||
&newdsrdata) == 0) {
|
||||
printf(";; OK a DS valids a DNSKEY"
|
||||
@@ -4460,7 +4441,7 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
printf(";; Now verify that this"
|
||||
" DNSKEY validates the "
|
||||
"DNSKEY RRset\n");
|
||||
|
||||
|
||||
result = sigchase_verify_sig_key(name,
|
||||
keyrdataset,
|
||||
dnsseckey,
|
||||
@@ -4471,7 +4452,7 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
dns_rdata_reset(&newdsrdata);
|
||||
dns_rdata_reset(&dsrdata);
|
||||
dst_key_free(&dnsseckey);
|
||||
|
||||
|
||||
return (result);
|
||||
}
|
||||
} else {
|
||||
@@ -4485,12 +4466,12 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
dnsseckey = NULL;
|
||||
} while (dns_rdataset_next(chase_keyrdataset) == ISC_R_SUCCESS);
|
||||
dns_rdata_reset(&keyrdata);
|
||||
|
||||
|
||||
} while (dns_rdataset_next(chase_dsrdataset) == ISC_R_SUCCESS);
|
||||
#if 0
|
||||
dns_rdata_reset(&dsrdata); WARNING
|
||||
#endif
|
||||
|
||||
|
||||
return (ISC_R_NOTFOUND);
|
||||
}
|
||||
|
||||
@@ -4503,13 +4484,13 @@ sigchase_verify_ds(dns_name_t *name, dns_rdataset_t *keyrdataset,
|
||||
* ISC_R_SUCCESS: if we found the rrset
|
||||
* ISC_R_NOTFOUND: we do not found the rrset in cache
|
||||
* and we do a query on the net
|
||||
* ISC_R_FAILURE: rrset not found
|
||||
* ISC_R_FAILURE: rrset not found
|
||||
*/
|
||||
isc_result_t
|
||||
advanced_rrsearch(dns_rdataset_t **rdataset, dns_name_t *name,
|
||||
dns_rdatatype_t type, dns_rdatatype_t covers,
|
||||
isc_boolean_t *lookedup)
|
||||
{
|
||||
{
|
||||
isc_boolean_t tmplookedup;
|
||||
|
||||
INSIST(rdataset != NULL);
|
||||
@@ -4584,7 +4565,7 @@ sigchase_td(dns_message_t *msg)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (have_answer) {
|
||||
chase_rdataset
|
||||
= chase_scanname_section(msg, &chase_name,
|
||||
@@ -4644,7 +4625,7 @@ sigchase_td(dns_message_t *msg)
|
||||
chase_dsrdataset,
|
||||
mctx);
|
||||
}
|
||||
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
printf("\n;; chain of trust can't be validated:"
|
||||
" FAILED\n\n");
|
||||
@@ -4696,7 +4677,7 @@ sigchase_td(dns_message_t *msg)
|
||||
chase_sigrdataset = NULL;
|
||||
have_response = ISC_FALSE;
|
||||
have_delegation_ns = ISC_FALSE;
|
||||
|
||||
|
||||
dns_name_init(&tmp_name, NULL);
|
||||
result = child_of_zone(&chase_name, &chase_current_name,
|
||||
&tmp_name);
|
||||
@@ -4775,10 +4756,10 @@ sigchase_td(dns_message_t *msg)
|
||||
}
|
||||
chase_keyrdataset = NULL;
|
||||
chase_sigkeyrdataset = NULL;
|
||||
|
||||
|
||||
|
||||
|
||||
prepare_lookup(&chase_authority_name);
|
||||
|
||||
|
||||
have_response = ISC_FALSE;
|
||||
have_delegation_ns = ISC_FALSE;
|
||||
delegation_follow = ISC_TRUE;
|
||||
@@ -4872,7 +4853,7 @@ sigchase_td(dns_message_t *msg)
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if DIG_SIGCHASE_BU
|
||||
@@ -4889,7 +4870,7 @@ getneededrr(dns_message_t *msg)
|
||||
if ((result = dns_message_firstname(msg, DNS_SECTION_ANSWER))
|
||||
!= ISC_R_SUCCESS) {
|
||||
printf(";; NO ANSWERS: %s\n", isc_result_totext(result));
|
||||
|
||||
|
||||
if (chase_name.ndata == NULL)
|
||||
return (ISC_R_ADDRNOTAVAIL);
|
||||
} else {
|
||||
@@ -4932,7 +4913,7 @@ getneededrr(dns_message_t *msg)
|
||||
}
|
||||
INSIST(chase_sigrdataset != NULL);
|
||||
|
||||
|
||||
|
||||
/* first find the DNSKEY name */
|
||||
result = dns_rdataset_first(chase_sigrdataset);
|
||||
check_result(result, "empty RRSIG dataset");
|
||||
@@ -4943,7 +4924,7 @@ getneededrr(dns_message_t *msg)
|
||||
dup_name(&siginfo.signer, &chase_signame, mctx);
|
||||
dns_rdata_freestruct(&siginfo);
|
||||
dns_rdata_reset(&sigrdata);
|
||||
|
||||
|
||||
/* Do we have a key? */
|
||||
if (chase_keyrdataset == NULL) {
|
||||
result = advanced_rrsearch(&chase_keyrdataset,
|
||||
@@ -5012,7 +4993,7 @@ getneededrr(dns_message_t *msg)
|
||||
print_rdataset(&chase_signame, chase_dsrdataset, mctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (chase_dsrdataset != NULL) {
|
||||
/*
|
||||
* if there is no RRSIG of DS,
|
||||
@@ -5071,7 +5052,7 @@ sigchase_bu(dns_message_t *msg)
|
||||
dns_name_init(&query_name, NULL);
|
||||
dns_name_init(&rdata_name, NULL);
|
||||
nameFromString(current_lookup->textname, &query_name);
|
||||
|
||||
|
||||
result = prove_nx(msg, &query_name, current_lookup->rdclass,
|
||||
current_lookup->rdtype, &rdata_name,
|
||||
&rdataset, &sigrdataset);
|
||||
@@ -5093,7 +5074,7 @@ sigchase_bu(dns_message_t *msg)
|
||||
}
|
||||
printf(";; An NSEC prove the non-existence of a answers,"
|
||||
" Now we want validate this NSEC\n");
|
||||
|
||||
|
||||
dup_name(&rdata_name, &chase_name, mctx);
|
||||
free_name(&rdata_name, mctx);
|
||||
chase_rdataset = rdataset;
|
||||
@@ -5174,7 +5155,7 @@ sigchase_bu(dns_message_t *msg)
|
||||
chase_sigdsrdataset = NULL;
|
||||
chase_siglookedup = chase_keylookedup = ISC_FALSE;
|
||||
chase_dslookedup = chase_sigdslookedup = ISC_FALSE;
|
||||
|
||||
|
||||
printf(";; Now, we want to validate the DS : recursive call\n");
|
||||
sigchase(msg);
|
||||
return;
|
||||
@@ -5267,7 +5248,7 @@ prove_nx_domain(dns_message_t *msg,
|
||||
" validate the non-existence : FAILED\n");
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
|
||||
do {
|
||||
nsecname = NULL;
|
||||
dns_message_currentname(msg, DNS_SECTION_AUTHORITY, &nsecname);
|
||||
@@ -5345,7 +5326,7 @@ prove_nx_type(dns_message_t *msg, dns_name_t *name, dns_rdataset_t *nsecset,
|
||||
|
||||
ret = dns_rdataset_first(nsecset);
|
||||
check_result(ret,"dns_rdataset_first");
|
||||
|
||||
|
||||
dns_rdataset_current(nsecset, &nsec);
|
||||
|
||||
ret = dns_nsec_typepresent(&nsec, type);
|
||||
@@ -5413,6 +5394,6 @@ prove_nx(dns_message_t *msg, dns_name_t *name, dns_rdataclass_t class,
|
||||
rdataset, sigrdataset);
|
||||
return (ret);
|
||||
}
|
||||
/* Never get here */
|
||||
/* Never get here */
|
||||
}
|
||||
#endif
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
.\" Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.\" Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
.\"
|
||||
.\" Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: host.1,v 1.28.164.2 2008/04/06 01:41:39 tbox Exp $
|
||||
.\" $Id: host.1,v 1.28 2007/05/09 03:33:50 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -154,7 +154,7 @@ option is used to select the query type.
|
||||
\fItype\fR
|
||||
can be any recognized query type: CNAME, NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified,
|
||||
\fBhost\fR
|
||||
automatically selects an appropriate query type. By default it looks for A, AAAA, and MX records, but if the
|
||||
automatically selects an appropriate query type. By default it looks for A records, but if the
|
||||
\fB\-C\fR
|
||||
option was given, queries will be made for SOA records, and if
|
||||
\fIname\fR
|
||||
@@ -213,7 +213,7 @@ runs.
|
||||
\fBdig\fR(1),
|
||||
\fBnamed\fR(8).
|
||||
.SH "COPYRIGHT"
|
||||
Copyright \(co 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
Copyright \(co 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
.br
|
||||
Copyright \(co 2000\-2002 Internet Software Consortium.
|
||||
.br
|
||||
|
||||
+1
-2
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: host.c,v 1.116 2007/12/03 00:21:48 marka Exp $ */
|
||||
/* $Id: host.c,v 1.115 2007/08/15 04:40:30 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -689,7 +689,6 @@ parse_args(isc_boolean_t is_batchfile, int argc, char **argv) {
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
} else if (rdtype == dns_rdatatype_ixfr) {
|
||||
lookup->ixfr_serial = serial;
|
||||
lookup->tcp_mode = ISC_TRUE;
|
||||
list_type = rdtype;
|
||||
#ifdef WITH_IDN
|
||||
} else if (rdtype == dns_rdatatype_a ||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[<!ENTITY mdash "—">]>
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: host.docbook,v 1.16.130.2 2008/04/05 23:46:39 tbox Exp $ -->
|
||||
<!-- $Id: host.docbook,v 1.16 2007/06/18 23:47:17 tbox Exp $ -->
|
||||
<refentry id="man.host">
|
||||
|
||||
<refentryinfo>
|
||||
@@ -41,7 +41,6 @@
|
||||
<year>2004</year>
|
||||
<year>2005</year>
|
||||
<year>2007</year>
|
||||
<year>2008</year>
|
||||
<holder>Internet Systems Consortium, Inc. ("ISC")</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
@@ -200,7 +199,7 @@
|
||||
NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified,
|
||||
<command>host</command> automatically selects an appropriate
|
||||
query
|
||||
type. By default it looks for A, AAAA, and MX records, but if the
|
||||
type. By default it looks for A records, but if the
|
||||
<option>-C</option> option was given, queries will be made for SOA
|
||||
records, and if <parameter>name</parameter> is a
|
||||
dotted-decimal IPv4
|
||||
|
||||
+7
-7
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: host.html,v 1.27.164.2 2008/04/06 01:41:39 tbox Exp $ -->
|
||||
<!-- $Id: host.html,v 1.27 2007/05/09 03:33:50 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">host</code> [<code class="option">-aCdlnrsTwv</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-N <em class="replaceable"><code>ndots</code></em></code>] [<code class="option">-R <em class="replaceable"><code>number</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-W <em class="replaceable"><code>wait</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] {name} [server]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543431"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2543428"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">host</strong></span>
|
||||
is a simple utility for performing DNS lookups.
|
||||
It is normally used to convert names to IP addresses and vice versa.
|
||||
@@ -148,7 +148,7 @@
|
||||
NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified,
|
||||
<span><strong class="command">host</strong></span> automatically selects an appropriate
|
||||
query
|
||||
type. By default it looks for A, AAAA, and MX records, but if the
|
||||
type. By default it looks for A records, but if the
|
||||
<code class="option">-C</code> option was given, queries will be made for SOA
|
||||
records, and if <em class="parameter"><code>name</code></em> is a
|
||||
dotted-decimal IPv4
|
||||
@@ -184,7 +184,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543797"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2543725"></a><h2>IDN SUPPORT</h2>
|
||||
<p>
|
||||
If <span><strong class="command">host</strong></span> has been built with IDN (internationalized
|
||||
domain name) support, it can accept and display non-ASCII domain names.
|
||||
@@ -198,12 +198,12 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543819"></a><h2>FILES</h2>
|
||||
<a name="id2543748"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/resolv.conf</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543831"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2543828"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
|
||||
</p>
|
||||
|
||||
+15
-16
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dig.h,v 1.105.130.2 2008/04/03 06:08:26 tbox Exp $ */
|
||||
/* $Id: dig.h,v 1.105 2007/06/18 23:47:17 tbox Exp $ */
|
||||
|
||||
#ifndef DIG_H
|
||||
#define DIG_H
|
||||
@@ -102,7 +102,7 @@ typedef struct dig_searchlist dig_searchlist_t;
|
||||
/*% The dig_lookup structure */
|
||||
struct dig_lookup {
|
||||
isc_boolean_t
|
||||
pending, /*%< Pending a successful answer */
|
||||
pending, /*%< Pending a successful answer */
|
||||
waiting_connect,
|
||||
doing_xfr,
|
||||
ns_search_only, /*%< dig +nssearch, host -C */
|
||||
@@ -129,28 +129,27 @@ struct dig_lookup {
|
||||
need_search,
|
||||
done_as_is,
|
||||
besteffort,
|
||||
dnssec,
|
||||
nsid; /*% Name Server ID (RFC 5001) */
|
||||
dnssec;
|
||||
#ifdef DIG_SIGCHASE
|
||||
isc_boolean_t sigchase;
|
||||
#if DIG_SIGCHASE_TD
|
||||
isc_boolean_t do_topdown,
|
||||
trace_root_sigchase,
|
||||
rdtype_sigchaseset,
|
||||
rdclass_sigchaseset;
|
||||
isc_boolean_t do_topdown,
|
||||
trace_root_sigchase,
|
||||
rdtype_sigchaseset,
|
||||
rdclass_sigchaseset;
|
||||
/* Name we are going to validate RRset */
|
||||
char textnamesigchase[MXNAME];
|
||||
char textnamesigchase[MXNAME];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
char textname[MXNAME]; /*% Name we're going to be looking up */
|
||||
char cmdline[MXNAME];
|
||||
dns_rdatatype_t rdtype;
|
||||
dns_rdatatype_t qrdtype;
|
||||
#if DIG_SIGCHASE_TD
|
||||
dns_rdatatype_t rdtype_sigchase;
|
||||
dns_rdatatype_t qrdtype_sigchase;
|
||||
dns_rdataclass_t rdclass_sigchase;
|
||||
dns_rdatatype_t rdtype_sigchase;
|
||||
dns_rdatatype_t qrdtype_sigchase;
|
||||
dns_rdataclass_t rdclass_sigchase;
|
||||
#endif
|
||||
dns_rdataclass_t rdclass;
|
||||
isc_boolean_t rdtypeset;
|
||||
@@ -232,7 +231,7 @@ struct dig_searchlist {
|
||||
};
|
||||
#ifdef DIG_SIGCHASE
|
||||
struct dig_message {
|
||||
dns_message_t *msg;
|
||||
dns_message_t *msg;
|
||||
ISC_LINK(dig_message_t) link;
|
||||
};
|
||||
#endif
|
||||
@@ -250,7 +249,7 @@ extern dig_searchlistlist_t search_list;
|
||||
extern unsigned int extrabytes;
|
||||
|
||||
extern isc_boolean_t check_ra, have_ipv4, have_ipv6, specified_source,
|
||||
usesearch, showsearch, qr;
|
||||
usesearch, showsearch, qr;
|
||||
extern in_port_t port;
|
||||
extern unsigned int timeout;
|
||||
extern isc_mem_t *mctx;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Portions Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Portions Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Portions Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -29,7 +29,7 @@
|
||||
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: dnssec-signzone.c,v 1.204.94.2 2008/06/02 23:46:32 tbox Exp $ */
|
||||
/* $Id: dnssec-signzone.c,v 1.204 2007/08/28 07:20:42 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -141,6 +141,7 @@ static dns_name_t *gorigin; /* The database origin */
|
||||
static isc_task_t *master = NULL;
|
||||
static unsigned int ntasks = 0;
|
||||
static isc_boolean_t shuttingdown = ISC_FALSE, finished = ISC_FALSE;
|
||||
static unsigned int assigned = 0, completed = 0;
|
||||
static isc_boolean_t nokeys = ISC_FALSE;
|
||||
static isc_boolean_t removefile = ISC_FALSE;
|
||||
static isc_boolean_t generateds = ISC_FALSE;
|
||||
@@ -981,7 +982,7 @@ active_node(dns_dbnode_t *node) {
|
||||
fatal("rdataset iteration failed: %s",
|
||||
isc_result_totext(result));
|
||||
} else {
|
||||
/*
|
||||
/*
|
||||
* Delete RRSIGs for types that no longer exist.
|
||||
*/
|
||||
result = dns_db_allrdatasets(gdb, node, gversion, 0, &rdsiter2);
|
||||
@@ -1206,7 +1207,7 @@ signapex(void) {
|
||||
dns_fixedname_t fixed;
|
||||
dns_name_t *name;
|
||||
isc_result_t result;
|
||||
|
||||
|
||||
dns_fixedname_init(&fixed);
|
||||
name = dns_fixedname_name(&fixed);
|
||||
result = dns_dbiterator_current(gdbiter, &node, name);
|
||||
@@ -1236,19 +1237,16 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
dns_rdataset_t nsec;
|
||||
isc_boolean_t found;
|
||||
isc_result_t result;
|
||||
static unsigned int ended = 0; /* Protected by namelock. */
|
||||
|
||||
if (shuttingdown)
|
||||
return;
|
||||
|
||||
LOCK(&namelock);
|
||||
if (finished) {
|
||||
ended++;
|
||||
if (ended == ntasks) {
|
||||
if (assigned == completed) {
|
||||
isc_task_detach(&task);
|
||||
isc_app_shutdown();
|
||||
}
|
||||
goto unlock;
|
||||
return;
|
||||
}
|
||||
|
||||
fname = isc_mem_get(mctx, sizeof(dns_fixedname_t));
|
||||
@@ -1258,6 +1256,7 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
name = dns_fixedname_name(fname);
|
||||
node = NULL;
|
||||
found = ISC_FALSE;
|
||||
LOCK(&namelock);
|
||||
while (!found) {
|
||||
result = dns_dbiterator_current(gdbiter, &node, name);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -1284,14 +1283,14 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
fatal("failure iterating database: %s",
|
||||
isc_result_totext(result));
|
||||
}
|
||||
UNLOCK(&namelock);
|
||||
if (!found) {
|
||||
ended++;
|
||||
if (ended == ntasks) {
|
||||
if (assigned == completed) {
|
||||
isc_task_detach(&task);
|
||||
isc_app_shutdown();
|
||||
}
|
||||
isc_mem_put(mctx, fname, sizeof(dns_fixedname_t));
|
||||
goto unlock;
|
||||
return;
|
||||
}
|
||||
sevent = (sevent_t *)
|
||||
isc_event_allocate(mctx, task, SIGNER_EVENT_WORK,
|
||||
@@ -1302,8 +1301,7 @@ assignwork(isc_task_t *task, isc_task_t *worker) {
|
||||
sevent->node = node;
|
||||
sevent->fname = fname;
|
||||
isc_task_send(worker, ISC_EVENT_PTR(&sevent));
|
||||
unlock:
|
||||
UNLOCK(&namelock);
|
||||
assigned++;
|
||||
}
|
||||
|
||||
/*%
|
||||
@@ -1326,6 +1324,7 @@ writenode(isc_task_t *task, isc_event_t *event) {
|
||||
isc_task_t *worker;
|
||||
sevent_t *sevent = (sevent_t *)event;
|
||||
|
||||
completed++;
|
||||
worker = (isc_task_t *)event->ev_sender;
|
||||
dumpnode(dns_fixedname_name(sevent->fname), sevent->node);
|
||||
cleannode(gdb, gversion, sevent->node);
|
||||
@@ -1619,7 +1618,7 @@ writeset(const char *prefix, dns_rdatatype_t type) {
|
||||
unsigned char dsbuf[DNS_DS_BUFFERSIZE];
|
||||
unsigned char keybuf[DST_KEY_MAXSIZE];
|
||||
unsigned int filenamelen;
|
||||
const dns_master_style_t *style =
|
||||
const dns_master_style_t *style =
|
||||
(type == dns_rdatatype_dnskey) ? masterstyle : dsstyle;
|
||||
|
||||
isc_buffer_init(&namebuf, namestr, sizeof(namestr));
|
||||
@@ -1832,13 +1831,13 @@ print_stats(isc_time_t *timer_start, isc_time_t *timer_finish) {
|
||||
printf("Signatures successfully verified: %10d\n", nverified);
|
||||
printf("Signatures unsuccessfully verified: %10d\n", nverifyfailed);
|
||||
runtime_ms = runtime_us / 1000;
|
||||
printf("Runtime in seconds: %7u.%03u\n",
|
||||
(unsigned int) (runtime_ms / 1000),
|
||||
printf("Runtime in seconds: %7u.%03u\n",
|
||||
(unsigned int) (runtime_ms / 1000),
|
||||
(unsigned int) (runtime_ms % 1000));
|
||||
if (runtime_us > 0) {
|
||||
sig_ms = ((isc_uint64_t)nsigned * 1000000000) / runtime_us;
|
||||
printf("Signatures per second: %7u.%03u\n",
|
||||
(unsigned int) sig_ms / 1000,
|
||||
(unsigned int) sig_ms / 1000,
|
||||
(unsigned int) sig_ms % 1000);
|
||||
}
|
||||
}
|
||||
@@ -1938,7 +1937,7 @@ main(int argc, char *argv[]) {
|
||||
fatal("jitter must be numeric and positive");
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
case 'l':
|
||||
dns_fixedname_init(&dlv_fixed);
|
||||
len = strlen(isc_commandline_argument);
|
||||
isc_buffer_init(&b, isc_commandline_argument, len);
|
||||
@@ -2104,7 +2103,7 @@ main(int argc, char *argv[]) {
|
||||
result = dns_master_stylecreate(&dsstyle, DNS_STYLEFLAG_NO_TTL,
|
||||
0, 24, 0, 0, 0, 8, mctx);
|
||||
check_result(result, "dns_master_stylecreate");
|
||||
|
||||
|
||||
|
||||
gdb = NULL;
|
||||
TIME_NOW(&timer_start);
|
||||
@@ -2126,8 +2125,8 @@ main(int argc, char *argv[]) {
|
||||
DST_TYPE_PRIVATE,
|
||||
mctx, &newkey);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("cannot load dnskey %s: %s", argv[i],
|
||||
isc_result_totext(result));
|
||||
fatal("cannot load dnskey %s: %s", argv[i],
|
||||
isc_result_totext(result));
|
||||
|
||||
key = ISC_LIST_HEAD(keylist);
|
||||
while (key != NULL) {
|
||||
@@ -2135,7 +2134,7 @@ main(int argc, char *argv[]) {
|
||||
if (dst_key_id(dkey) == dst_key_id(newkey) &&
|
||||
dst_key_alg(dkey) == dst_key_alg(newkey) &&
|
||||
dns_name_equal(dst_key_name(dkey),
|
||||
dst_key_name(newkey)))
|
||||
dst_key_name(newkey)))
|
||||
{
|
||||
if (!dst_key_isprivate(dkey))
|
||||
fatal("cannot sign zone with "
|
||||
@@ -2164,7 +2163,7 @@ main(int argc, char *argv[]) {
|
||||
mctx, &newkey);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("cannot load dnskey %s: %s", dskeyfile[i],
|
||||
isc_result_totext(result));
|
||||
isc_result_totext(result));
|
||||
|
||||
key = ISC_LIST_HEAD(keylist);
|
||||
while (key != NULL) {
|
||||
@@ -2172,7 +2171,7 @@ main(int argc, char *argv[]) {
|
||||
if (dst_key_id(dkey) == dst_key_id(newkey) &&
|
||||
dst_key_alg(dkey) == dst_key_alg(newkey) &&
|
||||
dns_name_equal(dst_key_name(dkey),
|
||||
dst_key_name(newkey)))
|
||||
dst_key_name(newkey)))
|
||||
{
|
||||
/* Override key flags. */
|
||||
key->issigningkey = ISC_TRUE;
|
||||
|
||||
@@ -4,3 +4,4 @@ Makefile
|
||||
*.lo
|
||||
named
|
||||
lwresd
|
||||
bind9.xsl.h
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1998-2002 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -13,7 +13,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: Makefile.in,v 1.96.130.4 2008/03/31 05:06:47 marka Exp $
|
||||
# $Id: Makefile.in,v 1.96 2007/06/19 06:49:18 marka Exp $
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
@@ -75,7 +75,7 @@ TARGETS = named@EXEEXT@ lwresd@EXEEXT@
|
||||
OBJS = builtin.@O@ client.@O@ config.@O@ control.@O@ \
|
||||
controlconf.@O@ interfacemgr.@O@ \
|
||||
listenlist.@O@ log.@O@ logconf.@O@ main.@O@ notify.@O@ \
|
||||
query.@O@ server.@O@ sortlist.@O@ statschannel.@O@ \
|
||||
query.@O@ server.@O@ sortlist.@O@ \
|
||||
tkeyconf.@O@ tsigconf.@O@ update.@O@ xfrout.@O@ \
|
||||
zoneconf.@O@ \
|
||||
lwaddr.@O@ lwresd.@O@ lwdclient.@O@ lwderror.@O@ lwdgabn.@O@ \
|
||||
@@ -84,10 +84,12 @@ OBJS = builtin.@O@ client.@O@ config.@O@ control.@O@ \
|
||||
|
||||
UOBJS = unix/os.@O@
|
||||
|
||||
GENERATED = bind9.xsl.h
|
||||
|
||||
SRCS = builtin.c client.c config.c control.c \
|
||||
controlconf.c interfacemgr.c \
|
||||
listenlist.c log.c logconf.c main.c notify.c \
|
||||
query.c server.c sortlist.c statschannel.c \
|
||||
query.c server.c sortlist.c \
|
||||
tkeyconf.c tsigconf.c update.c xfrout.c \
|
||||
zoneconf.c \
|
||||
lwaddr.c lwresd.c lwdclient.c lwderror.c lwdgabn.c \
|
||||
@@ -128,13 +130,13 @@ docclean manclean maintainer-clean::
|
||||
rm -f ${MANOBJS}
|
||||
|
||||
clean distclean maintainer-clean::
|
||||
rm -f ${TARGETS} ${OBJS}
|
||||
rm -f ${TARGETS} ${OBJS} ${GENERATED}
|
||||
|
||||
bind9.xsl.h: bind9.xsl convertxsl.pl
|
||||
${PERL} ${srcdir}/convertxsl.pl < ${srcdir}/bind9.xsl > bind9.xsl.h
|
||||
|
||||
depend: bind9.xsl.h
|
||||
statschannel.@O@: bind9.xsl.h
|
||||
server.@O@: bind9.xsl.h
|
||||
|
||||
installdirs:
|
||||
$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${sbindir}
|
||||
|
||||
+21
-358
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
- Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2006, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
-
|
||||
- Permission to use, copy, modify, and/or distribute this software for any
|
||||
- purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -15,7 +15,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: bind9.xsl,v 1.13.130.4 2008/04/09 22:49:37 jinmei Exp $ -->
|
||||
<!-- $Id: bind9.xsl,v 1.13 2007/06/18 23:47:18 tbox Exp $ -->
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
@@ -55,11 +55,6 @@ tr.lrow {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
td, th {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: teal;
|
||||
color: #ffffff;
|
||||
@@ -104,293 +99,21 @@ td, th {
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="2">Incoming Requests</th></tr>
|
||||
<xsl:for-each select="server/requests/opcode">
|
||||
<tr class="rowh"><th colspan="2">Server statistics</th></tr>
|
||||
<xsl:for-each select="server/counters/*">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name"/></td>
|
||||
<td><xsl:value-of select="counter"/></td>
|
||||
<td><xsl:value-of select="name()"/></td>
|
||||
<td><xsl:value-of select="."/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="2">Incoming Queries</th></tr>
|
||||
<xsl:for-each select="server/queries-in/rdtype">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name"/></td>
|
||||
<td><xsl:value-of select="counter"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="2">Outgoing Queries from View <xsl:value-of select="name"/></th>
|
||||
</tr>
|
||||
<xsl:for-each select="rdtype">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name"/></td>
|
||||
<td><xsl:value-of select="counter"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br/>
|
||||
</xsl:for-each>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="10">Server Statistics</th></tr>
|
||||
<tr class="rowh">
|
||||
<!-- The ordering of the following items must be consistent
|
||||
with dns_nsstatscounter_xxx -->
|
||||
<th>Requestv4</th>
|
||||
<th>Requestv6</th>
|
||||
<th>ReqEdns0</th>
|
||||
<th>ReqBadEDNSVer</th>
|
||||
<th>ReqTSIG</th>
|
||||
<th>ReqSIG0</th>
|
||||
<th>ReqBadSIG</th>
|
||||
<th>ReqTCP</th>
|
||||
<th>AuthQryRej</th>
|
||||
<th>RecQryRej</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/nsstats/Requestv4"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/Requestv6"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqEdns0"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqBadEDNSVer"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqTSIG"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqSIG0"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqBadSIG"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/ReqTCP"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/AuthQryRej"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/RecQryRej"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>XfrRej</th>
|
||||
<th>UpdateRej</th>
|
||||
<th>Response</th>
|
||||
<th>RespTruncated</th>
|
||||
<th>RespEDNS0</th>
|
||||
<th>RespTSIG</th>
|
||||
<th>RespSIG0</th>
|
||||
<th>QrySuccess</th>
|
||||
<th>QryAuthAns</th>
|
||||
<th>QryNoauthAns</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/nsstats/XfrRej"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateRej"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/Response"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/TruncatedResp"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/RespEDNS0"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/RespTSIG"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/RespSIG0"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QrySuccess"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryAuthAns"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryNoauthAns"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>QryReferral</th>
|
||||
<th>QryNxrrset</th>
|
||||
<th>QrySERVFAIL</th>
|
||||
<th>QryFORMERR</th>
|
||||
<th>QryNXDOMAIN</th>
|
||||
<th>QryRecursion</th>
|
||||
<th>QryDuplicate</th>
|
||||
<th>QryDropped</th>
|
||||
<th>QryFailure</th>
|
||||
<th>XfrReqDone</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/nsstats/QryReferral"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryNxrrset"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QrySERVFAIL"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryFORMERR"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryNXDOMAIN"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryRecursion"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryDuplicate"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryDropped"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/QryFailure"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/XfrReqDone"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>UpdateReqFwd</th>
|
||||
<th>UpdateRespFwd</th>
|
||||
<th>UpdateFwdFail</th>
|
||||
<th>UpdateDone</th>
|
||||
<th>UpdateFail</th>
|
||||
<th>UpdateBadPrereq</th>
|
||||
<th>RespMismatch</th>
|
||||
<th />
|
||||
<th />
|
||||
<th />
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/nsstats/UpdateReqFwd"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateRespFwd"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateFwdFail"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateDone"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateFail"/></td>
|
||||
<td><xsl:value-of select="server/nsstats/UpdateBadPrereq"/></td>
|
||||
<td><xsl:value-of select="server/resstats/Mismatch"/></td>
|
||||
<td />
|
||||
<td />
|
||||
<td />
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
<tr class="rowh"><th colspan="10">Zone Maintenance Statistics</th></tr>
|
||||
<tr class="rowh">
|
||||
<!-- The ordering of the following items must be consistent
|
||||
with dns_zonestatscounter_xxx -->
|
||||
<th>NotifyOutv4</th>
|
||||
<th>NotifyOutv6</th>
|
||||
<th>NotifyInv4</th>
|
||||
<th>NotifyInv6</th>
|
||||
<th>NotifyRej</th>
|
||||
<th>SOAOutv4</th>
|
||||
<th>SOAOutv6</th>
|
||||
<th>AXFRReqv4</th>
|
||||
<th>AXFRReqv6</th>
|
||||
<th>IXFRReqv4</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/zonestats/NotifyOutv4"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/NotifyOutv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/NotifyInv4"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/NotifyInv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/NotifyRej"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/SOAOutv4"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/SOAOutv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/AXFRReqv4"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/AXFRReqv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/IXFRReqv4"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>IXFRReqv6</th>
|
||||
<th>XfrSuccess</th>
|
||||
<th>XfrFail</th>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
<th/>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="server/zonestats/IXFRReqv6"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/XfrSuccess"/></td>
|
||||
<td><xsl:value-of select="server/zonestats/XfrFail"/></td>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
<td/>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="10">Resolver Statistics for View <xsl:value-of select="name"/></th>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<!-- The ordering of the following items must be consistent
|
||||
with dns_resstatscounter_xxx -->
|
||||
<th>Queryv4</th>
|
||||
<th>Queryv6</th>
|
||||
<th>Responsev4</th>
|
||||
<th>Responsev6</th>
|
||||
<th>NXDOMAIN</th>
|
||||
<th>SERVFAIL</th>
|
||||
<th>FORMERR</th>
|
||||
<th>OtherError</th>
|
||||
<th>EDNS0Fail</th>
|
||||
<!-- this counter is not applicable to per-view stat,
|
||||
but keep it for generating the description table used in
|
||||
the statschannel.c.
|
||||
<th>Mismatch</th> -->
|
||||
<th>Truncated</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="resstats/Queryv4"/></td>
|
||||
<td><xsl:value-of select="resstats/Queryv6"/></td>
|
||||
<td><xsl:value-of select="resstats/Responsev4"/></td>
|
||||
<td><xsl:value-of select="resstats/Responsev6"/></td>
|
||||
<td><xsl:value-of select="resstats/NXDOMAIN"/></td>
|
||||
<td><xsl:value-of select="resstats/SERVFAIL"/></td>
|
||||
<td><xsl:value-of select="resstats/FORMERR"/></td>
|
||||
<td><xsl:value-of select="resstats/OtherError"/></td>
|
||||
<td><xsl:value-of select="resstats/EDNS0Fail"/></td>
|
||||
<!-- <td><xsl:value-of select="resstats/Mismatch"/></td> -->
|
||||
<td><xsl:value-of select="resstats/Truncated"/></td>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>Lame</th>
|
||||
<th>Retry</th>
|
||||
<th>GlueFetchv4</th>
|
||||
<th>GlueFetchv6</th>
|
||||
<th>GlueFetchv4Fail</th>
|
||||
<th>GlueFetchv6Fail</th>
|
||||
<th>ValAttempt</th>
|
||||
<th>ValOk</th>
|
||||
<th>ValNegOk</th>
|
||||
<th>ValFail</th>
|
||||
</tr>
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="resstats/Lame"/></td>
|
||||
<td><xsl:value-of select="resstats/Retry"/></td>
|
||||
<td><xsl:value-of select="resstats/GlueFetchv4"/></td>
|
||||
<td><xsl:value-of select="resstats/GlueFetchv6"/></td>
|
||||
<td><xsl:value-of select="resstats/GlueFetchv4Fail"/></td>
|
||||
<td><xsl:value-of select="resstats/GlueFetchv6Fail"/></td>
|
||||
<td><xsl:value-of select="resstats/ValAttempt"/></td>
|
||||
<td><xsl:value-of select="resstats/ValOk"/></td>
|
||||
<td><xsl:value-of select="resstats/ValNegOk"/></td>
|
||||
<td><xsl:value-of select="resstats/ValFail"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
</xsl:for-each>
|
||||
|
||||
<br/>
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="2">Cache DB RRsets for View <xsl:value-of select="name"/></th>
|
||||
</tr>
|
||||
<xsl:for-each select="cache/rrset">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name"/></td>
|
||||
<td><xsl:value-of select="counter"/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br/>
|
||||
</xsl:for-each>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
<xsl:for-each select="views/view">
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="10">Zones for View <xsl:value-of select="name"/></th>
|
||||
<th colspan="11">Zones for View <xsl:value-of select="name"/></th>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>Name</th>
|
||||
@@ -400,9 +123,10 @@ td, th {
|
||||
<th>Referral</th>
|
||||
<th>NXRRSET</th>
|
||||
<th>NXDOMAIN</th>
|
||||
<th>Recursion</th>
|
||||
<th>Failure</th>
|
||||
<th>XfrReqDone</th>
|
||||
<th>XfrRej</th>
|
||||
<th>Duplicate</th>
|
||||
<th>Dropped</th>
|
||||
</tr>
|
||||
<xsl:for-each select="zones/zone">
|
||||
<tr class="lrow">
|
||||
@@ -416,25 +140,28 @@ td, th {
|
||||
<xsl:value-of select="serial"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QrySuccess"/>
|
||||
<xsl:value-of select="counters/success"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QryReferral"/>
|
||||
<xsl:value-of select="counters/referral"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QryNxrrset"/>
|
||||
<xsl:value-of select="counters/nxrrset"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QryNXDOMAIN"/>
|
||||
<xsl:value-of select="counters/nxdomain"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/QryFailure"/>
|
||||
<xsl:value-of select="counters/recursion"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/XfrReqDone"/>
|
||||
<xsl:value-of select="counters/failure"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/XfrRej"/>
|
||||
<xsl:value-of select="counters/duplicate"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="counters/dropped"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
@@ -547,70 +274,6 @@ td, th {
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br />
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="4">Memory Usage Summary</th>
|
||||
</tr>
|
||||
<xsl:for-each select="memory/summary/*">
|
||||
<tr class="lrow">
|
||||
<td><xsl:value-of select="name()"/></td>
|
||||
<td><xsl:value-of select="."/></td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
<br />
|
||||
<table>
|
||||
<tr class="rowh">
|
||||
<th colspan="10">Memory Contexts</th>
|
||||
</tr>
|
||||
<tr class="rowh">
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>References</th>
|
||||
<th>TotalUse</th>
|
||||
<th>InUse</th>
|
||||
<th>MaxUse</th>
|
||||
<th>BlockSize</th>
|
||||
<th>Pools</th>
|
||||
<th>HiWater</th>
|
||||
<th>LoWater</th>
|
||||
</tr>
|
||||
<xsl:for-each select="memory/contexts/context">
|
||||
<tr class="lrow">
|
||||
<td>
|
||||
<xsl:value-of select="id"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="name"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="references"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="total"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="inuse"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="maxinuse"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="blocksize"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="pools"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="hiwater"/>
|
||||
</td>
|
||||
<td>
|
||||
<xsl:value-of select="lowater"/>
|
||||
</td>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+3
-696
File diff suppressed because one or more lines are too long
+28
-133
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.c,v 1.250.16.6 2008/05/27 22:36:09 each Exp $ */
|
||||
/* $Id: client.c,v 1.250 2007/11/26 04:47:17 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
#include <dns/rdatalist.h>
|
||||
#include <dns/rdataset.h>
|
||||
#include <dns/resolver.h>
|
||||
#include <dns/stats.h>
|
||||
#include <dns/tsig.h>
|
||||
#include <dns/view.h>
|
||||
#include <dns/zone.h>
|
||||
@@ -49,7 +48,6 @@
|
||||
#include <named/interfacemgr.h>
|
||||
#include <named/log.h>
|
||||
#include <named/notify.h>
|
||||
#include <named/os.h>
|
||||
#include <named/server.h>
|
||||
#include <named/update.h>
|
||||
|
||||
@@ -134,7 +132,7 @@ struct ns_clientmgr {
|
||||
#define MANAGER_MAGIC ISC_MAGIC('N', 'S', 'C', 'm')
|
||||
#define VALID_MANAGER(m) ISC_MAGIC_VALID(m, MANAGER_MAGIC)
|
||||
|
||||
/*!
|
||||
/*!
|
||||
* Client object states. Ordering is significant: higher-numbered
|
||||
* states are generally "more active", meaning that the client can
|
||||
* have more dynamically allocated data, outstanding events, etc.
|
||||
@@ -288,7 +286,7 @@ exit_check(ns_client_t *client) {
|
||||
*
|
||||
* Keep the view attached until any outstanding updates complete.
|
||||
*/
|
||||
if (client->nupdates == 0 &&
|
||||
if (client->nupdates == 0 &&
|
||||
client->newstate == NS_CLIENTSTATE_FREED && client->view != NULL)
|
||||
dns_view_detach(&client->view);
|
||||
|
||||
@@ -836,7 +834,7 @@ client_sendpkg(ns_client_t *client, isc_buffer_t *buffer) {
|
||||
isc_buffer_usedregion(buffer, &r);
|
||||
|
||||
CTRACE("sendto");
|
||||
|
||||
|
||||
result = isc_socket_sendto2(socket, &r, client->task,
|
||||
address, pktinfo,
|
||||
client->sendevent, sockflags);
|
||||
@@ -908,7 +906,6 @@ ns_client_send(ns_client_t *client) {
|
||||
unsigned char sendbuf[SEND_BUFFER_SIZE];
|
||||
unsigned int dnssec_opts;
|
||||
unsigned int preferred_glue;
|
||||
isc_boolean_t opt_included = ISC_FALSE;
|
||||
|
||||
REQUIRE(NS_CLIENT_VALID(client));
|
||||
|
||||
@@ -946,10 +943,11 @@ ns_client_send(ns_client_t *client) {
|
||||
result = dns_message_renderbegin(client->message, &cctx, &buffer);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto done;
|
||||
|
||||
if (client->opt != NULL) {
|
||||
result = dns_message_setopt(client->message, client->opt);
|
||||
opt_included = ISC_TRUE;
|
||||
/*
|
||||
* XXXRTH dns_message_setopt() should probably do this...
|
||||
*/
|
||||
client->opt = NULL;
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto done;
|
||||
@@ -1005,26 +1003,6 @@ ns_client_send(ns_client_t *client) {
|
||||
result = client_sendpkg(client, &tcpbuffer);
|
||||
} else
|
||||
result = client_sendpkg(client, &buffer);
|
||||
|
||||
/* update statistics (XXXJT: is it okay to access message->xxxkey?) */
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_response);
|
||||
if (opt_included) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_edns0out);
|
||||
}
|
||||
if (client->message->tsigkey != NULL) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tsigout);
|
||||
}
|
||||
if (client->message->sig0key != NULL) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_sig0out);
|
||||
}
|
||||
if ((client->message->flags & DNS_MESSAGEFLAG_TC) != 0)
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_truncatedresp);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return;
|
||||
|
||||
@@ -1130,8 +1108,8 @@ ns_client_error(ns_client_t *client, isc_result_t result) {
|
||||
/*
|
||||
* FORMERR loop avoidance: If we sent a FORMERR message
|
||||
* with the same ID to the same client less than two
|
||||
* seconds ago, assume that we are in an infinite error
|
||||
* packet dialog with a server for some protocol whose
|
||||
* seconds ago, assume that we are in an infinite error
|
||||
* packet dialog with a server for some protocol whose
|
||||
* error responses look enough like DNS queries to
|
||||
* elicit a FORMERR response. Drop a packet to break
|
||||
* the loop.
|
||||
@@ -1201,46 +1179,11 @@ client_addopt(ns_client_t *client) {
|
||||
*/
|
||||
rdatalist->ttl = (client->extflags & DNS_MESSAGEEXTFLAG_REPLYPRESERVE);
|
||||
|
||||
/* Set EDNS options if applicable */
|
||||
if (client->attributes & NS_CLIENTATTR_WANTNSID &&
|
||||
(ns_g_server->server_id != NULL ||
|
||||
ns_g_server->server_usehostname)) {
|
||||
/*
|
||||
* Space required for NSID data:
|
||||
* 2 bytes for opt code
|
||||
* + 2 bytes for NSID length
|
||||
* + NSID itself
|
||||
*/
|
||||
char nsid[BUFSIZ];
|
||||
isc_buffer_t *buffer = NULL;
|
||||
|
||||
if (ns_g_server->server_usehostname) {
|
||||
isc_result_t result;
|
||||
result = ns_os_gethostname(nsid, sizeof(nsid));
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto no_nsid;
|
||||
}
|
||||
} else {
|
||||
strncpy(nsid, ns_g_server->server_id, sizeof(nsid));
|
||||
}
|
||||
|
||||
rdata->length = strlen(nsid) + 4;
|
||||
result = isc_buffer_allocate(client->mctx, &buffer,
|
||||
rdata->length);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto no_nsid;
|
||||
|
||||
isc_buffer_putuint16(buffer, DNS_OPT_NSID);
|
||||
isc_buffer_putuint16(buffer, strlen(nsid));
|
||||
isc_buffer_putstr(buffer, nsid);
|
||||
rdata->data = buffer->base;
|
||||
dns_message_takebuffer(client->message, &buffer);
|
||||
} else {
|
||||
no_nsid:
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* No EDNS options in the default case.
|
||||
*/
|
||||
rdata->data = NULL;
|
||||
rdata->length = 0;
|
||||
rdata->rdclass = rdatalist->rdclass;
|
||||
rdata->type = rdatalist->type;
|
||||
rdata->flags = 0;
|
||||
@@ -1341,7 +1284,6 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
isc_buffer_t tbuffer;
|
||||
dns_view_t *view;
|
||||
dns_rdataset_t *opt;
|
||||
dns_name_t *signame;
|
||||
isc_boolean_t ra; /* Recursion available. */
|
||||
isc_netaddr_t netaddr;
|
||||
isc_netaddr_t destaddr;
|
||||
@@ -1349,8 +1291,6 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
dns_messageid_t id;
|
||||
unsigned int flags;
|
||||
isc_boolean_t notimp;
|
||||
dns_rdata_t rdata;
|
||||
isc_uint16_t optcode;
|
||||
|
||||
REQUIRE(event != NULL);
|
||||
client = event->ev_arg;
|
||||
@@ -1500,18 +1440,12 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
}
|
||||
|
||||
/*
|
||||
* Update some statistics counters. Don't count responses.
|
||||
* Hash the incoming request here as it is after
|
||||
* dns_dispatch_importrecv().
|
||||
*/
|
||||
if (isc_sockaddr_pf(&client->peeraddr) == PF_INET) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_requestv4);
|
||||
} else {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_requestv6);
|
||||
}
|
||||
if (TCP_CLIENT(client))
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tcp);
|
||||
dns_dispatch_hash(&client->now, sizeof(client->now));
|
||||
dns_dispatch_hash(isc_buffer_base(buffer),
|
||||
isc_buffer_usedlength(buffer));
|
||||
|
||||
/*
|
||||
* It's a request. Parse it.
|
||||
@@ -1526,8 +1460,6 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
dns_opcodestats_increment(ns_g_server->opcodestats,
|
||||
client->message->opcode);
|
||||
switch (client->message->opcode) {
|
||||
case dns_opcode_query:
|
||||
case dns_opcode_update:
|
||||
@@ -1575,35 +1507,12 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
*/
|
||||
client->ednsversion = (opt->ttl & 0x00FF0000) >> 16;
|
||||
if (client->ednsversion > 0) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_badednsver);
|
||||
result = client_addopt(client);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
result = DNS_R_BADVERS;
|
||||
ns_client_error(client, result);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Check for NSID request */
|
||||
result = dns_rdataset_first(opt);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
dns_rdata_init(&rdata);
|
||||
dns_rdataset_current(opt, &rdata);
|
||||
if (rdata.length >= 2) {
|
||||
isc_buffer_t nsidbuf;
|
||||
isc_buffer_init(&nsidbuf,
|
||||
rdata.data, rdata.length);
|
||||
isc_buffer_add(&nsidbuf, rdata.length);
|
||||
optcode = isc_buffer_getuint16(&nsidbuf);
|
||||
if (optcode == DNS_OPT_NSID)
|
||||
client->attributes |=
|
||||
NS_CLIENTATTR_WANTNSID;
|
||||
}
|
||||
}
|
||||
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_edns0in);
|
||||
|
||||
/*
|
||||
* Create an OPT for our reply.
|
||||
*/
|
||||
@@ -1633,7 +1542,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
* For IPv6 UDP queries, we get this from the pktinfo structure (if
|
||||
* supported).
|
||||
* If all the attempts fail (this can happen due to memory shortage,
|
||||
* etc), we regard this as an error for safety.
|
||||
* etc), we regard this as an error for safety.
|
||||
*/
|
||||
if ((client->interface->flags & NS_INTERFACEFLAG_ANYADDR) == 0)
|
||||
isc_netaddr_fromsockaddr(&destaddr, &client->interface->addr);
|
||||
@@ -1748,17 +1657,6 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
client->signer = NULL;
|
||||
dns_name_init(&client->signername, NULL);
|
||||
result = dns_message_signer(client->message, &client->signername);
|
||||
if (result != ISC_R_NOTFOUND) {
|
||||
signame = NULL;
|
||||
if (dns_message_gettsig(client->message, &signame) != NULL) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_tsigin);
|
||||
} else {
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_sig0in);
|
||||
}
|
||||
|
||||
}
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
|
||||
@@ -1775,17 +1673,15 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
||||
} else {
|
||||
char tsigrcode[64];
|
||||
isc_buffer_t b;
|
||||
dns_name_t *name = NULL;
|
||||
dns_rcode_t status;
|
||||
isc_result_t tresult;
|
||||
|
||||
/* There is a signature, but it is bad. */
|
||||
dns_generalstats_increment(ns_g_server->nsstats,
|
||||
dns_nsstatscounter_invalidsig);
|
||||
signame = NULL;
|
||||
if (dns_message_gettsig(client->message, &signame) != NULL) {
|
||||
if (dns_message_gettsig(client->message, &name) != NULL) {
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
char cnamebuf[DNS_NAME_FORMATSIZE];
|
||||
dns_name_format(signame, namebuf, sizeof(namebuf));
|
||||
dns_name_format(name, namebuf, sizeof(namebuf));
|
||||
status = client->message->tsigstatus;
|
||||
isc_buffer_init(&b, tsigrcode, sizeof(tsigrcode) - 1);
|
||||
tresult = dns_tsigrcode_totext(status, &b);
|
||||
@@ -1955,7 +1851,6 @@ get_clientmctx(ns_clientmgr_t *manager, isc_mem_t **mctxp) {
|
||||
result = isc_mem_create(0, 0, &clientmctx);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
isc_mem_setname(clientmctx, "client", NULL);
|
||||
|
||||
manager->mctxpool[manager->nextmctx] = clientmctx;
|
||||
}
|
||||
@@ -2595,12 +2490,12 @@ ns_client_checkaclsilent(ns_client_t *client, isc_sockaddr_t *sockaddr,
|
||||
goto deny;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (sockaddr == NULL)
|
||||
isc_netaddr_fromsockaddr(&netaddr, &client->peeraddr);
|
||||
else
|
||||
isc_netaddr_fromsockaddr(&netaddr, sockaddr);
|
||||
|
||||
|
||||
result = dns_acl_match(&netaddr, client->signer, acl,
|
||||
&ns_g_server->aclenv,
|
||||
&match, NULL);
|
||||
@@ -2626,7 +2521,7 @@ ns_client_checkacl(ns_client_t *client, isc_sockaddr_t *sockaddr,
|
||||
isc_result_t result =
|
||||
ns_client_checkaclsilent(client, sockaddr, acl, default_allow);
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
if (result == ISC_R_SUCCESS)
|
||||
ns_client_log(client, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
|
||||
"%s approved", opname);
|
||||
@@ -2682,7 +2577,7 @@ ns_client_log(ns_client_t *client, isc_logcategory_t *category,
|
||||
|
||||
void
|
||||
ns_client_aclmsg(const char *msg, dns_name_t *name, dns_rdatatype_t type,
|
||||
dns_rdataclass_t rdclass, char *buf, size_t len)
|
||||
dns_rdataclass_t rdclass, char *buf, size_t len)
|
||||
{
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
char typebuf[DNS_RDATATYPE_FORMATSIZE];
|
||||
|
||||
+9
-10
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.c,v 1.82.38.5 2008/05/28 21:00:24 each Exp $ */
|
||||
/* $Id: config.c,v 1.82 2007/10/19 17:15:53 explorer Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -99,7 +99,6 @@ options {\n\
|
||||
use-ixfr true;\n\
|
||||
edns-udp-size 4096;\n\
|
||||
max-udp-size 4096;\n\
|
||||
request-nsid false;\n\
|
||||
\n\
|
||||
/* view */\n\
|
||||
allow-notify {none;};\n\
|
||||
@@ -124,13 +123,13 @@ options {\n\
|
||||
query-source-v6 address *;\n\
|
||||
notify-source *;\n\
|
||||
notify-source-v6 *;\n\
|
||||
cleaning-interval 0; /* now meaningless */\n\
|
||||
cleaning-interval 60;\n\
|
||||
min-roots 2;\n\
|
||||
lame-ttl 600;\n\
|
||||
max-ncache-ttl 10800; /* 3 hours */\n\
|
||||
max-cache-ttl 604800; /* 1 week */\n\
|
||||
transfer-format many-answers;\n\
|
||||
# max-cache-size default; /* set default in server.c */\n\
|
||||
max-cache-size 32M;\n\
|
||||
check-names master fail;\n\
|
||||
check-names slave warn;\n\
|
||||
check-names response ignore;\n\
|
||||
@@ -139,7 +138,7 @@ options {\n\
|
||||
acache-cleaning-interval 60;\n\
|
||||
max-acache-size 16M;\n\
|
||||
dnssec-enable yes;\n\
|
||||
dnssec-validation yes; \n\
|
||||
dnssec-validation no; /* Make yes for 9.5. */ \n\
|
||||
dnssec-accept-expired no;\n\
|
||||
clients-per-query 10;\n\
|
||||
max-clients-per-query 100;\n\
|
||||
@@ -408,7 +407,7 @@ ns_config_putiplist(isc_mem_t *mctx, isc_sockaddr_t **addrsp,
|
||||
|
||||
static isc_result_t
|
||||
get_masters_def(const cfg_obj_t *cctx, const char *name,
|
||||
const cfg_obj_t **ret)
|
||||
const cfg_obj_t **ret)
|
||||
{
|
||||
isc_result_t result;
|
||||
const cfg_obj_t *masters = NULL;
|
||||
@@ -526,7 +525,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
tresult = get_masters_def(config, listname, &list);
|
||||
if (tresult == ISC_R_NOTFOUND) {
|
||||
cfg_obj_log(addr, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"masters \"%s\" not found", listname);
|
||||
"masters \"%s\" not found", listname);
|
||||
|
||||
result = tresult;
|
||||
goto cleanup;
|
||||
@@ -604,7 +603,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
if (keys[i] == NULL)
|
||||
goto cleanup;
|
||||
dns_name_init(keys[i], NULL);
|
||||
|
||||
|
||||
keystr = cfg_obj_asstring(key);
|
||||
isc_buffer_init(&b, keystr, strlen(keystr));
|
||||
isc_buffer_add(&b, strlen(keystr));
|
||||
@@ -660,7 +659,7 @@ ns_config_getipandkeylist(const cfg_obj_t *config, const cfg_obj_t *list,
|
||||
isc_mem_put(mctx, lists, listcount * sizeof(*lists));
|
||||
if (stack != NULL)
|
||||
isc_mem_put(mctx, stack, stackcount * sizeof(*stack));
|
||||
|
||||
|
||||
INSIST(keycount == addrcount);
|
||||
|
||||
*addrsp = addrs;
|
||||
|
||||
+49
-43
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2001-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: controlconf.c,v 1.55.64.2 2008/01/17 23:46:35 tbox Exp $ */
|
||||
/* $Id: controlconf.c,v 1.55 2007/09/12 01:09:07 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -345,9 +345,9 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
listener = conn->listener;
|
||||
secret.rstart = NULL;
|
||||
|
||||
/* Is the server shutting down? */
|
||||
if (listener->controls->shuttingdown)
|
||||
goto cleanup;
|
||||
/* Is the server shutting down? */
|
||||
if (listener->controls->shuttingdown)
|
||||
goto cleanup;
|
||||
|
||||
if (conn->ccmsg.result != ISC_R_SUCCESS) {
|
||||
if (conn->ccmsg.result != ISC_R_CANCELED &&
|
||||
@@ -364,6 +364,9 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
{
|
||||
ccregion.rstart = isc_buffer_base(&conn->ccmsg.buffer);
|
||||
ccregion.rend = isc_buffer_used(&conn->ccmsg.buffer);
|
||||
if (secret.rstart != NULL)
|
||||
isc_mem_put(listener->mctx, secret.rstart,
|
||||
REGION_SIZE(secret));
|
||||
secret.rstart = isc_mem_get(listener->mctx, key->secret.length);
|
||||
if (secret.rstart == NULL)
|
||||
goto cleanup;
|
||||
@@ -372,8 +375,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
result = isccc_cc_fromwire(&ccregion, &request, &secret);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
break;
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
if (result == ISCCC_R_BADAUTH) {
|
||||
else if (result == ISCCC_R_BADAUTH) {
|
||||
/*
|
||||
* For some reason, request is non-NULL when
|
||||
* isccc_cc_fromwire returns ISCCC_R_BADAUTH.
|
||||
@@ -394,7 +396,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
/* We shouldn't be getting a reply. */
|
||||
if (isccc_cc_isreply(request)) {
|
||||
log_invalid(&conn->ccmsg, ISC_R_FAILURE);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
@@ -405,17 +407,17 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
_ctrl = isccc_alist_lookup(request, "_ctrl");
|
||||
if (_ctrl == NULL) {
|
||||
log_invalid(&conn->ccmsg, ISC_R_FAILURE);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (isccc_cc_lookupuint32(_ctrl, "_tim", &sent) == ISC_R_SUCCESS) {
|
||||
if ((sent + CLOCKSKEW) < now || (sent - CLOCKSKEW) > now) {
|
||||
log_invalid(&conn->ccmsg, ISCCC_R_CLOCKSKEW);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
} else {
|
||||
log_invalid(&conn->ccmsg, ISC_R_FAILURE);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -424,7 +426,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
if (isccc_cc_lookupuint32(_ctrl, "_exp", &exp) == ISC_R_SUCCESS &&
|
||||
now > exp) {
|
||||
log_invalid(&conn->ccmsg, ISCCC_R_EXPIRED);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -434,16 +436,16 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
result = isccc_cc_checkdup(listener->controls->symtab, request, now);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
if (result == ISC_R_EXISTS)
|
||||
result = ISCCC_R_DUPLICATE;
|
||||
result = ISCCC_R_DUPLICATE;
|
||||
log_invalid(&conn->ccmsg, result);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (conn->nonce != 0 &&
|
||||
(isccc_cc_lookupuint32(_ctrl, "_nonce", &nonce) != ISC_R_SUCCESS ||
|
||||
conn->nonce != nonce)) {
|
||||
log_invalid(&conn->ccmsg, ISCCC_R_BADAUTH);
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -457,7 +459,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
result = isccc_cc_createresponse(request, now, now + 60, &response);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_request;
|
||||
goto cleanup;
|
||||
if (eresult != ISC_R_SUCCESS) {
|
||||
isccc_sexpr_t *data;
|
||||
|
||||
@@ -465,7 +467,7 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
if (data != NULL) {
|
||||
const char *estr = isc_result_totext(eresult);
|
||||
if (isccc_cc_definestring(data, "err", estr) == NULL)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -476,20 +478,20 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
if (data != NULL) {
|
||||
char *str = (char *)isc_buffer_base(&text);
|
||||
if (isccc_cc_definestring(data, "text", str) == NULL)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
_ctrl = isccc_alist_lookup(response, "_ctrl");
|
||||
if (_ctrl == NULL ||
|
||||
isccc_cc_defineuint32(_ctrl, "_nonce", conn->nonce) == NULL)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
|
||||
ccregion.rstart = conn->buffer + 4;
|
||||
ccregion.rend = conn->buffer + sizeof(conn->buffer);
|
||||
result = isccc_cc_towire(response, &ccregion, &secret);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
isc_buffer_init(&b, conn->buffer, 4);
|
||||
len = sizeof(conn->buffer) - REGION_SIZE(ccregion);
|
||||
isc_buffer_putuint32(&b, len - 4);
|
||||
@@ -498,27 +500,31 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
result = isc_socket_send(conn->sock, &r, task, control_senddone, conn);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_response;
|
||||
goto cleanup;
|
||||
conn->sending = ISC_TRUE;
|
||||
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
isccc_sexpr_free(&request);
|
||||
isccc_sexpr_free(&response);
|
||||
if (secret.rstart != NULL)
|
||||
isc_mem_put(listener->mctx, secret.rstart,
|
||||
REGION_SIZE(secret));
|
||||
if (request != NULL)
|
||||
isccc_sexpr_free(&request);
|
||||
if (response != NULL)
|
||||
isccc_sexpr_free(&response);
|
||||
return;
|
||||
|
||||
cleanup_response:
|
||||
isccc_sexpr_free(&response);
|
||||
|
||||
cleanup_request:
|
||||
isccc_sexpr_free(&request);
|
||||
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
|
||||
|
||||
cleanup:
|
||||
if (secret.rstart != NULL)
|
||||
isc_mem_put(listener->mctx, secret.rstart,
|
||||
REGION_SIZE(secret));
|
||||
isc_socket_detach(&conn->sock);
|
||||
isccc_ccmsg_invalidate(&conn->ccmsg);
|
||||
conn->ccmsg_valid = ISC_FALSE;
|
||||
maybe_free_connection(conn);
|
||||
maybe_free_listener(listener);
|
||||
if (request != NULL)
|
||||
isccc_sexpr_free(&request);
|
||||
if (response != NULL)
|
||||
isccc_sexpr_free(&response);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -542,7 +548,7 @@ newconnection(controllistener_t *listener, isc_socket_t *sock) {
|
||||
conn = isc_mem_get(listener->mctx, sizeof(*conn));
|
||||
if (conn == NULL)
|
||||
return (ISC_R_NOMEMORY);
|
||||
|
||||
|
||||
conn->sock = sock;
|
||||
isccc_ccmsg_init(listener->mctx, sock, &conn->ccmsg);
|
||||
conn->ccmsg_valid = ISC_TRUE;
|
||||
@@ -655,7 +661,7 @@ ns_controls_shutdown(ns_controls_t *controls) {
|
||||
|
||||
static isc_result_t
|
||||
cfgkeylist_find(const cfg_obj_t *keylist, const char *keyname,
|
||||
const cfg_obj_t **objp)
|
||||
const cfg_obj_t **objp)
|
||||
{
|
||||
const cfg_listelt_t *element;
|
||||
const char *str;
|
||||
@@ -803,7 +809,7 @@ register_keys(const cfg_obj_t *control, const cfg_obj_t *keylist,
|
||||
if (result != ISC_R_SUCCESS) \
|
||||
goto cleanup; \
|
||||
} while (0)
|
||||
|
||||
|
||||
static isc_result_t
|
||||
get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
|
||||
isc_result_t result;
|
||||
@@ -823,14 +829,14 @@ get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
|
||||
CHECK(cfg_map_get(config, "key", &key));
|
||||
|
||||
keyid = isc_mem_get(mctx, sizeof(*keyid));
|
||||
if (keyid == NULL)
|
||||
if (keyid == NULL)
|
||||
CHECK(ISC_R_NOMEMORY);
|
||||
keyid->keyname = isc_mem_strdup(mctx,
|
||||
cfg_obj_asstring(cfg_map_getname(key)));
|
||||
keyid->secret.base = NULL;
|
||||
keyid->secret.length = 0;
|
||||
ISC_LINK_INIT(keyid, link);
|
||||
if (keyid->keyname == NULL)
|
||||
if (keyid->keyname == NULL)
|
||||
CHECK(ISC_R_NOMEMORY);
|
||||
|
||||
CHECK(bind9_check_key(key, ns_g_lctx));
|
||||
@@ -886,7 +892,7 @@ get_rndckey(isc_mem_t *mctx, controlkeylist_t *keyids) {
|
||||
cfg_parser_destroy(&pctx);
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Ensures that both '*global_keylistp' and '*control_keylistp' are
|
||||
* valid or both are NULL.
|
||||
@@ -920,7 +926,7 @@ static void
|
||||
update_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
const cfg_obj_t *control, const cfg_obj_t *config,
|
||||
isc_sockaddr_t *addr, cfg_aclconfctx_t *aclconfctx,
|
||||
const char *socktext, isc_sockettype_t type)
|
||||
const char *socktext, isc_sockettype_t type)
|
||||
{
|
||||
controllistener_t *listener;
|
||||
const cfg_obj_t *allow;
|
||||
@@ -940,7 +946,7 @@ update_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
*listenerp = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* There is already a listener for this sockaddr.
|
||||
* Update the access list and key information.
|
||||
@@ -1096,7 +1102,7 @@ add_listener(ns_controls_t *cp, controllistener_t **listenerp,
|
||||
allow = cfg_tuple_get(control, "allow");
|
||||
result = cfg_acl_fromconfig(allow, config, ns_g_lctx,
|
||||
aclconfctx, mctx, 0,
|
||||
&new_acl);
|
||||
&new_acl);
|
||||
} else {
|
||||
result = dns_acl_any(mctx, &new_acl);
|
||||
}
|
||||
@@ -1337,7 +1343,7 @@ ns_controls_configure(ns_controls_t *cp, const cfg_obj_t *config,
|
||||
|
||||
update_listener(cp, &listener, control, config,
|
||||
&addr, aclconfctx,
|
||||
cfg_obj_asstring(path),
|
||||
cfg_obj_asstring(path),
|
||||
isc_sockettype_unix);
|
||||
|
||||
if (listener != NULL)
|
||||
@@ -1383,10 +1389,10 @@ ns_controls_configure(ns_controls_t *cp, const cfg_obj_t *config,
|
||||
isc_sockaddr_setport(&addr, NS_CONTROL_PORT);
|
||||
|
||||
isc_sockaddr_format(&addr, socktext, sizeof(socktext));
|
||||
|
||||
|
||||
update_listener(cp, &listener, NULL, NULL,
|
||||
&addr, NULL, socktext,
|
||||
isc_sockettype_tcp);
|
||||
isc_sockettype_tcp);
|
||||
|
||||
if (listener != NULL)
|
||||
/*
|
||||
|
||||
+11
-49
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env perl
|
||||
#
|
||||
# Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2006, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -14,19 +14,19 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: convertxsl.pl,v 1.9.60.4 2008/04/03 10:51:01 marka Exp $
|
||||
# $Id: convertxsl.pl,v 1.9 2007/09/14 06:14:44 marka Exp $
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $rev = '$Id: convertxsl.pl,v 1.9.60.4 2008/04/03 10:51:01 marka Exp $';
|
||||
my $rev = '$Id: convertxsl.pl,v 1.9 2007/09/14 06:14:44 marka Exp $';
|
||||
$rev =~ s/\$//g;
|
||||
$rev =~ s/,v//g;
|
||||
$rev =~ s/Id: //;
|
||||
|
||||
my $xsl = "unknown";
|
||||
|
||||
my $lines = '';
|
||||
my (@nsstatsdesc, @zonestatsdesc, @resstatsdesc);
|
||||
|
||||
while (<>) {
|
||||
chomp;
|
||||
@@ -34,23 +34,7 @@ while (<>) {
|
||||
$xsl = $_ if (/<!-- .Id:.* -->/);
|
||||
# convert Id string to a form not recognisable by cvs.
|
||||
$_ =~ s/<!-- .Id:(.*). -->/<!-- \\045Id: $1\\045 -->/;
|
||||
if (/server\/nsstats\/(\w+)\"/) {
|
||||
push(@nsstatsdesc, $1);
|
||||
} elsif (/server\/zonestats\/(\w+)\"/) {
|
||||
push(@zonestatsdesc, $1);
|
||||
} elsif (/\"resstats\/(\w+)\"/) {
|
||||
push(@resstatsdesc, $1);
|
||||
}
|
||||
s/[\ \t]+/ /g;
|
||||
s/\>\ \</\>\</g;
|
||||
s/\"/\\\"/g;
|
||||
s/^/\t\"/;
|
||||
s/$/\\n\"/;
|
||||
if ($lines eq "") {
|
||||
$lines .= $_;
|
||||
} else {
|
||||
$lines .= "\n" . $_;
|
||||
}
|
||||
$lines .= $_;
|
||||
}
|
||||
|
||||
$xsl =~ s/\$//g;
|
||||
@@ -58,34 +42,12 @@ $xsl =~ s/<!-- Id: //;
|
||||
$xsl =~ s/ -->.*//;
|
||||
$xsl =~ s/,v//;
|
||||
|
||||
$lines =~ s/[\ \t]+/ /g;
|
||||
$lines =~ s/\>\ \</\>\</g;
|
||||
$lines =~ s/\"/\\\"/g;
|
||||
|
||||
print "/*\n * Generated by $rev \n * From $xsl\n */\n";
|
||||
print 'static char xslmsg[] =',"\n";
|
||||
print 'static char msg[] = "';
|
||||
print $lines;
|
||||
|
||||
print ';', "\n";
|
||||
|
||||
print '#ifdef HAVE_LIBXML2', "\n";
|
||||
print "static const char *nsstats_xmldesc[] = {";
|
||||
while (my $desc = shift(@nsstatsdesc)) {
|
||||
print "\t\"$desc\"";
|
||||
print "," if (@nsstatsdesc);
|
||||
print "\n";
|
||||
}
|
||||
print "};\n";
|
||||
|
||||
print "static const char *zonestats_xmldesc[] = {";
|
||||
while (my $desc = shift(@zonestatsdesc)) {
|
||||
print "\t\"$desc\"";
|
||||
print "," if (@zonestatsdesc);
|
||||
print "\n";
|
||||
}
|
||||
print "};\n";
|
||||
|
||||
print "static const char *resstats_xmldesc[] = {";
|
||||
while (my $desc = shift(@resstatsdesc)) {
|
||||
print "\t\"$desc\"";
|
||||
print "," if (@resstatsdesc);
|
||||
print "\n";
|
||||
}
|
||||
print "};\n";
|
||||
print '#endif', "\n";
|
||||
print '\\n";', "\n";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.h,v 1.82.128.2 2008/04/03 06:08:26 tbox Exp $ */
|
||||
/* $Id: client.h,v 1.82 2007/06/18 23:47:19 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_CLIENT_H
|
||||
#define NAMED_CLIENT_H 1
|
||||
@@ -24,7 +24,7 @@
|
||||
***** Module Info
|
||||
*****/
|
||||
|
||||
/*! \file
|
||||
/*! \file
|
||||
* \brief
|
||||
* This module defines two objects, ns_client_t and ns_clientmgr_t.
|
||||
*
|
||||
@@ -159,7 +159,6 @@ struct ns_client {
|
||||
#define NS_CLIENTATTR_PKTINFO 0x04 /*%< pktinfo is valid */
|
||||
#define NS_CLIENTATTR_MULTICAST 0x08 /*%< recv'd from multicast */
|
||||
#define NS_CLIENTATTR_WANTDNSSEC 0x10 /*%< include dnssec records */
|
||||
#define NS_CLIENTATTR_WANTNSID 0x20 /*%< include nameserver ID */
|
||||
|
||||
extern unsigned int ns_client_requests;
|
||||
|
||||
@@ -359,8 +358,8 @@ ns_client_qnamereplace(ns_client_t *client, dns_name_t *name);
|
||||
|
||||
isc_boolean_t
|
||||
ns_client_isself(dns_view_t *myview, dns_tsigkey_t *mykey,
|
||||
isc_sockaddr_t *srcaddr, isc_sockaddr_t *destaddr,
|
||||
dns_rdataclass_t rdclass, void *arg);
|
||||
isc_sockaddr_t *srcaddr, isc_sockaddr_t *destaddr,
|
||||
dns_rdataclass_t rdclass, void *arg);
|
||||
/*%
|
||||
* Isself callback.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,13 +15,14 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: server.h,v 1.88.10.4 2008/04/03 06:10:19 marka Exp $ */
|
||||
/* $Id: server.h,v 1.87 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_SERVER_H
|
||||
#define NAMED_SERVER_H 1
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <isc/httpd.h>
|
||||
#include <isc/log.h>
|
||||
#include <isc/magic.h>
|
||||
#include <isc/quota.h>
|
||||
@@ -63,7 +64,7 @@ struct ns_server {
|
||||
isc_boolean_t server_usehostname;
|
||||
char * server_id; /*%< User-specified server id */
|
||||
|
||||
/*%
|
||||
/*%
|
||||
* Current ACL environment. This defines the
|
||||
* current values of the localhost and localnets
|
||||
* ACLs.
|
||||
@@ -91,11 +92,7 @@ struct ns_server {
|
||||
isc_boolean_t flushonshutdown;
|
||||
isc_boolean_t log_queries; /*%< For BIND 8 compatibility */
|
||||
|
||||
dns_stats_t * nsstats; /*%< Server statistics */
|
||||
dns_stats_t * rcvquerystats; /*% Incoming query statistics */
|
||||
dns_stats_t * opcodestats; /*%< Incoming message statistics */
|
||||
dns_stats_t * zonestats; /*% Zone management statistics */
|
||||
dns_stats_t * resolverstats; /*% Resolver statistics */
|
||||
isc_uint64_t * querystats; /*%< Query statistics counters */
|
||||
|
||||
ns_controls_t * controls; /*%< Control channels */
|
||||
unsigned int dispatchgen;
|
||||
@@ -103,61 +100,13 @@ struct ns_server {
|
||||
|
||||
dns_acache_t *acache;
|
||||
|
||||
ns_statschannellist_t statschannels;
|
||||
isc_httpdmgr_t *httpd;
|
||||
isc_sockaddr_t httpd_sockaddr;
|
||||
};
|
||||
|
||||
#define NS_SERVER_MAGIC ISC_MAGIC('S','V','E','R')
|
||||
#define NS_SERVER_VALID(s) ISC_MAGIC_VALID(s, NS_SERVER_MAGIC)
|
||||
|
||||
/*%
|
||||
* Server statistics counters. Used as dns_statscounter_t values.
|
||||
*/
|
||||
enum {
|
||||
dns_nsstatscounter_requestv4 = 0,
|
||||
dns_nsstatscounter_requestv6 = 1,
|
||||
dns_nsstatscounter_edns0in = 2,
|
||||
dns_nsstatscounter_badednsver = 3,
|
||||
dns_nsstatscounter_tsigin = 4,
|
||||
dns_nsstatscounter_sig0in = 5,
|
||||
dns_nsstatscounter_invalidsig = 6,
|
||||
dns_nsstatscounter_tcp = 7,
|
||||
|
||||
dns_nsstatscounter_authrej = 8,
|
||||
dns_nsstatscounter_recurserej = 9,
|
||||
dns_nsstatscounter_xfrrej = 10,
|
||||
dns_nsstatscounter_updaterej = 11,
|
||||
|
||||
dns_nsstatscounter_response = 12,
|
||||
dns_nsstatscounter_truncatedresp = 13,
|
||||
dns_nsstatscounter_edns0out = 14,
|
||||
dns_nsstatscounter_tsigout = 15,
|
||||
dns_nsstatscounter_sig0out = 16,
|
||||
|
||||
dns_nsstatscounter_success = 17,
|
||||
dns_nsstatscounter_authans = 18,
|
||||
dns_nsstatscounter_nonauthans = 19,
|
||||
dns_nsstatscounter_referral = 20,
|
||||
dns_nsstatscounter_nxrrset = 21,
|
||||
dns_nsstatscounter_servfail = 22,
|
||||
dns_nsstatscounter_formerr = 23,
|
||||
dns_nsstatscounter_nxdomain = 24,
|
||||
dns_nsstatscounter_recursion = 25,
|
||||
dns_nsstatscounter_duplicate = 26,
|
||||
dns_nsstatscounter_dropped = 27,
|
||||
dns_nsstatscounter_failure = 28,
|
||||
|
||||
dns_nsstatscounter_xfrdone = 29,
|
||||
|
||||
dns_nsstatscounter_updatereqfwd = 30,
|
||||
dns_nsstatscounter_updaterespfwd = 31,
|
||||
dns_nsstatscounter_updatefwdfail = 32,
|
||||
dns_nsstatscounter_updatedone = 33,
|
||||
dns_nsstatscounter_updatefail = 34,
|
||||
dns_nsstatscounter_updatebadprereq = 35,
|
||||
|
||||
dns_nsstatscounter_max = 36
|
||||
};
|
||||
|
||||
void
|
||||
ns_server_create(isc_mem_t *mctx, ns_server_t **serverp);
|
||||
/*%<
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: statschannel.h,v 1.2.2.2 2008/04/03 06:10:19 marka Exp $ */
|
||||
/* $Id: statschannel.h,v 1.2 2008/01/17 00:15:13 jinmei Exp $ */
|
||||
|
||||
#ifndef NAMED_STATSCHANNEL_H
|
||||
#define NAMED_STATSCHANNEL_H 1
|
||||
@@ -52,10 +52,4 @@ ns_statschannels_shutdown(ns_server_t *server);
|
||||
* Initiate shutdown of all the statistics channel listeners.
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
ns_stats_dump(ns_server_t *server, FILE *fp);
|
||||
/*%<
|
||||
* Dump statistics counters managed by the server to the file fp.
|
||||
*/
|
||||
|
||||
#endif /* NAMED_STATSCHANNEL_H */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: types.h,v 1.27.128.2 2008/01/17 23:46:36 tbox Exp $ */
|
||||
/* $Id: types.h,v 1.27 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#ifndef NAMED_TYPES_H
|
||||
#define NAMED_TYPES_H 1
|
||||
@@ -41,6 +41,5 @@ typedef struct ns_lwsearchctx ns_lwsearchctx_t;
|
||||
typedef struct ns_controls ns_controls_t;
|
||||
typedef struct ns_dispatch ns_dispatch_t;
|
||||
typedef ISC_LIST(ns_dispatch_t) ns_dispatchlist_t;
|
||||
typedef struct ns_statschannel ns_statschannel_t;
|
||||
typedef ISC_LIST(ns_statschannel_t) ns_statschannellist_t;
|
||||
|
||||
#endif /* NAMED_TYPES_H */
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwaddr.c,v 1.8.130.2 2008/01/11 23:46:27 tbox Exp $ */
|
||||
/* $Id: lwaddr.c,v 1.8 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -81,7 +81,7 @@ lwaddr_lwresaddr_fromnetaddr(lwres_addr_t *la, isc_netaddr_t *na) {
|
||||
} else {
|
||||
la->family = LWRES_ADDRTYPE_V6;
|
||||
la->length = 16;
|
||||
memcpy(la->address, &na->type.in6, 16);
|
||||
memcpy(la->address, &na->type.in, 16);
|
||||
}
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
+4
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdgnba.c,v 1.20.130.2 2008/01/14 23:46:28 tbox Exp $ */
|
||||
/* $Id: lwdgnba.c,v 1.20 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -220,6 +220,8 @@ ns_lwdclient_processgnba(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
b, &client->pkt, &req);
|
||||
if (result != LWRES_R_SUCCESS)
|
||||
goto out;
|
||||
if (req->addr.address == NULL)
|
||||
goto out;
|
||||
|
||||
client->options = 0;
|
||||
if (req->addr.family == LWRES_ADDRTYPE_V4) {
|
||||
|
||||
+11
-10
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000, 2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwdnoop.c,v 1.11.130.2 2008/01/22 23:27:35 tbox Exp $ */
|
||||
/* $Id: lwdnoop.c,v 1.11 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -44,7 +44,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
result = lwres_nooprequest_parse(client->clientmgr->lwctx,
|
||||
b, &client->pkt, &req);
|
||||
if (result != LWRES_R_SUCCESS)
|
||||
goto send_error;
|
||||
goto out;
|
||||
|
||||
client->pkt.recvlength = LWRES_RECVLENGTH;
|
||||
client->pkt.authtype = 0; /* XXXMLG */
|
||||
@@ -57,7 +57,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
lwres = lwres_noopresponse_render(client->clientmgr->lwctx, &resp,
|
||||
&client->pkt, &lwb);
|
||||
if (lwres != LWRES_R_SUCCESS)
|
||||
goto cleanup_req;
|
||||
goto out;
|
||||
|
||||
r.base = lwb.base;
|
||||
r.length = lwb.used;
|
||||
@@ -65,7 +65,7 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
client->sendlength = r.length;
|
||||
result = ns_lwdclient_sendreply(client, &r);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
goto cleanup_lwb;
|
||||
goto out;
|
||||
|
||||
/*
|
||||
* We can now destroy request.
|
||||
@@ -76,12 +76,13 @@ ns_lwdclient_processnoop(ns_lwdclient_t *client, lwres_buffer_t *b) {
|
||||
|
||||
return;
|
||||
|
||||
cleanup_lwb:
|
||||
lwres_context_freemem(client->clientmgr->lwctx, lwb.base, lwb.length);
|
||||
out:
|
||||
if (req != NULL)
|
||||
lwres_nooprequest_free(client->clientmgr->lwctx, &req);
|
||||
|
||||
cleanup_req:
|
||||
lwres_nooprequest_free(client->clientmgr->lwctx, &req);
|
||||
if (lwb.base != NULL)
|
||||
lwres_context_freemem(client->clientmgr->lwctx,
|
||||
lwb.base, lwb.length);
|
||||
|
||||
send_error:
|
||||
ns_lwdclient_errorpktsend(client, LWRES_R_FAILURE);
|
||||
}
|
||||
|
||||
+5
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: main.c,v 1.158.48.2 2008/04/03 23:46:30 tbox Exp $ */
|
||||
/* $Id: main.c,v 1.158 2007/09/26 03:22:43 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -356,7 +356,7 @@ parse_command_line(int argc, char *argv[]) {
|
||||
|
||||
isc_commandline_errprint = ISC_FALSE;
|
||||
while ((ch = isc_commandline_parse(argc, argv,
|
||||
"46c:C:d:fgi:lm:n:N:p:P:st:u:vx:")) != -1) {
|
||||
"46c:C:d:fgi:lm:n:N:p:P:st:u:vx:")) != -1) {
|
||||
switch (ch) {
|
||||
case '4':
|
||||
if (disable4)
|
||||
@@ -667,7 +667,7 @@ setup(void) {
|
||||
sizeof(absolute_conffile));
|
||||
if (result != ISC_R_SUCCESS)
|
||||
ns_main_earlyfatal("could not construct absolute path of "
|
||||
"configuration file: %s",
|
||||
"configuration file: %s",
|
||||
isc_result_totext(result));
|
||||
ns_g_conffile = absolute_conffile;
|
||||
}
|
||||
@@ -767,7 +767,7 @@ ns_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) {
|
||||
if (debug)
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"scf_handle_create() failed: %s",
|
||||
scf_strerror(scf_error()));
|
||||
scf_strerror(scf_error()));
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
@@ -867,7 +867,6 @@ main(int argc, char *argv[]) {
|
||||
if (result != ISC_R_SUCCESS)
|
||||
ns_main_earlyfatal("isc_mem_create() failed: %s",
|
||||
isc_result_totext(result));
|
||||
isc_mem_setname(ns_g_mctx, "main", NULL);
|
||||
|
||||
setup();
|
||||
|
||||
|
||||
+36
-78
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: query.c,v 1.298.48.7 2008/04/29 00:56:50 marka Exp $ */
|
||||
/* $Id: query.c,v 1.298 2007/09/26 03:04:45 each Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -128,37 +128,35 @@ static inline void
|
||||
inc_stats(ns_client_t *client, dns_statscounter_t counter) {
|
||||
dns_zone_t *zone = client->query.authzone;
|
||||
|
||||
dns_generalstats_increment(ns_g_server->nsstats, counter);
|
||||
REQUIRE(counter < DNS_STATS_NCOUNTERS);
|
||||
|
||||
ns_g_server->querystats[counter]++;
|
||||
|
||||
if (zone != NULL) {
|
||||
dns_stats_t *zonestats = dns_zone_getrequeststats(zone);
|
||||
isc_uint64_t *zonestats = dns_zone_getstatscounters(zone);
|
||||
if (zonestats != NULL)
|
||||
dns_generalstats_increment(zonestats, counter);
|
||||
zonestats[counter]++;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
query_send(ns_client_t *client) {
|
||||
dns_statscounter_t counter;
|
||||
if ((client->message->flags & DNS_MESSAGEFLAG_AA) == 0)
|
||||
inc_stats(client, dns_nsstatscounter_nonauthans);
|
||||
else
|
||||
inc_stats(client, dns_nsstatscounter_authans);
|
||||
if (client->message->rcode == dns_rcode_noerror) {
|
||||
if (ISC_LIST_EMPTY(client->message->sections[DNS_SECTION_ANSWER])) {
|
||||
if (client->query.isreferral) {
|
||||
counter = dns_nsstatscounter_referral;
|
||||
counter = dns_statscounter_referral;
|
||||
} else {
|
||||
counter = dns_nsstatscounter_nxrrset;
|
||||
counter = dns_statscounter_nxrrset;
|
||||
}
|
||||
} else {
|
||||
counter = dns_nsstatscounter_success;
|
||||
counter = dns_statscounter_success;
|
||||
}
|
||||
} else if (client->message->rcode == dns_rcode_nxdomain) {
|
||||
counter = dns_nsstatscounter_nxdomain;
|
||||
counter = dns_statscounter_nxdomain;
|
||||
} else {
|
||||
/* We end up here in case of YXDOMAIN, and maybe others */
|
||||
counter = dns_nsstatscounter_failure;
|
||||
counter = dns_statscounter_failure;
|
||||
}
|
||||
inc_stats(client, counter);
|
||||
ns_client_send(client);
|
||||
@@ -166,28 +164,18 @@ query_send(ns_client_t *client) {
|
||||
|
||||
static void
|
||||
query_error(ns_client_t *client, isc_result_t result) {
|
||||
switch (result) {
|
||||
case DNS_R_SERVFAIL:
|
||||
inc_stats(client, dns_nsstatscounter_servfail);
|
||||
break;
|
||||
case DNS_R_FORMERR:
|
||||
inc_stats(client, dns_nsstatscounter_formerr);
|
||||
break;
|
||||
default:
|
||||
inc_stats(client, dns_nsstatscounter_failure);
|
||||
break;
|
||||
}
|
||||
inc_stats(client, dns_statscounter_failure);
|
||||
ns_client_error(client, result);
|
||||
}
|
||||
|
||||
static void
|
||||
query_next(ns_client_t *client, isc_result_t result) {
|
||||
if (result == DNS_R_DUPLICATE)
|
||||
inc_stats(client, dns_nsstatscounter_duplicate);
|
||||
inc_stats(client, dns_statscounter_duplicate);
|
||||
else if (result == DNS_R_DROP)
|
||||
inc_stats(client, dns_nsstatscounter_dropped);
|
||||
inc_stats(client, dns_statscounter_dropped);
|
||||
else
|
||||
inc_stats(client, dns_nsstatscounter_failure);
|
||||
inc_stats(client, dns_statscounter_failure);
|
||||
ns_client_next(client, result);
|
||||
}
|
||||
|
||||
@@ -2311,7 +2299,7 @@ mark_secure(ns_client_t *client, dns_db_t *db, dns_name_t *name,
|
||||
static isc_boolean_t
|
||||
get_key(ns_client_t *client, dns_db_t *db, dns_rdata_rrsig_t *rrsig,
|
||||
dns_rdataset_t *keyrdataset, dst_key_t **keyp)
|
||||
{
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_dbnode_t *node = NULL;
|
||||
isc_boolean_t secure = ISC_FALSE;
|
||||
@@ -2344,12 +2332,12 @@ get_key(ns_client_t *client, dns_db_t *db, dns_rdata_rrsig_t *rrsig,
|
||||
isc_buffer_init(&b, rdata.data, rdata.length);
|
||||
isc_buffer_add(&b, rdata.length);
|
||||
result = dst_key_fromdns(&rrsig->signer, rdata.rdclass, &b,
|
||||
client->mctx, keyp);
|
||||
client->mctx, keyp);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
continue;
|
||||
if (rrsig->algorithm == (dns_secalg_t)dst_key_alg(*keyp) &&
|
||||
rrsig->keyid == (dns_keytag_t)dst_key_id(*keyp) &&
|
||||
dst_key_iszonekey(*keyp)) {
|
||||
rrsig->keyid == (dns_keytag_t)dst_key_id(*keyp) &&
|
||||
dst_key_iszonekey(*keyp)) {
|
||||
secure = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
@@ -2367,7 +2355,7 @@ verify(dst_key_t *key, dns_name_t *name, dns_rdataset_t *rdataset,
|
||||
isc_boolean_t ignore = ISC_FALSE;
|
||||
|
||||
dns_fixedname_init(&fixed);
|
||||
|
||||
|
||||
again:
|
||||
result = dns_dnssec_verify2(name, rdataset, key, ignore, mctx,
|
||||
rdata, NULL);
|
||||
@@ -2395,7 +2383,7 @@ validate(ns_client_t *client, dns_db_t *db, dns_name_t *name,
|
||||
|
||||
if (sigrdataset == NULL || !dns_rdataset_isassociated(sigrdataset))
|
||||
return (ISC_FALSE);
|
||||
|
||||
|
||||
for (result = dns_rdataset_first(sigrdataset);
|
||||
result == ISC_R_SUCCESS;
|
||||
result = dns_rdataset_next(sigrdataset)) {
|
||||
@@ -2770,13 +2758,6 @@ query_addwildcardproof(ns_client_t *client, dns_db_t *db,
|
||||
&olabels);
|
||||
(void)dns_name_fullcompare(name, &nsec.next, &order,
|
||||
&nlabels);
|
||||
/*
|
||||
* Check for a pathological condition created when
|
||||
* serving some malformed signed zones and bail out.
|
||||
*/
|
||||
if (dns_name_countlabels(name) == nlabels)
|
||||
goto cleanup;
|
||||
|
||||
if (olabels > nlabels)
|
||||
dns_name_split(name, olabels, NULL, wname);
|
||||
else
|
||||
@@ -2944,14 +2925,13 @@ query_resume(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
static isc_result_t
|
||||
query_recurse(ns_client_t *client, dns_rdatatype_t qtype, dns_name_t *qdomain,
|
||||
dns_rdataset_t *nameservers, isc_boolean_t resuming)
|
||||
dns_rdataset_t *nameservers)
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_rdataset_t *rdataset, *sigrdataset;
|
||||
isc_sockaddr_t *peeraddr;
|
||||
|
||||
if (!resuming)
|
||||
inc_stats(client, dns_nsstatscounter_recursion);
|
||||
inc_stats(client, dns_statscounter_recursion);
|
||||
|
||||
/*
|
||||
* We are about to recurse, which means that this client will
|
||||
@@ -3183,11 +3163,11 @@ query_addnoqnameproof(ns_client_t *client, dns_rdataset_t *rdataset) {
|
||||
|
||||
cleanup:
|
||||
if (nsec != NULL)
|
||||
query_putrdataset(client, &nsec);
|
||||
if (nsecsig != NULL)
|
||||
query_putrdataset(client, &nsecsig);
|
||||
if (fname != NULL)
|
||||
query_releasename(client, &fname);
|
||||
query_putrdataset(client, &nsec);
|
||||
if (nsecsig != NULL)
|
||||
query_putrdataset(client, &nsecsig);
|
||||
if (fname != NULL)
|
||||
query_releasename(client, &fname);
|
||||
}
|
||||
|
||||
static inline void
|
||||
@@ -3290,12 +3270,12 @@ warn_rfc1918(ns_client_t *client, dns_name_t *fname, dns_rdataset_t *rdataset) {
|
||||
dns_rdata_soa_t soa;
|
||||
dns_rdataset_t found;
|
||||
isc_result_t result;
|
||||
|
||||
|
||||
for (i = 0; i < (sizeof(rfc1918names)/sizeof(*rfc1918names)); i++) {
|
||||
if (dns_name_issubdomain(fname, &rfc1918names[i])) {
|
||||
dns_rdataset_init(&found);
|
||||
result = dns_ncache_getrdataset(rdataset,
|
||||
&rfc1918names[i],
|
||||
&rfc1918names[i],
|
||||
dns_rdatatype_soa,
|
||||
&found);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
@@ -3356,7 +3336,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
unsigned int options;
|
||||
isc_boolean_t empty_wild;
|
||||
dns_rdataset_t *noqname;
|
||||
isc_boolean_t resuming;
|
||||
|
||||
CTRACE("query_find");
|
||||
|
||||
@@ -3382,7 +3361,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
need_wildcardproof = ISC_FALSE;
|
||||
empty_wild = ISC_FALSE;
|
||||
options = 0;
|
||||
resuming = ISC_FALSE;
|
||||
|
||||
if (event != NULL) {
|
||||
/*
|
||||
@@ -3425,7 +3403,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
}
|
||||
|
||||
result = event->result;
|
||||
resuming = ISC_TRUE;
|
||||
|
||||
goto resume;
|
||||
}
|
||||
@@ -3513,11 +3490,6 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
}
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
if (result == DNS_R_REFUSED) {
|
||||
if (WANTRECURSION(client)) {
|
||||
inc_stats(client,
|
||||
dns_nsstatscounter_recurserej);
|
||||
} else
|
||||
inc_stats(client, dns_nsstatscounter_authrej);
|
||||
if (!PARTIALANSWER(client))
|
||||
QUERY_ERROR(DNS_R_REFUSED);
|
||||
} else
|
||||
@@ -3631,7 +3603,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
*/
|
||||
if (RECURSIONOK(client)) {
|
||||
result = query_recurse(client, qtype,
|
||||
NULL, NULL, resuming);
|
||||
NULL, NULL);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
client->query.attributes |=
|
||||
NS_QUERYATTR_RECURSING;
|
||||
@@ -3802,12 +3774,10 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
*/
|
||||
if (dns_rdatatype_atparent(type))
|
||||
result = query_recurse(client, qtype,
|
||||
NULL, NULL,
|
||||
resuming);
|
||||
NULL, NULL);
|
||||
else
|
||||
result = query_recurse(client, qtype,
|
||||
fname, rdataset,
|
||||
resuming);
|
||||
fname, rdataset);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
client->query.attributes |=
|
||||
NS_QUERYATTR_RECURSING;
|
||||
@@ -4251,8 +4221,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype)
|
||||
result = query_recurse(client,
|
||||
qtype,
|
||||
NULL,
|
||||
NULL,
|
||||
resuming);
|
||||
NULL);
|
||||
if (result == ISC_R_SUCCESS)
|
||||
client->query.attributes |=
|
||||
NS_QUERYATTR_RECURSING;
|
||||
@@ -4473,7 +4442,6 @@ ns_query_start(ns_client_t *client) {
|
||||
dns_rdatatype_t qtype;
|
||||
unsigned int saved_extflags = client->extflags;
|
||||
unsigned int saved_flags = client->message->flags;
|
||||
isc_boolean_t want_ad;
|
||||
|
||||
CTRACE("ns_query_start");
|
||||
|
||||
@@ -4562,7 +4530,6 @@ ns_query_start(ns_client_t *client) {
|
||||
rdataset = ISC_LIST_HEAD(client->query.qname->list);
|
||||
INSIST(rdataset != NULL);
|
||||
qtype = rdataset->type;
|
||||
dns_rdatatypestats_increment(ns_g_server->rcvquerystats, qtype);
|
||||
if (dns_rdatatype_ismeta(qtype)) {
|
||||
switch (qtype) {
|
||||
case dns_rdatatype_any:
|
||||
@@ -4613,15 +4580,6 @@ ns_query_start(ns_client_t *client) {
|
||||
if (message->flags & DNS_MESSAGEFLAG_CD)
|
||||
client->query.attributes &= ~NS_QUERYATTR_SECURE;
|
||||
|
||||
/*
|
||||
* Set 'want_ad' if the client has set AD in the query.
|
||||
* This allows AD to be returned on queries without DO set.
|
||||
*/
|
||||
if ((message->flags & DNS_MESSAGEFLAG_AD) != 0)
|
||||
want_ad = ISC_TRUE;
|
||||
else
|
||||
want_ad = ISC_FALSE;
|
||||
|
||||
/*
|
||||
* This is an ordinary query.
|
||||
*/
|
||||
@@ -4641,7 +4599,7 @@ ns_query_start(ns_client_t *client) {
|
||||
* Set AD. We must clear it if we add non-validated data to a
|
||||
* response.
|
||||
*/
|
||||
if (WANTDNSSEC(client) || want_ad)
|
||||
if (WANTDNSSEC(client))
|
||||
message->flags |= DNS_MESSAGEFLAG_AD;
|
||||
|
||||
qclient = NULL;
|
||||
|
||||
+422
-224
File diff suppressed because it is too large
Load Diff
+21
-615
@@ -14,7 +14,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: statschannel.c,v 1.2.2.9 2008/04/09 22:53:06 tbox Exp $ */
|
||||
/* $Id: statschannel.c,v 1.2.2.3 2008/01/17 23:46:36 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -23,25 +23,17 @@
|
||||
#include <isc/buffer.h>
|
||||
#include <isc/httpd.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/once.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/socket.h>
|
||||
#include <isc/task.h>
|
||||
|
||||
#include <dns/db.h>
|
||||
#include <dns/opcode.h>
|
||||
#include <dns/rdataclass.h>
|
||||
#include <dns/rdatatype.h>
|
||||
#include <dns/stats.h>
|
||||
#include <dns/view.h>
|
||||
#include <dns/zt.h>
|
||||
|
||||
#include <named/log.h>
|
||||
#include <named/server.h>
|
||||
#include <named/statschannel.h>
|
||||
|
||||
#include "bind9.xsl.h"
|
||||
|
||||
struct ns_statschannel {
|
||||
/* Unlocked */
|
||||
isc_httpdmgr_t *httpdmgr;
|
||||
@@ -59,190 +51,6 @@ struct ns_statschannel {
|
||||
ISC_LINK(struct ns_statschannel) link;
|
||||
};
|
||||
|
||||
typedef enum { statsformat_file, statsformat_xml } statsformat_t;
|
||||
|
||||
typedef struct
|
||||
stats_dumparg {
|
||||
statsformat_t type;
|
||||
void *arg; /* type dependent argument */
|
||||
const char **desc; /* used for general statistics */
|
||||
int ncounters; /* used for general statistics */
|
||||
} stats_dumparg_t;
|
||||
|
||||
static isc_once_t once = ISC_ONCE_INIT;
|
||||
|
||||
static void
|
||||
generalstat_dump(dns_statscounter_t counter, isc_uint64_t val, void *arg) {
|
||||
stats_dumparg_t *dumparg = arg;
|
||||
FILE *fp;
|
||||
#ifdef HAVE_LIBXML2
|
||||
xmlTextWriterPtr writer;
|
||||
#endif
|
||||
|
||||
REQUIRE(counter < dumparg->ncounters);
|
||||
|
||||
switch (dumparg->type) {
|
||||
case statsformat_file:
|
||||
fp = dumparg->arg;
|
||||
fprintf(fp, "%20" ISC_PRINT_QUADFORMAT "u %s\n", val,
|
||||
dumparg->desc[counter]);
|
||||
break;
|
||||
case statsformat_xml:
|
||||
#ifdef HAVE_LIBXML2
|
||||
writer = dumparg->arg;
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR
|
||||
dumparg->desc[counter]);
|
||||
xmlTextWriterWriteFormatString(writer,
|
||||
"%" ISC_PRINT_QUADFORMAT "u",
|
||||
val);
|
||||
xmlTextWriterEndElement(writer);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
rdtypestat_dump(dns_rdatastatstype_t type, isc_uint64_t val, void *arg) {
|
||||
char typebuf[64];
|
||||
const char *typestr;
|
||||
stats_dumparg_t *dumparg = arg;
|
||||
FILE *fp;
|
||||
#ifdef HAVE_LIBXML2
|
||||
xmlTextWriterPtr writer;
|
||||
#endif
|
||||
|
||||
if ((DNS_RDATASTATSTYPE_ATTR(type) & DNS_RDATASTATSTYPE_ATTR_OTHERTYPE)
|
||||
== 0) {
|
||||
dns_rdatatype_format(DNS_RDATASTATSTYPE_BASE(type), typebuf,
|
||||
sizeof(typebuf));
|
||||
typestr = typebuf;
|
||||
} else
|
||||
typestr = "Others";
|
||||
|
||||
switch (dumparg->type) {
|
||||
case statsformat_file:
|
||||
fp = dumparg->arg;
|
||||
fprintf(fp, "%20" ISC_PRINT_QUADFORMAT "u %s\n", val, typestr);
|
||||
break;
|
||||
case statsformat_xml:
|
||||
#ifdef HAVE_LIBXML2
|
||||
writer = dumparg->arg;
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "rdtype");
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "name");
|
||||
xmlTextWriterWriteString(writer, ISC_XMLCHAR typestr);
|
||||
xmlTextWriterEndElement(writer); /* name */
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "counter");
|
||||
xmlTextWriterWriteFormatString(writer,
|
||||
"%" ISC_PRINT_QUADFORMAT "u",
|
||||
val);
|
||||
xmlTextWriterEndElement(writer); /* counter */
|
||||
|
||||
xmlTextWriterEndElement(writer); /* rdtype */
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
rdatasetstats_dump(dns_rdatastatstype_t type, isc_uint64_t val, void *arg) {
|
||||
stats_dumparg_t *dumparg = arg;
|
||||
FILE *fp;
|
||||
char typebuf[64];
|
||||
const char *typestr;
|
||||
isc_boolean_t nxrrset = ISC_FALSE;
|
||||
#ifdef HAVE_LIBXML2
|
||||
xmlTextWriterPtr writer;
|
||||
#endif
|
||||
|
||||
if ((DNS_RDATASTATSTYPE_ATTR(type) & DNS_RDATASTATSTYPE_ATTR_NXDOMAIN)
|
||||
!= 0) {
|
||||
typestr = "NXDOMAIN";
|
||||
} else if ((DNS_RDATASTATSTYPE_ATTR(type) &
|
||||
DNS_RDATASTATSTYPE_ATTR_OTHERTYPE) != 0) {
|
||||
typestr = "Others";
|
||||
} else {
|
||||
dns_rdatatype_format(DNS_RDATASTATSTYPE_BASE(type), typebuf,
|
||||
sizeof(typebuf));
|
||||
typestr = typebuf;
|
||||
}
|
||||
|
||||
if ((DNS_RDATASTATSTYPE_ATTR(type) & DNS_RDATASTATSTYPE_ATTR_NXRRSET)
|
||||
!= 0)
|
||||
nxrrset = ISC_TRUE;
|
||||
|
||||
switch (dumparg->type) {
|
||||
case statsformat_file:
|
||||
fp = dumparg->arg;
|
||||
fprintf(fp, "%20" ISC_PRINT_QUADFORMAT "u %s%s\n", val,
|
||||
nxrrset ? "!" : "", typestr);
|
||||
break;
|
||||
case statsformat_xml:
|
||||
#ifdef HAVE_LIBXML2
|
||||
writer = dumparg->arg;
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "rrset");
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "name");
|
||||
xmlTextWriterWriteFormatString(writer, "%s%s",
|
||||
nxrrset ? "!" : "", typestr);
|
||||
xmlTextWriterEndElement(writer); /* name */
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "counter");
|
||||
xmlTextWriterWriteFormatString(writer,
|
||||
"%" ISC_PRINT_QUADFORMAT "u",
|
||||
val);
|
||||
xmlTextWriterEndElement(writer); /* counter */
|
||||
|
||||
xmlTextWriterEndElement(writer); /* rrset */
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
opcodestat_dump(dns_opcode_t code, isc_uint64_t val, void *arg) {
|
||||
FILE *fp = arg;
|
||||
isc_buffer_t b;
|
||||
char codebuf[64];
|
||||
stats_dumparg_t *dumparg = arg;
|
||||
#ifdef HAVE_LIBXML2
|
||||
xmlTextWriterPtr writer;
|
||||
#endif
|
||||
|
||||
isc_buffer_init(&b, codebuf, sizeof(codebuf) - 1);
|
||||
dns_opcode_totext(code, &b);
|
||||
codebuf[isc_buffer_usedlength(&b)] = '\0';
|
||||
|
||||
switch (dumparg->type) {
|
||||
case statsformat_file:
|
||||
fp = dumparg->arg;
|
||||
fprintf(fp, "%20" ISC_PRINT_QUADFORMAT "u %s\n", val, codebuf);
|
||||
break;
|
||||
case statsformat_xml:
|
||||
#ifdef HAVE_LIBXML2
|
||||
writer = dumparg->arg;
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "opcode");
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "name");
|
||||
xmlTextWriterWriteString(writer, ISC_XMLCHAR codebuf);
|
||||
xmlTextWriterEndElement(writer); /* name */
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "counter");
|
||||
xmlTextWriterWriteFormatString(writer,
|
||||
"%" ISC_PRINT_QUADFORMAT "u",
|
||||
val);
|
||||
xmlTextWriterEndElement(writer); /* counter */
|
||||
|
||||
xmlTextWriterEndElement(writer); /* opcode */
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBXML2
|
||||
|
||||
/* XXXMLG below here sucks. */
|
||||
@@ -250,50 +58,8 @@ opcodestat_dump(dns_opcode_t code, isc_uint64_t val, void *arg) {
|
||||
#define TRY(a) do { result = (a); INSIST(result == ISC_R_SUCCESS); } while(0);
|
||||
#define TRY0(a) do { xmlrc = (a); INSIST(xmlrc >= 0); } while(0);
|
||||
|
||||
static isc_result_t
|
||||
zone_xmlrender(dns_zone_t *zone, void *arg) {
|
||||
char buf[1024 + 32]; /* sufficiently large for zone name and class */
|
||||
dns_rdataclass_t rdclass;
|
||||
isc_uint32_t serial;
|
||||
xmlTextWriterPtr writer = arg;
|
||||
stats_dumparg_t dumparg;
|
||||
dns_stats_t *zonestats;
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "zone");
|
||||
|
||||
dns_zone_name(zone, buf, sizeof(buf));
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "name");
|
||||
xmlTextWriterWriteString(writer, ISC_XMLCHAR buf);
|
||||
xmlTextWriterEndElement(writer);
|
||||
|
||||
rdclass = dns_zone_getclass(zone);
|
||||
dns_rdataclass_format(rdclass, buf, sizeof(buf));
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "rdataclass");
|
||||
xmlTextWriterWriteString(writer, ISC_XMLCHAR buf);
|
||||
xmlTextWriterEndElement(writer);
|
||||
|
||||
serial = dns_zone_getserial(zone);
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "serial");
|
||||
xmlTextWriterWriteFormatString(writer, "%u", serial);
|
||||
xmlTextWriterEndElement(writer);
|
||||
|
||||
dumparg.type = statsformat_xml;
|
||||
dumparg.arg = writer;
|
||||
dumparg.desc = nsstats_xmldesc;
|
||||
dumparg.ncounters = dns_nsstatscounter_max;
|
||||
|
||||
zonestats = dns_zone_getrequeststats(zone);
|
||||
if (zonestats != NULL) {
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters");
|
||||
dns_generalstats_dump(zonestats, generalstat_dump,
|
||||
&dumparg, DNS_STATSDUMP_VERBOSE);
|
||||
xmlTextWriterEndElement(writer); /* counters */
|
||||
}
|
||||
|
||||
xmlTextWriterEndElement(writer); /* zone */
|
||||
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
#define NODES 8
|
||||
#define SPACES 3
|
||||
|
||||
static void
|
||||
generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
|
||||
@@ -304,8 +70,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
|
||||
xmlDocPtr doc;
|
||||
int xmlrc;
|
||||
dns_view_t *view;
|
||||
stats_dumparg_t dumparg;
|
||||
dns_stats_t *cachestats;
|
||||
int i;
|
||||
|
||||
isc_time_now(&now);
|
||||
isc_time_formatISO8601(&ns_g_boottime, boottime, sizeof boottime);
|
||||
@@ -324,10 +89,6 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
|
||||
TRY0(xmlTextWriterWriteAttribute(writer, ISC_XMLCHAR "version",
|
||||
ISC_XMLCHAR "1.0"));
|
||||
|
||||
/* Set common fields for statistics dump */
|
||||
dumparg.type = statsformat_xml;
|
||||
dumparg.arg = writer;
|
||||
|
||||
/*
|
||||
* Start by rendering the views we know of here. For each view we
|
||||
* know of, call its rendering function.
|
||||
@@ -335,43 +96,7 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
|
||||
view = ISC_LIST_HEAD(server->viewlist);
|
||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "views"));
|
||||
while (view != NULL) {
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "view");
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "name");
|
||||
xmlTextWriterWriteString(writer, ISC_XMLCHAR view->name);
|
||||
xmlTextWriterEndElement(writer);
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "zones");
|
||||
dns_zt_apply(view->zonetable, ISC_FALSE, zone_xmlrender,
|
||||
writer);
|
||||
xmlTextWriterEndElement(writer);
|
||||
|
||||
if (view->resquerystats != NULL) {
|
||||
dns_rdatatypestats_dump(view->resquerystats,
|
||||
rdtypestat_dump, &dumparg, 0);
|
||||
}
|
||||
|
||||
if (view->resstats != NULL) {
|
||||
xmlTextWriterStartElement(writer,
|
||||
ISC_XMLCHAR "resstats");
|
||||
dumparg.ncounters = dns_resstatscounter_max;
|
||||
dumparg.desc = resstats_xmldesc; /* auto-generated */
|
||||
dns_generalstats_dump(view->resstats, generalstat_dump,
|
||||
&dumparg, DNS_STATSDUMP_VERBOSE);
|
||||
xmlTextWriterEndElement(writer); /* resstats */
|
||||
}
|
||||
|
||||
cachestats = dns_db_getrrsetstats(view->cachedb);
|
||||
if (cachestats != NULL) {
|
||||
xmlTextWriterStartElement(writer,
|
||||
ISC_XMLCHAR "cache");
|
||||
dns_rdatasetstats_dump(cachestats, rdatasetstats_dump,
|
||||
&dumparg, 0);
|
||||
xmlTextWriterEndElement(writer); /* cache */
|
||||
}
|
||||
|
||||
xmlTextWriterEndElement(writer); /* view */
|
||||
|
||||
dns_view_xmlrender(view, writer, ISC_XML_RENDERALL);
|
||||
view = ISC_LIST_NEXT(view, link);
|
||||
}
|
||||
TRY0(xmlTextWriterEndElement(writer)); /* views */
|
||||
@@ -391,42 +116,20 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "current-time");
|
||||
xmlTextWriterWriteString(writer, ISC_XMLCHAR nowstr);
|
||||
xmlTextWriterEndElement(writer);
|
||||
|
||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "requests"));
|
||||
dns_opcodestats_dump(server->opcodestats, opcodestat_dump, &dumparg,
|
||||
0);
|
||||
xmlTextWriterEndElement(writer); /* requests */
|
||||
|
||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "queries-in"));
|
||||
dns_rdatatypestats_dump(server->rcvquerystats, rdtypestat_dump,
|
||||
&dumparg, 0);
|
||||
xmlTextWriterEndElement(writer); /* queries-in */
|
||||
|
||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "nsstats"));
|
||||
dumparg.desc = nsstats_xmldesc; /* auto-generated in bind9.xsl.h */
|
||||
dumparg.ncounters = dns_nsstatscounter_max;
|
||||
dns_generalstats_dump(server->nsstats, generalstat_dump, &dumparg,
|
||||
DNS_STATSDUMP_VERBOSE);
|
||||
xmlTextWriterEndElement(writer); /* nsstats */
|
||||
|
||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "zonestats"));
|
||||
dumparg.desc = zonestats_xmldesc; /* auto-generated in bind9.xsl.h */
|
||||
dumparg.ncounters = dns_zonestatscounter_max;
|
||||
dns_generalstats_dump(server->zonestats, generalstat_dump, &dumparg,
|
||||
DNS_STATSDUMP_VERBOSE);
|
||||
xmlTextWriterEndElement(writer); /* zonestats */
|
||||
|
||||
xmlTextWriterStartElement(writer, ISC_XMLCHAR "resstats");
|
||||
dumparg.ncounters = dns_resstatscounter_max;
|
||||
dumparg.desc = resstats_xmldesc;
|
||||
dns_generalstats_dump(server->resolverstats, generalstat_dump,
|
||||
&dumparg, DNS_STATSDUMP_VERBOSE);
|
||||
xmlTextWriterEndElement(writer); /* resstats */
|
||||
|
||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "counters"));
|
||||
for (i = 0; i < DNS_STATS_NCOUNTERS; i++) {
|
||||
xmlTextWriterStartElement(writer,
|
||||
ISC_XMLCHAR dns_statscounter_names[i]);
|
||||
xmlTextWriterWriteFormatString(writer,
|
||||
"%" ISC_PRINT_QUADFORMAT "u",
|
||||
server->querystats[i]);
|
||||
xmlTextWriterEndElement(writer);
|
||||
}
|
||||
xmlTextWriterEndElement(writer); /* counters */
|
||||
xmlTextWriterEndElement(writer); /* server */
|
||||
|
||||
TRY0(xmlTextWriterStartElement(writer, ISC_XMLCHAR "memory"));
|
||||
isc_mem_renderxml(writer);
|
||||
isc_mem_renderxml(server->mctx, writer);
|
||||
TRY0(xmlTextWriterEndElement(writer)); /* memory */
|
||||
|
||||
TRY0(xmlTextWriterEndElement(writer)); /* statistics */
|
||||
@@ -482,6 +185,8 @@ render_xsl(const char *url, const char *querystring, void *args,
|
||||
isc_buffer_t *b, isc_httpdfree_t **freecb,
|
||||
void **freecb_args)
|
||||
{
|
||||
#include "bind9.xsl.h"
|
||||
|
||||
UNUSED(url);
|
||||
UNUSED(querystring);
|
||||
UNUSED(args);
|
||||
@@ -489,8 +194,8 @@ render_xsl(const char *url, const char *querystring, void *args,
|
||||
*retcode = 200;
|
||||
*retmsg = "OK";
|
||||
*mimetype = "text/xslt+xml";
|
||||
isc_buffer_reinit(b, xslmsg, strlen(xslmsg));
|
||||
isc_buffer_add(b, strlen(xslmsg));
|
||||
isc_buffer_reinit(b, msg, strlen(msg));
|
||||
isc_buffer_add(b, strlen(msg));
|
||||
*freecb = NULL;
|
||||
*freecb_args = NULL;
|
||||
|
||||
@@ -542,7 +247,7 @@ destroy_listener(void *arg) {
|
||||
REQUIRE(listener != NULL);
|
||||
REQUIRE(!ISC_LINK_LINKED(listener, link));
|
||||
|
||||
/* We don't have to acquire the lock here since it's already unlinked */
|
||||
/* We don't to have acquire the lock here since it's already unlinked */
|
||||
dns_acl_detach(&listener->acl);
|
||||
|
||||
DESTROYLOCK(&listener->lock);
|
||||
@@ -826,302 +531,3 @@ ns_statschannels_shutdown(ns_server_t *server) {
|
||||
shutdown_listener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
/*%
|
||||
* Statistics descriptions. These could be statistically initialized at
|
||||
* compile time, but we configure them run time in the init_desc() function
|
||||
* below so that they'll be less susceptible to counter name changes.
|
||||
* Note that bind9.xsl must still be updated consistently with the counter
|
||||
* numbering.
|
||||
*/
|
||||
static const char *nsstats_desc[dns_nsstatscounter_max];
|
||||
static const char *resstats_desc[dns_resstatscounter_max];
|
||||
static const char *zonestats_desc[dns_zonestatscounter_max];
|
||||
|
||||
static inline void
|
||||
set_desc(int counter, int maxcounter, const char *desc, const char **descs) {
|
||||
REQUIRE(counter < maxcounter);
|
||||
REQUIRE(descs[counter] == NULL);
|
||||
|
||||
descs[counter] = desc;
|
||||
}
|
||||
|
||||
static void
|
||||
init_desc() {
|
||||
int i;
|
||||
|
||||
/* Initialize name server statistics */
|
||||
memset(nsstats_desc, 0,
|
||||
dns_nsstatscounter_max * sizeof(nsstats_desc[0]));
|
||||
set_desc(dns_nsstatscounter_requestv4, dns_nsstatscounter_max,
|
||||
"IPv4 requests received", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_requestv6, dns_nsstatscounter_max,
|
||||
"IPv6 requests received", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_edns0in, dns_nsstatscounter_max,
|
||||
"requests with EDNS(0) received", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_badednsver, dns_nsstatscounter_max,
|
||||
"requests with unsupported EDNS version received",
|
||||
nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_tsigin, dns_nsstatscounter_max,
|
||||
"requests with TSIG received", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_sig0in, dns_nsstatscounter_max,
|
||||
"requests with SIG(0) received", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_invalidsig, dns_nsstatscounter_max,
|
||||
"requests with invalid signature", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_tcp, dns_nsstatscounter_max,
|
||||
"TCP requests received", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_authrej, dns_nsstatscounter_max,
|
||||
"auth queries rejected", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_recurserej, dns_nsstatscounter_max,
|
||||
"recursive queries rejected", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_xfrrej, dns_nsstatscounter_max,
|
||||
"transfer requests rejected", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_updaterej, dns_nsstatscounter_max,
|
||||
"update requests rejected", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_response, dns_nsstatscounter_max,
|
||||
"responses sent", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_truncatedresp, dns_nsstatscounter_max,
|
||||
"truncated responses sent", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_edns0out, dns_nsstatscounter_max,
|
||||
"responses with EDNS(0) sent", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_tsigout, dns_nsstatscounter_max,
|
||||
"responses with TSIG sent", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_sig0out, dns_nsstatscounter_max,
|
||||
"responses with SIG(0) sent", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_success, dns_nsstatscounter_max,
|
||||
"queries resulted in successful answer", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_authans, dns_nsstatscounter_max,
|
||||
"queries resulted in authoritative answer", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_nonauthans, dns_nsstatscounter_max,
|
||||
"queries resulted in non authoritative answer", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_referral, dns_nsstatscounter_max,
|
||||
"queries resulted in referral answer", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_nxrrset, dns_nsstatscounter_max,
|
||||
"queries resulted in nxrrset", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_servfail, dns_nsstatscounter_max,
|
||||
"queries resulted in SERVFAIL", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_formerr, dns_nsstatscounter_max,
|
||||
"queries resulted in FORMERR", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_nxdomain, dns_nsstatscounter_max,
|
||||
"queries resulted in NXDOMAIN", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_recursion, dns_nsstatscounter_max,
|
||||
"queries caused recursion", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_duplicate, dns_nsstatscounter_max,
|
||||
"duplicate queries received", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_dropped, dns_nsstatscounter_max,
|
||||
"queries dropped", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_failure, dns_nsstatscounter_max,
|
||||
"other query failures", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_xfrdone, dns_nsstatscounter_max,
|
||||
"requested transfers completed", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_updatereqfwd, dns_nsstatscounter_max,
|
||||
"update requests forwarded", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_updaterespfwd, dns_nsstatscounter_max,
|
||||
"update responses forwarded", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_updatefwdfail, dns_nsstatscounter_max,
|
||||
"update forward failed", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_updatedone, dns_nsstatscounter_max,
|
||||
"updates completed", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_updatefail, dns_nsstatscounter_max,
|
||||
"updates failed", nsstats_desc);
|
||||
set_desc(dns_nsstatscounter_updatebadprereq, dns_nsstatscounter_max,
|
||||
"updates rejected due to prerequisite failure", nsstats_desc);
|
||||
|
||||
/* Initialize resolver statistics */
|
||||
memset(resstats_desc, 0,
|
||||
dns_resstatscounter_max * sizeof(resstats_desc[0]));
|
||||
set_desc(dns_resstatscounter_queryv4, dns_resstatscounter_max,
|
||||
"IPv4 queries sent", resstats_desc);
|
||||
set_desc(dns_resstatscounter_queryv6, dns_resstatscounter_max,
|
||||
"IPv6 queries sent", resstats_desc);
|
||||
set_desc(dns_resstatscounter_responsev4, dns_resstatscounter_max,
|
||||
"IPv4 responses received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_responsev6, dns_resstatscounter_max,
|
||||
"IPv6 responses received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_nxdomain, dns_resstatscounter_max,
|
||||
"NXDOMAIN received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_servfail, dns_resstatscounter_max,
|
||||
"SERVFAIL received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_formerr, dns_resstatscounter_max,
|
||||
"FORMERR received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_othererror, dns_resstatscounter_max,
|
||||
"other errors received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_edns0fail, dns_resstatscounter_max,
|
||||
"EDNS(0) query failures", resstats_desc);
|
||||
set_desc(dns_resstatscounter_mismatch, dns_resstatscounter_max,
|
||||
"mismatch responses received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_truncated, dns_resstatscounter_max,
|
||||
"truncated responses received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_lame, dns_resstatscounter_max,
|
||||
"lame delegations received", resstats_desc);
|
||||
set_desc(dns_resstatscounter_retry, dns_resstatscounter_max,
|
||||
"query retries", resstats_desc);
|
||||
set_desc(dns_resstatscounter_gluefetchv4, dns_resstatscounter_max,
|
||||
"IPv4 NS address fetches", resstats_desc);
|
||||
set_desc(dns_resstatscounter_gluefetchv6, dns_resstatscounter_max,
|
||||
"IPv6 NS address fetches", resstats_desc);
|
||||
set_desc(dns_resstatscounter_gluefetchv4fail, dns_resstatscounter_max,
|
||||
"IPv4 NS address fetch failed", resstats_desc);
|
||||
set_desc(dns_resstatscounter_gluefetchv6fail, dns_resstatscounter_max,
|
||||
"IPv6 NS address fetch failed", resstats_desc);
|
||||
set_desc(dns_resstatscounter_val, dns_resstatscounter_max,
|
||||
"DNSSEC validation attempted", resstats_desc);
|
||||
set_desc(dns_resstatscounter_valsuccess, dns_resstatscounter_max,
|
||||
"DNSSEC validation succeeded", resstats_desc);
|
||||
set_desc(dns_resstatscounter_valnegsuccess, dns_resstatscounter_max,
|
||||
"DNSSEC NX validation succeeded", resstats_desc);
|
||||
set_desc(dns_resstatscounter_valfail, dns_resstatscounter_max,
|
||||
"DNSSEC validation failed", resstats_desc);
|
||||
|
||||
/* Initialize zone statistics */
|
||||
memset(zonestats_desc, 0,
|
||||
dns_zonestatscounter_max * sizeof(zonestats_desc[0]));
|
||||
set_desc(dns_zonestatscounter_notifyoutv4, dns_zonestatscounter_max,
|
||||
"IPv4 notifies sent", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_notifyoutv6, dns_zonestatscounter_max,
|
||||
"IPv6 notifies sent", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_notifyinv4, dns_zonestatscounter_max,
|
||||
"IPv4 notifies received", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_notifyinv6, dns_zonestatscounter_max,
|
||||
"IPv6 notifies received", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_notifyrej, dns_zonestatscounter_max,
|
||||
"notifies rejected", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_soaoutv4, dns_zonestatscounter_max,
|
||||
"IPv4 SOA queries sent", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_soaoutv6, dns_zonestatscounter_max,
|
||||
"IPv6 SOA queries sent", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_axfrreqv4, dns_zonestatscounter_max,
|
||||
"IPv4 AXFR requested", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_axfrreqv6, dns_zonestatscounter_max,
|
||||
"IPv6 AXFR requested", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_ixfrreqv4, dns_zonestatscounter_max,
|
||||
"IPv4 IXFR requested", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_ixfrreqv6, dns_zonestatscounter_max,
|
||||
"IPv6 IXFR requested", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_xfrsuccess, dns_zonestatscounter_max,
|
||||
"transfer requests succeeded", zonestats_desc);
|
||||
set_desc(dns_zonestatscounter_xfrfail, dns_zonestatscounter_max,
|
||||
"transfer requests failed", zonestats_desc);
|
||||
|
||||
/* Sanity check */
|
||||
for (i = 0; i < dns_nsstatscounter_max; i++)
|
||||
INSIST(nsstats_desc[i] != NULL);
|
||||
for (i = 0; i < dns_resstatscounter_max; i++)
|
||||
INSIST(resstats_desc[i] != NULL);
|
||||
for (i = 0; i < dns_zonestatscounter_max; i++)
|
||||
INSIST(zonestats_desc[i] != NULL);
|
||||
}
|
||||
|
||||
isc_result_t
|
||||
ns_stats_dump(ns_server_t *server, FILE *fp) {
|
||||
isc_stdtime_t now;
|
||||
isc_result_t result;
|
||||
dns_view_t *view;
|
||||
dns_zone_t *zone, *next;
|
||||
stats_dumparg_t dumparg;
|
||||
|
||||
RUNTIME_CHECK(isc_once_do(&once, init_desc) == ISC_R_SUCCESS);
|
||||
|
||||
/* Set common fields */
|
||||
dumparg.type = statsformat_file;
|
||||
dumparg.arg = fp;
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
fprintf(fp, "+++ Statistics Dump +++ (%lu)\n", (unsigned long)now);
|
||||
|
||||
fprintf(fp, "++ Incoming Requests ++\n");
|
||||
dns_opcodestats_dump(server->opcodestats, opcodestat_dump, &dumparg, 0);
|
||||
|
||||
fprintf(fp, "++ Incoming Queries ++\n");
|
||||
dns_rdatatypestats_dump(server->rcvquerystats, rdtypestat_dump,
|
||||
&dumparg, 0);
|
||||
|
||||
fprintf(fp, "++ Outgoing Queries ++\n");
|
||||
for (view = ISC_LIST_HEAD(server->viewlist);
|
||||
view != NULL;
|
||||
view = ISC_LIST_NEXT(view, link)) {
|
||||
if (view->resquerystats == NULL)
|
||||
continue;
|
||||
if (strcmp(view->name, "_default") == 0)
|
||||
fprintf(fp, "[View: default]\n");
|
||||
else
|
||||
fprintf(fp, "[View: %s]\n", view->name);
|
||||
dns_rdatatypestats_dump(view->resquerystats, rdtypestat_dump,
|
||||
&dumparg, 0);
|
||||
}
|
||||
|
||||
fprintf(fp, "++ Name Server Statistics ++\n");
|
||||
dumparg.desc = nsstats_desc;
|
||||
dumparg.ncounters = dns_nsstatscounter_max;
|
||||
dns_generalstats_dump(server->nsstats, generalstat_dump, &dumparg, 0);
|
||||
fprintf(fp, "++ Zone Maintenance Statistics ++\n");
|
||||
dumparg.desc = zonestats_desc;
|
||||
dumparg.ncounters = dns_zonestatscounter_max;
|
||||
dns_generalstats_dump(server->zonestats, generalstat_dump, &dumparg, 0);
|
||||
|
||||
fprintf(fp, "++ Resolver Statistics ++\n");
|
||||
fprintf(fp, "[Common]\n");
|
||||
dumparg.desc = resstats_desc;
|
||||
dumparg.ncounters = dns_resstatscounter_max;
|
||||
dns_generalstats_dump(server->resolverstats, generalstat_dump, &dumparg,
|
||||
0);
|
||||
for (view = ISC_LIST_HEAD(server->viewlist);
|
||||
view != NULL;
|
||||
view = ISC_LIST_NEXT(view, link)) {
|
||||
if (view->resstats == NULL)
|
||||
continue;
|
||||
if (strcmp(view->name, "_default") == 0)
|
||||
fprintf(fp, "[View: default]\n");
|
||||
else
|
||||
fprintf(fp, "[View: %s]\n", view->name);
|
||||
dns_generalstats_dump(view->resstats, generalstat_dump,
|
||||
&dumparg, 0);
|
||||
}
|
||||
|
||||
fprintf(fp, "++ Cache DB RRsets ++\n");
|
||||
for (view = ISC_LIST_HEAD(server->viewlist);
|
||||
view != NULL;
|
||||
view = ISC_LIST_NEXT(view, link)) {
|
||||
dns_stats_t *cachestats;
|
||||
|
||||
cachestats = dns_db_getrrsetstats(view->cachedb);
|
||||
if (cachestats == NULL)
|
||||
continue;
|
||||
if (strcmp(view->name, "_default") == 0)
|
||||
fprintf(fp, "[View: default]\n");
|
||||
else
|
||||
fprintf(fp, "[View: %s]\n", view->name);
|
||||
dns_rdatasetstats_dump(cachestats, rdatasetstats_dump, &dumparg,
|
||||
0);
|
||||
}
|
||||
|
||||
fprintf(fp, "++ Per Zone Query Statistics ++\n");
|
||||
zone = NULL;
|
||||
for (result = dns_zone_first(server->zonemgr, &zone);
|
||||
result == ISC_R_SUCCESS;
|
||||
next = NULL, result = dns_zone_next(zone, &next), zone = next)
|
||||
{
|
||||
dns_stats_t *zonestats = dns_zone_getrequeststats(zone);
|
||||
if (zonestats != NULL) {
|
||||
char zonename[DNS_NAME_FORMATSIZE];
|
||||
|
||||
dns_name_format(dns_zone_getorigin(zone),
|
||||
zonename, sizeof(zonename));
|
||||
view = dns_zone_getview(zone);
|
||||
|
||||
fprintf(fp, "[%s", zonename);
|
||||
if (strcmp(view->name, "_default") != 0)
|
||||
fprintf(fp, " (view: %s)", view->name);
|
||||
fprintf(fp, "]\n");
|
||||
|
||||
dumparg.desc = nsstats_desc;
|
||||
dumparg.ncounters = dns_nsstatscounter_max;
|
||||
dns_generalstats_dump(zonestats, generalstat_dump,
|
||||
&dumparg, 0);
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(fp, "--- Statistics Dump --- (%lu)\n", (unsigned long)now);
|
||||
|
||||
return (ISC_R_SUCCESS); /* this function currently always succeeds */
|
||||
}
|
||||
|
||||
+34
-92
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.c,v 1.79.128.5 2008/05/06 01:32:51 each Exp $ */
|
||||
/* $Id: os.c,v 1.79 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -69,7 +69,7 @@ static int devnullfd = -1;
|
||||
/*
|
||||
* Linux defines:
|
||||
* (T) HAVE_LINUXTHREADS
|
||||
* (C) HAVE_SYS_CAPABILITY_H (or HAVE_LINUX_CAPABILITY_H)
|
||||
* (C) HAVE_LINUX_CAPABILITY_H
|
||||
* (P) HAVE_SYS_PRCTL_H
|
||||
* The possible cases are:
|
||||
* none: setuid() normally
|
||||
@@ -116,9 +116,6 @@ static int dfd[2] = { -1, -1 };
|
||||
static isc_boolean_t non_root = ISC_FALSE;
|
||||
static isc_boolean_t non_root_caps = ISC_FALSE;
|
||||
|
||||
#ifdef HAVE_SYS_CAPABILITY_H
|
||||
#include <sys/capability.h>
|
||||
#else
|
||||
/*%
|
||||
* We define _LINUX_FS_H to prevent it from being included. We don't need
|
||||
* anything from it, and the files it includes cause warnings with 2.2
|
||||
@@ -126,15 +123,9 @@ static isc_boolean_t non_root_caps = ISC_FALSE;
|
||||
* and <string.h>) on 2.3 kernels.
|
||||
*/
|
||||
#define _LINUX_FS_H
|
||||
#include <linux/capability.h>
|
||||
#include <syscall.h>
|
||||
#ifndef SYS_capset
|
||||
#ifndef __NR_capset
|
||||
#include <asm/unistd.h> /* Slackware 4.0 needs this. */
|
||||
#endif /* __NR_capset */
|
||||
#define SYS_capset __NR_capset
|
||||
#endif /* SYS_capset */
|
||||
#endif /* HAVE_SYS_CAPABILITY_H */
|
||||
|
||||
#include <sys/syscall.h> /* Required for syscall(). */
|
||||
#include <linux/capability.h> /* Required for _LINUX_CAPABILITY_VERSION. */
|
||||
|
||||
#ifdef HAVE_SYS_PRCTL_H
|
||||
#include <sys/prctl.h> /* Required for prctl(). */
|
||||
@@ -151,24 +142,22 @@ static isc_boolean_t non_root_caps = ISC_FALSE;
|
||||
|
||||
#endif /* HAVE_SYS_PRCTL_H */
|
||||
|
||||
#ifdef HAVE_LIBCAP
|
||||
#define SETCAPS_FUNC "cap_set_proc "
|
||||
#else
|
||||
typedef unsigned int cap_t;
|
||||
#define SETCAPS_FUNC "syscall(capset) "
|
||||
#endif /* HAVE_LIBCAP */
|
||||
#ifndef SYS_capset
|
||||
#ifndef __NR_capset
|
||||
#include <asm/unistd.h> /* Slackware 4.0 needs this. */
|
||||
#endif
|
||||
#define SYS_capset __NR_capset
|
||||
#endif
|
||||
|
||||
static void
|
||||
linux_setcaps(cap_t caps) {
|
||||
#ifndef HAVE_LIBCAP
|
||||
linux_setcaps(unsigned int caps) {
|
||||
struct __user_cap_header_struct caphead;
|
||||
struct __user_cap_data_struct cap;
|
||||
#endif
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
|
||||
if ((getuid() != 0 && !non_root_caps) || non_root)
|
||||
return;
|
||||
#ifndef HAVE_LIBCAP
|
||||
|
||||
memset(&caphead, 0, sizeof(caphead));
|
||||
caphead.version = _LINUX_CAPABILITY_VERSION;
|
||||
caphead.pid = 0;
|
||||
@@ -176,74 +165,36 @@ linux_setcaps(cap_t caps) {
|
||||
cap.effective = caps;
|
||||
cap.permitted = caps;
|
||||
cap.inheritable = 0;
|
||||
#endif
|
||||
#ifdef HAVE_LIBCAP
|
||||
if (cap_set_proc(caps) < 0) {
|
||||
#else
|
||||
if (syscall(SYS_capset, &caphead, &cap) < 0) {
|
||||
#endif
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
ns_main_earlyfatal(SETCAPS_FUNC "failed: %s:"
|
||||
ns_main_earlyfatal("capset failed: %s:"
|
||||
" please ensure that the capset kernel"
|
||||
" module is loaded. see insmod(8)",
|
||||
strbuf);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBCAP
|
||||
#define SET_CAP(flag) \
|
||||
do { \
|
||||
capval = (flag); \
|
||||
err = cap_set_flag(caps, CAP_EFFECTIVE, 1, &capval, CAP_SET); \
|
||||
if (err == -1) { \
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf)); \
|
||||
ns_main_earlyfatal("cap_set_proc failed: %s", strbuf); \
|
||||
} \
|
||||
\
|
||||
err = cap_set_flag(caps, CAP_PERMITTED, 1, &capval, CAP_SET); \
|
||||
if (err == -1) { \
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf)); \
|
||||
ns_main_earlyfatal("cap_set_proc failed: %s", strbuf); \
|
||||
} \
|
||||
} while (0)
|
||||
#define INIT_CAP \
|
||||
do { \
|
||||
caps = cap_init(); \
|
||||
if (caps == NULL) { \
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf)); \
|
||||
ns_main_earlyfatal("cap_init failed: %s", strbuf); \
|
||||
} \
|
||||
} while (0)
|
||||
#else
|
||||
#define SET_CAP(flag) { caps |= (1 << (flag)); }
|
||||
#define INIT_CAP { caps = 0; }
|
||||
#endif /* HAVE_LIBCAP */
|
||||
|
||||
static void
|
||||
linux_initialprivs(void) {
|
||||
cap_t caps;
|
||||
#ifdef HAVE_LIBCAP
|
||||
cap_value_t capval;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
int err;
|
||||
#endif
|
||||
unsigned int caps;
|
||||
|
||||
/*%
|
||||
* We don't need most privileges, so we drop them right away.
|
||||
* Later on linux_minprivs() will be called, which will drop our
|
||||
* capabilities to the minimum needed to run the server.
|
||||
*/
|
||||
INIT_CAP;
|
||||
|
||||
caps = 0;
|
||||
|
||||
/*
|
||||
* We need to be able to bind() to privileged ports, notably port 53!
|
||||
*/
|
||||
SET_CAP(CAP_NET_BIND_SERVICE);
|
||||
caps |= (1 << CAP_NET_BIND_SERVICE);
|
||||
|
||||
/*
|
||||
* We need chroot() initially too.
|
||||
*/
|
||||
SET_CAP(CAP_SYS_CHROOT);
|
||||
caps |= (1 << CAP_SYS_CHROOT);
|
||||
|
||||
#if defined(HAVE_SYS_PRCTL_H) || !defined(HAVE_LINUXTHREADS)
|
||||
/*
|
||||
@@ -252,19 +203,19 @@ linux_initialprivs(void) {
|
||||
* tried) or we're not using threads. If either of these is
|
||||
* true, we want the setuid capability.
|
||||
*/
|
||||
SET_CAP(CAP_SETUID);
|
||||
caps |= (1 << CAP_SETUID);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Since we call initgroups, we need this.
|
||||
*/
|
||||
SET_CAP(CAP_SETGID);
|
||||
caps |= (1 << CAP_SETGID);
|
||||
|
||||
/*
|
||||
* Without this, we run into problems reading a configuration file
|
||||
* owned by a non-root user and non-world-readable on startup.
|
||||
*/
|
||||
SET_CAP(CAP_DAC_READ_SEARCH);
|
||||
caps |= (1 << CAP_DAC_READ_SEARCH);
|
||||
|
||||
/*
|
||||
* XXX We might want to add CAP_SYS_RESOURCE, though it's not
|
||||
@@ -273,21 +224,15 @@ linux_initialprivs(void) {
|
||||
* of files, the stack size, data size, and core dump size to
|
||||
* support named.conf options, this is now being added to test.
|
||||
*/
|
||||
SET_CAP(CAP_SYS_RESOURCE);
|
||||
caps |= (1 << CAP_SYS_RESOURCE);
|
||||
|
||||
linux_setcaps(caps);
|
||||
}
|
||||
|
||||
static void
|
||||
linux_minprivs(void) {
|
||||
cap_t caps;
|
||||
#ifdef HAVE_LIBCAP
|
||||
cap_value_t capval;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
int err;
|
||||
#endif
|
||||
unsigned int caps;
|
||||
|
||||
INIT_CAP;
|
||||
/*%
|
||||
* Drop all privileges except the ability to bind() to privileged
|
||||
* ports.
|
||||
@@ -296,7 +241,8 @@ linux_minprivs(void) {
|
||||
* chroot() could be used to escape from the chrooted area.
|
||||
*/
|
||||
|
||||
SET_CAP(CAP_NET_BIND_SERVICE);
|
||||
caps = 0;
|
||||
caps |= (1 << CAP_NET_BIND_SERVICE);
|
||||
|
||||
/*
|
||||
* XXX We might want to add CAP_SYS_RESOURCE, though it's not
|
||||
@@ -305,7 +251,7 @@ linux_minprivs(void) {
|
||||
* of files, the stack size, data size, and core dump size to
|
||||
* support named.conf options, this is now being added to test.
|
||||
*/
|
||||
SET_CAP(CAP_SYS_RESOURCE);
|
||||
caps |= (1 << CAP_SYS_RESOURCE);
|
||||
|
||||
linux_setcaps(caps);
|
||||
}
|
||||
@@ -380,7 +326,7 @@ ns_os_daemonize(void) {
|
||||
/*
|
||||
* Wait for the child to finish loading for the first time.
|
||||
* This would be so much simpler if fork() worked once we
|
||||
* were multi-threaded.
|
||||
* were multi-threaded.
|
||||
*/
|
||||
(void)close(dfd[1]);
|
||||
do {
|
||||
@@ -550,19 +496,15 @@ ns_os_changeuser(void) {
|
||||
ns_main_earlyfatal("setuid(): %s", strbuf);
|
||||
}
|
||||
|
||||
#if defined(HAVE_LINUX_CAPABILITY_H) && !defined(HAVE_LINUXTHREADS)
|
||||
linux_minprivs();
|
||||
#endif
|
||||
#if defined(HAVE_SYS_PRCTL_H) && defined(PR_SET_DUMPABLE)
|
||||
/*
|
||||
* Restore the ability of named to drop core after the setuid()
|
||||
* call has disabled it.
|
||||
*/
|
||||
if (prctl(PR_SET_DUMPABLE,1,0,0,0) < 0) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
ns_main_earlywarning("prctl(PR_SET_DUMPABLE) failed: %s",
|
||||
strbuf);
|
||||
}
|
||||
#endif
|
||||
#if defined(HAVE_LINUX_CAPABILITY_H) && !defined(HAVE_LINUXTHREADS)
|
||||
linux_minprivs();
|
||||
prctl(PR_SET_DUMPABLE,1,0,0,0);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -723,7 +665,7 @@ ns_os_shutdownmsg(char *command, isc_buffer_t *text) {
|
||||
ptr = next_token(&input, " \t");
|
||||
if (ptr == NULL)
|
||||
return;
|
||||
|
||||
|
||||
if (strcmp(ptr, "-p") != 0)
|
||||
return;
|
||||
|
||||
|
||||
+46
-122
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: update.c,v 1.138.2.4 2008/04/03 06:10:19 marka Exp $ */
|
||||
/* $Id: update.c,v 1.137 2007/08/28 00:05:06 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -41,14 +41,12 @@
|
||||
#include <dns/rdatatype.h>
|
||||
#include <dns/soa.h>
|
||||
#include <dns/ssu.h>
|
||||
#include <dns/stats.h>
|
||||
#include <dns/view.h>
|
||||
#include <dns/zone.h>
|
||||
#include <dns/zt.h>
|
||||
|
||||
#include <named/client.h>
|
||||
#include <named/log.h>
|
||||
#include <named/server.h>
|
||||
#include <named/update.h>
|
||||
|
||||
/*! \file
|
||||
@@ -119,11 +117,6 @@
|
||||
msg, isc_result_totext(result)); \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
#define PREREQFAILC(code, msg) \
|
||||
do { \
|
||||
inc_stats(zone, dns_nsstatscounter_updatebadprereq); \
|
||||
FAILC(code, msg); \
|
||||
} while (0)
|
||||
|
||||
#define FAILN(code, name, msg) \
|
||||
do { \
|
||||
@@ -145,11 +138,6 @@
|
||||
} \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
#define PREREQFAILN(code, name, msg) \
|
||||
do { \
|
||||
inc_stats(zone, dns_nsstatscounter_updatebadprereq); \
|
||||
FAILN(code, name, msg); \
|
||||
} while (0)
|
||||
|
||||
#define FAILNT(code, name, type, msg) \
|
||||
do { \
|
||||
@@ -174,12 +162,6 @@
|
||||
} \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
#define PREREQFAILNT(code, name, type, msg) \
|
||||
do { \
|
||||
inc_stats(zone, dns_nsstatscounter_updatebadprereq); \
|
||||
FAILNT(code, name, type, msg); \
|
||||
} while (0)
|
||||
|
||||
/*%
|
||||
* Fail unconditionally and log as a server error.
|
||||
* The test against ISC_R_SUCCESS is there to keep the Solaris compiler
|
||||
@@ -258,20 +240,6 @@ update_log(ns_client_t *client, dns_zone_t *zone,
|
||||
namebuf, classbuf, message);
|
||||
}
|
||||
|
||||
/*%
|
||||
* Increment updated-related statistics counters.
|
||||
*/
|
||||
static inline void
|
||||
inc_stats(dns_zone_t *zone, dns_statscounter_t counter) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats, counter);
|
||||
|
||||
if (zone != NULL) {
|
||||
dns_stats_t *zonestats = dns_zone_getrequeststats(zone);
|
||||
if (zonestats != NULL)
|
||||
dns_generalstats_increment(zonestats, counter);
|
||||
}
|
||||
}
|
||||
|
||||
/*%
|
||||
* Override the default acl logging when checking whether a client
|
||||
* can update the zone or whether we can forward the request to the
|
||||
@@ -458,7 +426,7 @@ foreach_node_rr_action(void *data, dns_rdataset_t *rdataset) {
|
||||
result = dns_rdataset_next(rdataset))
|
||||
{
|
||||
rr_t rr = { 0, DNS_RDATA_INIT };
|
||||
|
||||
|
||||
dns_rdataset_current(rdataset, &rr.rdata);
|
||||
rr.ttl = rdataset->ttl;
|
||||
result = (*ctx->rr_action)(ctx->rr_action_data, &rr);
|
||||
@@ -889,14 +857,10 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db,
|
||||
/* A new unique name begins here. */
|
||||
node = NULL;
|
||||
result = dns_db_findnode(db, name, ISC_FALSE, &node);
|
||||
if (result == ISC_R_NOTFOUND) {
|
||||
dns_diff_clear(&trash);
|
||||
if (result == ISC_R_NOTFOUND)
|
||||
return (DNS_R_NXRRSET);
|
||||
}
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_diff_clear(&trash);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
}
|
||||
|
||||
/* A new unique type begins here. */
|
||||
while (t != NULL && dns_name_equal(&t->name, name)) {
|
||||
@@ -924,7 +888,6 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db,
|
||||
&rdataset, NULL);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_db_detachnode(db, &node);
|
||||
dns_diff_clear(&trash);
|
||||
return (DNS_R_NXRRSET);
|
||||
}
|
||||
|
||||
@@ -1165,7 +1128,7 @@ typedef struct {
|
||||
|
||||
static isc_result_t
|
||||
add_rr_prepare_action(void *data, rr_t *rr) {
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
add_rr_prepare_ctx_t *ctx = data;
|
||||
dns_difftuple_t *tuple = NULL;
|
||||
isc_boolean_t equal;
|
||||
@@ -1685,11 +1648,10 @@ ksk_sanity(dns_db_t *db, dns_dbversion_t *ver) {
|
||||
* Add RRSIG records for an RRset, recording the change in "diff".
|
||||
*/
|
||||
static isc_result_t
|
||||
add_sigs(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
dns_dbversion_t *ver, dns_name_t *name, dns_rdatatype_t type,
|
||||
dns_diff_t *diff, dst_key_t **keys, unsigned int nkeys,
|
||||
isc_mem_t *mctx, isc_stdtime_t inception, isc_stdtime_t expire,
|
||||
isc_boolean_t check_ksk)
|
||||
add_sigs(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
|
||||
dns_rdatatype_t type, dns_diff_t *diff, dst_key_t **keys,
|
||||
unsigned int nkeys, isc_mem_t *mctx, isc_stdtime_t inception,
|
||||
isc_stdtime_t expire, isc_boolean_t check_ksk)
|
||||
{
|
||||
isc_result_t result;
|
||||
dns_dbnode_t *node = NULL;
|
||||
@@ -1698,7 +1660,6 @@ add_sigs(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
isc_buffer_t buffer;
|
||||
unsigned char data[1024]; /* XXX */
|
||||
unsigned int i;
|
||||
isc_boolean_t added_sig = ISC_FALSE;
|
||||
|
||||
dns_rdataset_init(&rdataset);
|
||||
isc_buffer_init(&buffer, data, sizeof(data));
|
||||
@@ -1710,14 +1671,14 @@ add_sigs(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
dns_db_detachnode(db, &node);
|
||||
|
||||
for (i = 0; i < nkeys; i++) {
|
||||
|
||||
|
||||
if (check_ksk && type != dns_rdatatype_dnskey &&
|
||||
(dst_key_flags(keys[i]) & DNS_KEYFLAG_KSK) != 0)
|
||||
continue;
|
||||
|
||||
if (!dst_key_isprivate(keys[i]))
|
||||
continue;
|
||||
|
||||
|
||||
/* Calculate the signature, creating a RRSIG RDATA. */
|
||||
CHECK(dns_dnssec_sign(name, &rdataset, keys[i],
|
||||
&inception, &expire,
|
||||
@@ -1728,13 +1689,6 @@ add_sigs(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
CHECK(update_one_rr(db, ver, diff, DNS_DIFFOP_ADD, name,
|
||||
rdataset.ttl, &sig_rdata));
|
||||
dns_rdata_reset(&sig_rdata);
|
||||
added_sig = ISC_TRUE;
|
||||
}
|
||||
if (!added_sig) {
|
||||
update_log(client, zone, ISC_LOG_ERROR,
|
||||
"found no private keys, "
|
||||
"unable to generate any signatures");
|
||||
result = ISC_R_NOTFOUND;
|
||||
}
|
||||
|
||||
failure:
|
||||
@@ -1866,9 +1820,9 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
*/
|
||||
CHECK(rrset_exists(db, newver, name, type, 0, &flag));
|
||||
if (flag) {
|
||||
CHECK(add_sigs(client, zone, db, newver, name,
|
||||
type, &sig_diff, zone_keys,
|
||||
nkeys, client->mctx, inception,
|
||||
CHECK(add_sigs(db, newver, name, type,
|
||||
&sig_diff, zone_keys, nkeys,
|
||||
client->mctx, inception,
|
||||
expire, check_ksk));
|
||||
}
|
||||
skip:
|
||||
@@ -2052,10 +2006,10 @@ update_signatures(ns_client_t *client, dns_zone_t *zone, dns_db_t *db,
|
||||
dns_rdatatype_rrsig, dns_rdatatype_nsec,
|
||||
NULL, &sig_diff));
|
||||
} else if (t->op == DNS_DIFFOP_ADD) {
|
||||
CHECK(add_sigs(client, zone, db, newver, &t->name,
|
||||
dns_rdatatype_nsec, &sig_diff,
|
||||
zone_keys, nkeys, client->mctx,
|
||||
inception, expire, check_ksk));
|
||||
CHECK(add_sigs(db, newver, &t->name, dns_rdatatype_nsec,
|
||||
&sig_diff, zone_keys, nkeys,
|
||||
client->mctx, inception, expire,
|
||||
check_ksk));
|
||||
} else {
|
||||
INSIST(0);
|
||||
}
|
||||
@@ -2208,10 +2162,6 @@ ns_update_start(ns_client_t *client, isc_result_t sigresult) {
|
||||
return;
|
||||
|
||||
failure:
|
||||
if (result == DNS_R_REFUSED) {
|
||||
INSIST(dns_zone_gettype(zone) == dns_zone_slave);
|
||||
inc_stats(zone, dns_nsstatscounter_updaterej);
|
||||
}
|
||||
/*
|
||||
* We failed without having sent an update event to the zone.
|
||||
* We are still in the client task context, so we can
|
||||
@@ -2322,7 +2272,7 @@ check_mx(ns_client_t *client, dns_zone_t *zone,
|
||||
ownerbuf, namebuf,
|
||||
dns_result_totext(DNS_R_MXISADDRESS));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Check zone integrity checks.
|
||||
*/
|
||||
@@ -2416,59 +2366,54 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
&name, &rdata, &covers, &ttl, &update_class);
|
||||
|
||||
if (ttl != 0)
|
||||
PREREQFAILC(DNS_R_FORMERR,
|
||||
"prerequisite TTL is not zero");
|
||||
FAILC(DNS_R_FORMERR, "prerequisite TTL is not zero");
|
||||
|
||||
if (! dns_name_issubdomain(name, zonename))
|
||||
PREREQFAILN(DNS_R_NOTZONE, name,
|
||||
"prerequisite name is out of zone");
|
||||
FAILN(DNS_R_NOTZONE, name,
|
||||
"prerequisite name is out of zone");
|
||||
|
||||
if (update_class == dns_rdataclass_any) {
|
||||
if (rdata.length != 0)
|
||||
PREREQFAILC(DNS_R_FORMERR,
|
||||
FAILC(DNS_R_FORMERR,
|
||||
"class ANY prerequisite "
|
||||
"RDATA is not empty");
|
||||
if (rdata.type == dns_rdatatype_any) {
|
||||
CHECK(name_exists(db, ver, name, &flag));
|
||||
if (! flag) {
|
||||
PREREQFAILN(DNS_R_NXDOMAIN, name,
|
||||
"'name in use' "
|
||||
"prerequisite not "
|
||||
"satisfied");
|
||||
FAILN(DNS_R_NXDOMAIN, name,
|
||||
"'name in use' prerequisite "
|
||||
"not satisfied");
|
||||
}
|
||||
} else {
|
||||
CHECK(rrset_exists(db, ver, name,
|
||||
rdata.type, covers, &flag));
|
||||
if (! flag) {
|
||||
/* RRset does not exist. */
|
||||
PREREQFAILNT(DNS_R_NXRRSET, name, rdata.type,
|
||||
FAILNT(DNS_R_NXRRSET, name, rdata.type,
|
||||
"'rrset exists (value independent)' "
|
||||
"prerequisite not satisfied");
|
||||
}
|
||||
}
|
||||
} else if (update_class == dns_rdataclass_none) {
|
||||
if (rdata.length != 0)
|
||||
PREREQFAILC(DNS_R_FORMERR,
|
||||
"class NONE prerequisite "
|
||||
"RDATA is not empty");
|
||||
FAILC(DNS_R_FORMERR,
|
||||
"class NONE prerequisite "
|
||||
"RDATA is not empty");
|
||||
if (rdata.type == dns_rdatatype_any) {
|
||||
CHECK(name_exists(db, ver, name, &flag));
|
||||
if (flag) {
|
||||
PREREQFAILN(DNS_R_YXDOMAIN, name,
|
||||
"'name not in use' "
|
||||
"prerequisite not "
|
||||
"satisfied");
|
||||
FAILN(DNS_R_YXDOMAIN, name,
|
||||
"'name not in use' prerequisite "
|
||||
"not satisfied");
|
||||
}
|
||||
} else {
|
||||
CHECK(rrset_exists(db, ver, name,
|
||||
rdata.type, covers, &flag));
|
||||
if (flag) {
|
||||
/* RRset exists. */
|
||||
PREREQFAILNT(DNS_R_YXRRSET, name,
|
||||
rdata.type,
|
||||
"'rrset does not exist' "
|
||||
"prerequisite not "
|
||||
"satisfied");
|
||||
FAILNT(DNS_R_YXRRSET, name, rdata.type,
|
||||
"'rrset does not exist' "
|
||||
"prerequisite not satisfied");
|
||||
}
|
||||
}
|
||||
} else if (update_class == zoneclass) {
|
||||
@@ -2481,7 +2426,7 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
FAIL(ISC_R_UNEXPECTED);
|
||||
}
|
||||
} else {
|
||||
PREREQFAILC(DNS_R_FORMERR, "malformed prerequisite");
|
||||
FAILC(DNS_R_FORMERR, "malformed prerequisite");
|
||||
}
|
||||
}
|
||||
if (result != ISC_R_NOMORE)
|
||||
@@ -2527,10 +2472,10 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
else if (client->signer == NULL)
|
||||
CHECK(checkupdateacl(client, NULL, "update", zonename,
|
||||
ISC_FALSE, ISC_TRUE));
|
||||
|
||||
|
||||
if (dns_zone_getupdatedisabled(zone))
|
||||
FAILC(DNS_R_REFUSED, "dynamic update temporarily disabled "
|
||||
"because the zone is frozen. Use "
|
||||
"because the zone is frozen. Use "
|
||||
"'rndc thaw' to re-enable updates.");
|
||||
|
||||
/*
|
||||
@@ -2930,14 +2875,11 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
goto common;
|
||||
|
||||
failure:
|
||||
if (result == DNS_R_REFUSED)
|
||||
inc_stats(zone, dns_nsstatscounter_updaterej);
|
||||
|
||||
/*
|
||||
* The reason for failure should have been logged at this point.
|
||||
*/
|
||||
if (ver != NULL) {
|
||||
update_log(client, zone, LOGLEVEL_DEBUG,
|
||||
update_log(client, zone, LOGLEVEL_DEBUG,
|
||||
"rolling back");
|
||||
dns_db_closeversion(db, &ver, ISC_FALSE);
|
||||
}
|
||||
@@ -2955,10 +2897,11 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
||||
if (ssutable != NULL)
|
||||
dns_ssutable_detach(&ssutable);
|
||||
|
||||
if (zone != NULL)
|
||||
dns_zone_detach(&zone);
|
||||
|
||||
isc_task_detach(&task);
|
||||
uev->result = result;
|
||||
if (zone != NULL)
|
||||
INSIST(uev->zone == zone); /* we use this later */
|
||||
uev->ev_type = DNS_EVENT_UPDATEDONE;
|
||||
uev->ev_action = updatedone_action;
|
||||
isc_task_send(client->task, &event);
|
||||
@@ -2976,19 +2919,6 @@ updatedone_action(isc_task_t *task, isc_event_t *event) {
|
||||
INSIST(task == client->task);
|
||||
|
||||
INSIST(client->nupdates > 0);
|
||||
switch (uev->result) {
|
||||
case ISC_R_SUCCESS:
|
||||
inc_stats(uev->zone, dns_nsstatscounter_updatedone);
|
||||
break;
|
||||
case DNS_R_REFUSED:
|
||||
inc_stats(uev->zone, dns_nsstatscounter_updaterej);
|
||||
break;
|
||||
default:
|
||||
inc_stats(uev->zone, dns_nsstatscounter_updatefail);
|
||||
break;
|
||||
}
|
||||
if (uev->zone != NULL)
|
||||
dns_zone_detach(&uev->zone);
|
||||
client->nupdates--;
|
||||
respond(client, uev->result);
|
||||
isc_event_free(&event);
|
||||
@@ -3017,21 +2947,17 @@ static void
|
||||
forward_callback(void *arg, isc_result_t result, dns_message_t *answer) {
|
||||
update_event_t *uev = arg;
|
||||
ns_client_t *client = uev->ev_arg;
|
||||
dns_zone_t *zone = uev->zone;
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
INSIST(answer == NULL);
|
||||
uev->ev_type = DNS_EVENT_UPDATEDONE;
|
||||
uev->ev_action = forward_fail;
|
||||
inc_stats(zone, dns_nsstatscounter_updatefwdfail);
|
||||
} else {
|
||||
uev->ev_type = DNS_EVENT_UPDATEDONE;
|
||||
uev->ev_action = forward_done;
|
||||
uev->answer = answer;
|
||||
inc_stats(zone, dns_nsstatscounter_updaterespfwd);
|
||||
}
|
||||
isc_task_send(client->task, ISC_EVENT_PTR(&uev));
|
||||
dns_zone_detach(&zone);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -3062,10 +2988,8 @@ forward_action(isc_task_t *task, isc_event_t *event) {
|
||||
uev->ev_type = DNS_EVENT_UPDATEDONE;
|
||||
uev->ev_action = forward_fail;
|
||||
isc_task_send(client->task, &event);
|
||||
inc_stats(zone, dns_nsstatscounter_updatefwdfail);
|
||||
dns_zone_detach(&zone);
|
||||
} else
|
||||
inc_stats(zone, dns_nsstatscounter_updatereqfwd);
|
||||
}
|
||||
dns_zone_detach(&zone);
|
||||
isc_task_detach(&task);
|
||||
}
|
||||
|
||||
|
||||
@@ -188,10 +188,6 @@ SOURCE=..\sortlist.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\statschannel.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\tkeyconf.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
@@ -292,10 +288,6 @@ SOURCE=..\include\named\sortlist.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\named\statschannel.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\include\named\tkeyconf.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
@@ -148,7 +148,6 @@ CLEAN :
|
||||
-@erase "$(INTDIR)\query.obj"
|
||||
-@erase "$(INTDIR)\server.obj"
|
||||
-@erase "$(INTDIR)\sortlist.obj"
|
||||
-@erase "$(INTDIR)\statschannel.obj"
|
||||
-@erase "$(INTDIR)\tkeyconf.obj"
|
||||
-@erase "$(INTDIR)\tsigconf.obj"
|
||||
-@erase "$(INTDIR)\update.obj"
|
||||
@@ -193,7 +192,6 @@ LINK32_OBJS= \
|
||||
"$(INTDIR)\query.obj" \
|
||||
"$(INTDIR)\server.obj" \
|
||||
"$(INTDIR)\sortlist.obj" \
|
||||
"$(INTDIR)\statschannel.obj" \
|
||||
"$(INTDIR)\tkeyconf.obj" \
|
||||
"$(INTDIR)\tsigconf.obj" \
|
||||
"$(INTDIR)\update.obj" \
|
||||
@@ -286,8 +284,6 @@ CLEAN :
|
||||
-@erase "$(INTDIR)\server.sbr"
|
||||
-@erase "$(INTDIR)\sortlist.obj"
|
||||
-@erase "$(INTDIR)\sortlist.sbr"
|
||||
-@erase "$(INTDIR)\statschannel.obj"
|
||||
-@erase "$(INTDIR)\statschannel.sbr"
|
||||
-@erase "$(INTDIR)\tkeyconf.obj"
|
||||
-@erase "$(INTDIR)\tkeyconf.sbr"
|
||||
-@erase "$(INTDIR)\tsigconf.obj"
|
||||
@@ -338,7 +334,6 @@ BSC32_SBRS= \
|
||||
"$(INTDIR)\query.sbr" \
|
||||
"$(INTDIR)\server.sbr" \
|
||||
"$(INTDIR)\sortlist.sbr" \
|
||||
"$(INTDIR)\statschannel.sbr" \
|
||||
"$(INTDIR)\tkeyconf.sbr" \
|
||||
"$(INTDIR)\tsigconf.sbr" \
|
||||
"$(INTDIR)\update.sbr" \
|
||||
@@ -378,7 +373,6 @@ LINK32_OBJS= \
|
||||
"$(INTDIR)\query.obj" \
|
||||
"$(INTDIR)\server.obj" \
|
||||
"$(INTDIR)\sortlist.obj" \
|
||||
"$(INTDIR)\statschannel.obj" \
|
||||
"$(INTDIR)\tkeyconf.obj" \
|
||||
"$(INTDIR)\tsigconf.obj" \
|
||||
"$(INTDIR)\update.obj" \
|
||||
@@ -885,24 +879,6 @@ SOURCE=..\sortlist.c
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\statschannel.c
|
||||
|
||||
!IF "$(CFG)" == "named - Win32 Release"
|
||||
|
||||
|
||||
"$(INTDIR)\statschannel.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "named - Win32 Debug"
|
||||
|
||||
|
||||
"$(INTDIR)\statschannel.obj" "$(INTDIR)\statschannel.sbr" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) $(CPP_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=..\tkeyconf.c
|
||||
|
||||
+5
-15
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: os.c,v 1.25.128.3 2008/01/17 23:46:36 tbox Exp $ */
|
||||
/* $Id: os.c,v 1.25 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
#include <stdarg.h>
|
||||
@@ -51,7 +51,7 @@ static int devnullfd = -1;
|
||||
|
||||
static BOOL Initialized = FALSE;
|
||||
|
||||
static char *version_error =
|
||||
static char *version_error =
|
||||
"named requires Windows 2000 Service Pack 2 or later to run correctly";
|
||||
|
||||
void
|
||||
@@ -83,7 +83,7 @@ version_check(const char *progname) {
|
||||
if(isc_win32os_versioncheck(5, 0, 2, 0) < 0)
|
||||
if (ntservice_isservice())
|
||||
NTReportError(progname, version_error);
|
||||
else
|
||||
else
|
||||
fprintf(stderr, "%s\n", version_error);
|
||||
}
|
||||
|
||||
@@ -103,16 +103,7 @@ void
|
||||
ns_os_init(const char *progname) {
|
||||
ns_paths_init();
|
||||
setup_syslog(progname);
|
||||
/*
|
||||
* XXXMPA. We may need to split ntservice_init() in two and
|
||||
* just mark as running in ns_os_started(). If we do that
|
||||
* this is where the first part of ntservice_init() should be
|
||||
* called from.
|
||||
*
|
||||
* XXX970 Remove comment if no problems by 9.7.0.
|
||||
*
|
||||
* ntservice_init();
|
||||
*/
|
||||
ntservice_init();
|
||||
version_check(progname);
|
||||
}
|
||||
|
||||
@@ -294,5 +285,4 @@ ns_os_tzset(void) {
|
||||
|
||||
void
|
||||
ns_os_started(void) {
|
||||
ntservice_init();
|
||||
}
|
||||
|
||||
+33
-54
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: xfrout.c,v 1.126.128.2 2008/04/03 06:20:33 tbox Exp $ */
|
||||
/* $Id: xfrout.c,v 1.126 2007/06/18 23:47:19 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
#include <dns/rdatasetiter.h>
|
||||
#include <dns/result.h>
|
||||
#include <dns/soa.h>
|
||||
#include <dns/stats.h>
|
||||
#include <dns/timer.h>
|
||||
#include <dns/tsig.h>
|
||||
#include <dns/view.h>
|
||||
@@ -52,7 +51,7 @@
|
||||
#include <named/server.h>
|
||||
#include <named/xfrout.h>
|
||||
|
||||
/*! \file
|
||||
/*! \file
|
||||
* \brief
|
||||
* Outgoing AXFR and IXFR.
|
||||
*/
|
||||
@@ -87,7 +86,7 @@
|
||||
ns_client_log(client, DNS_LOGCATEGORY_XFER_OUT, \
|
||||
NS_LOGMODULE_XFER_OUT, ISC_LOG_INFO, \
|
||||
"bad zone transfer request: %s (%s)", \
|
||||
msg, isc_result_totext(code)); \
|
||||
msg, isc_result_totext(code)); \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
|
||||
@@ -101,12 +100,12 @@
|
||||
ns_client_log(client, DNS_LOGCATEGORY_XFER_OUT, \
|
||||
NS_LOGMODULE_XFER_OUT, ISC_LOG_INFO, \
|
||||
"bad zone transfer request: '%s/%s': %s (%s)", \
|
||||
_buf1, _buf2, msg, isc_result_totext(code)); \
|
||||
_buf1, _buf2, msg, isc_result_totext(code)); \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
|
||||
#define CHECK(op) \
|
||||
do { result = (op); \
|
||||
do { result = (op); \
|
||||
if (result != ISC_R_SUCCESS) goto failure; \
|
||||
} while (0)
|
||||
|
||||
@@ -122,12 +121,12 @@ typedef struct db_rr_iterator db_rr_iterator_t;
|
||||
struct db_rr_iterator {
|
||||
isc_result_t result;
|
||||
dns_db_t *db;
|
||||
dns_dbiterator_t *dbit;
|
||||
dns_dbiterator_t *dbit;
|
||||
dns_dbversion_t *ver;
|
||||
isc_stdtime_t now;
|
||||
dns_dbnode_t *node;
|
||||
dns_fixedname_t fixedname;
|
||||
dns_rdatasetiter_t *rdatasetit;
|
||||
dns_rdatasetiter_t *rdatasetit;
|
||||
dns_rdataset_t rdataset;
|
||||
dns_rdata_t rdata;
|
||||
};
|
||||
@@ -149,16 +148,6 @@ db_rr_iterator_current(db_rr_iterator_t *it, dns_name_t **name,
|
||||
static void
|
||||
db_rr_iterator_destroy(db_rr_iterator_t *it);
|
||||
|
||||
static inline void
|
||||
inc_stats(dns_zone_t *zone, dns_statscounter_t counter) {
|
||||
dns_generalstats_increment(ns_g_server->nsstats, counter);
|
||||
if (zone != NULL) {
|
||||
dns_stats_t *zonestats = dns_zone_getrequeststats(zone);
|
||||
if (zonestats != NULL)
|
||||
dns_generalstats_increment(zonestats, counter);
|
||||
}
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
db_rr_iterator_init(db_rr_iterator_t *it, dns_db_t *db, dns_dbversion_t *ver,
|
||||
isc_stdtime_t now)
|
||||
@@ -337,7 +326,7 @@ log_rr(dns_name_t *name, dns_rdata_t *rdata, isc_uint32_t ttl) {
|
||||
INSIST(buf.used >= 1 &&
|
||||
((char *) buf.base)[buf.used - 1] == '\n');
|
||||
buf.used--;
|
||||
|
||||
|
||||
isc_log_write(XFROUT_RR_LOGARGS, "%.*s",
|
||||
(int)isc_buffer_usedlength(&buf),
|
||||
(char *)isc_buffer_base(&buf));
|
||||
@@ -829,7 +818,6 @@ typedef struct {
|
||||
dns_name_t *qname; /* Question name of request */
|
||||
dns_rdatatype_t qtype; /* dns_rdatatype_{a,i}xfr */
|
||||
dns_rdataclass_t qclass;
|
||||
dns_zone_t *zone; /* (necessary for stats) */
|
||||
dns_db_t *db;
|
||||
dns_dbversion_t *ver;
|
||||
isc_quota_t *quota;
|
||||
@@ -853,7 +841,7 @@ typedef struct {
|
||||
static isc_result_t
|
||||
xfrout_ctx_create(isc_mem_t *mctx, ns_client_t *client,
|
||||
unsigned int id, dns_name_t *qname, dns_rdatatype_t qtype,
|
||||
dns_rdataclass_t qclass, dns_zone_t *zone,
|
||||
dns_rdataclass_t qclass,
|
||||
dns_db_t *db, dns_dbversion_t *ver, isc_quota_t *quota,
|
||||
rrstream_t *stream, dns_tsigkey_t *tsigkey,
|
||||
isc_buffer_t *lasttsig,
|
||||
@@ -981,7 +969,7 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
/*
|
||||
* Normal zone table does not have a match. Try the DLZ database
|
||||
*/
|
||||
if (client->view->dlzdatabase != NULL) {
|
||||
if (client->view->dlzdatabase != NULL) {
|
||||
result = dns_dlzallowzonexfr(client->view,
|
||||
question_name, &client->peeraddr,
|
||||
&db);
|
||||
@@ -1018,7 +1006,7 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
|
||||
} else {
|
||||
/*
|
||||
* not DLZ and not in normal zone table, we are
|
||||
* not DLZ and not in normal zone table, we are
|
||||
* not authoritative
|
||||
*/
|
||||
FAILQ(DNS_R_NOTAUTH, "non-authoritative zone",
|
||||
@@ -1222,28 +1210,26 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
|
||||
#ifdef DLZ
|
||||
if (is_dlz)
|
||||
CHECK(xfrout_ctx_create(mctx, client, request->id, question_name,
|
||||
reqtype, question_class, zone, db, ver,
|
||||
quota, stream,
|
||||
dns_message_gettsigkey(request),
|
||||
tsigbuf,
|
||||
3600,
|
||||
3600,
|
||||
(format == dns_many_answers) ?
|
||||
ISC_TRUE : ISC_FALSE,
|
||||
&xfr));
|
||||
else
|
||||
CHECK(xfrout_ctx_create(mctx, client, request->id, question_name,
|
||||
reqtype, question_class, db, ver, quota,
|
||||
stream, dns_message_gettsigkey(request),
|
||||
tsigbuf,
|
||||
3600,
|
||||
3600,
|
||||
(format == dns_many_answers) ?
|
||||
ISC_TRUE : ISC_FALSE,
|
||||
&xfr));
|
||||
else
|
||||
#endif
|
||||
CHECK(xfrout_ctx_create(mctx, client, request->id, question_name,
|
||||
reqtype, question_class, zone, db, ver,
|
||||
quota, stream,
|
||||
dns_message_gettsigkey(request),
|
||||
tsigbuf,
|
||||
dns_zone_getmaxxfrout(zone),
|
||||
dns_zone_getidleout(zone),
|
||||
(format == dns_many_answers) ?
|
||||
ISC_TRUE : ISC_FALSE,
|
||||
&xfr));
|
||||
CHECK(xfrout_ctx_create(mctx, client, request->id, question_name,
|
||||
reqtype, question_class, db, ver, quota,
|
||||
stream, dns_message_gettsigkey(request),
|
||||
tsigbuf,
|
||||
dns_zone_getmaxxfrout(zone),
|
||||
dns_zone_getidleout(zone),
|
||||
(format == dns_many_answers) ?
|
||||
ISC_TRUE : ISC_FALSE,
|
||||
&xfr));
|
||||
|
||||
xfr->mnemonic = mnemonic;
|
||||
stream = NULL;
|
||||
@@ -1275,8 +1261,6 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
result = ISC_R_SUCCESS;
|
||||
|
||||
failure:
|
||||
if (result == DNS_R_REFUSED)
|
||||
inc_stats(zone, dns_nsstatscounter_xfrrej);
|
||||
if (quota != NULL)
|
||||
isc_quota_detach("a);
|
||||
if (current_soa_tuple != NULL)
|
||||
@@ -1307,7 +1291,7 @@ ns_xfr_start(ns_client_t *client, dns_rdatatype_t reqtype) {
|
||||
static isc_result_t
|
||||
xfrout_ctx_create(isc_mem_t *mctx, ns_client_t *client, unsigned int id,
|
||||
dns_name_t *qname, dns_rdatatype_t qtype,
|
||||
dns_rdataclass_t qclass, dns_zone_t *zone,
|
||||
dns_rdataclass_t qclass,
|
||||
dns_db_t *db, dns_dbversion_t *ver, isc_quota_t *quota,
|
||||
rrstream_t *stream, dns_tsigkey_t *tsigkey,
|
||||
isc_buffer_t *lasttsig, unsigned int maxtime,
|
||||
@@ -1330,10 +1314,8 @@ xfrout_ctx_create(isc_mem_t *mctx, ns_client_t *client, unsigned int id,
|
||||
xfr->qname = qname;
|
||||
xfr->qtype = qtype;
|
||||
xfr->qclass = qclass;
|
||||
xfr->zone = NULL;
|
||||
xfr->db = NULL;
|
||||
xfr->ver = NULL;
|
||||
dns_zone_attach(zone, &xfr->zone);
|
||||
dns_db_attach(db, &xfr->db);
|
||||
dns_db_attachversion(db, ver, &xfr->ver);
|
||||
xfr->end_of_stream = ISC_FALSE;
|
||||
@@ -1681,7 +1663,7 @@ sendstream(xfrout_ctx_t *xfr) {
|
||||
* iterators before returning from the event handler.
|
||||
*/
|
||||
xfr->stream->methods->pause(xfr->stream);
|
||||
|
||||
|
||||
if (result == ISC_R_SUCCESS)
|
||||
return;
|
||||
|
||||
@@ -1709,8 +1691,6 @@ xfrout_ctx_destroy(xfrout_ctx_t **xfrp) {
|
||||
isc_quota_detach(&xfr->quota);
|
||||
if (xfr->ver != NULL)
|
||||
dns_db_closeversion(xfr->db, &xfr->ver, ISC_FALSE);
|
||||
if (xfr->zone != NULL)
|
||||
dns_zone_detach(&xfr->zone);
|
||||
if (xfr->db != NULL)
|
||||
dns_db_detach(&xfr->db);
|
||||
|
||||
@@ -1744,7 +1724,6 @@ xfrout_senddone(isc_task_t *task, isc_event_t *event) {
|
||||
sendstream(xfr);
|
||||
} else {
|
||||
/* End of zone transfer stream. */
|
||||
inc_stats(xfr->zone, dns_nsstatscounter_xfrdone);
|
||||
xfrout_log(xfr, ISC_LOG_INFO, "%s ended", xfr->mnemonic);
|
||||
ns_client_next(xfr->client, ISC_R_SUCCESS);
|
||||
xfrout_ctx_destroy(&xfr);
|
||||
|
||||
+66
-100
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: zoneconf.c,v 1.139.56.5 2008/05/29 23:46:34 tbox Exp $ */
|
||||
/* $Id: zoneconf.c,v 1.139 2007/09/18 00:22:30 marka Exp $ */
|
||||
|
||||
/*% */
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
#include <dns/name.h>
|
||||
#include <dns/rdatatype.h>
|
||||
#include <dns/ssu.h>
|
||||
#include <dns/stats.h>
|
||||
#include <dns/view.h>
|
||||
#include <dns/zone.h>
|
||||
|
||||
@@ -45,15 +44,6 @@
|
||||
#include <named/server.h>
|
||||
#include <named/zoneconf.h>
|
||||
|
||||
/* ACLs associated with zone */
|
||||
typedef enum {
|
||||
allow_notify,
|
||||
allow_query,
|
||||
allow_transfer,
|
||||
allow_update,
|
||||
allow_update_forwarding
|
||||
} acl_type_t;
|
||||
|
||||
/*%
|
||||
* These are BIND9 server defaults, not necessarily identical to the
|
||||
* library defaults defined in zone.c.
|
||||
@@ -69,69 +59,19 @@ typedef enum {
|
||||
*/
|
||||
static isc_result_t
|
||||
configure_zone_acl(const cfg_obj_t *zconfig, const cfg_obj_t *vconfig,
|
||||
const cfg_obj_t *config, acl_type_t acltype,
|
||||
cfg_aclconfctx_t *actx, dns_zone_t *zone,
|
||||
const cfg_obj_t *config, const char *aclname,
|
||||
cfg_aclconfctx_t *actx, dns_zone_t *zone,
|
||||
void (*setzacl)(dns_zone_t *, dns_acl_t *),
|
||||
void (*clearzacl)(dns_zone_t *))
|
||||
{
|
||||
isc_result_t result;
|
||||
const cfg_obj_t *maps[5] = {NULL, NULL, NULL, NULL, NULL};
|
||||
const cfg_obj_t *maps[5];
|
||||
const cfg_obj_t *aclobj = NULL;
|
||||
int i = 0;
|
||||
dns_acl_t **aclp = NULL, *acl = NULL;
|
||||
const char *aclname;
|
||||
dns_view_t *view;
|
||||
dns_acl_t *dacl = NULL;
|
||||
|
||||
view = dns_zone_getview(zone);
|
||||
|
||||
switch (acltype) {
|
||||
case allow_notify:
|
||||
if (view != NULL)
|
||||
aclp = &view->notifyacl;
|
||||
aclname = "allow-notify";
|
||||
break;
|
||||
case allow_query:
|
||||
if (view != NULL)
|
||||
aclp = &view->queryacl;
|
||||
aclname = "allow-query";
|
||||
break;
|
||||
case allow_transfer:
|
||||
if (view != NULL)
|
||||
aclp = &view->transferacl;
|
||||
aclname = "allow-transfer";
|
||||
break;
|
||||
case allow_update:
|
||||
if (view != NULL)
|
||||
aclp = &view->updateacl;
|
||||
aclname = "allow-update";
|
||||
break;
|
||||
case allow_update_forwarding:
|
||||
if (view != NULL)
|
||||
aclp = &view->upfwdacl;
|
||||
aclname = "allow-update-forwarding";
|
||||
break;
|
||||
default:
|
||||
INSIST(0);
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
|
||||
/* First check to see if ACL is defined within the zone */
|
||||
if (zconfig != NULL) {
|
||||
maps[0] = cfg_tuple_get(zconfig, "options");
|
||||
ns_config_get(maps, aclname, &aclobj);
|
||||
if (aclobj != NULL) {
|
||||
aclp = NULL;
|
||||
goto parse_acl;
|
||||
}
|
||||
}
|
||||
|
||||
/* Failing that, see if there's a default ACL already in the view */
|
||||
if (aclp != NULL && *aclp != NULL) {
|
||||
(*setzacl)(zone, *aclp);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
/* Check for default ACLs that haven't been parsed yet */
|
||||
if (zconfig != NULL)
|
||||
maps[i++] = cfg_tuple_get(zconfig, "options");
|
||||
if (vconfig != NULL)
|
||||
maps[i++] = cfg_tuple_get(vconfig, "options");
|
||||
if (config != NULL) {
|
||||
@@ -149,18 +89,12 @@ configure_zone_acl(const cfg_obj_t *zconfig, const cfg_obj_t *vconfig,
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
parse_acl:
|
||||
result = cfg_acl_fromconfig(aclobj, config, ns_g_lctx, actx,
|
||||
dns_zone_getmctx(zone), 0, &acl);
|
||||
dns_zone_getmctx(zone), 0, &dacl);
|
||||
if (result != ISC_R_SUCCESS)
|
||||
return (result);
|
||||
(*setzacl)(zone, acl);
|
||||
|
||||
/* Set the view default now */
|
||||
if (aclp != NULL)
|
||||
dns_acl_attach(acl, aclp);
|
||||
|
||||
dns_acl_detach(&acl);
|
||||
(*setzacl)(zone, dacl);
|
||||
dns_acl_detach(&dacl);
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -338,11 +272,11 @@ strtoargvsub(isc_mem_t *mctx, char *s, unsigned int *argcp,
|
||||
char ***argvp, unsigned int n)
|
||||
{
|
||||
isc_result_t result;
|
||||
|
||||
|
||||
/* Discard leading whitespace. */
|
||||
while (*s == ' ' || *s == '\t')
|
||||
s++;
|
||||
|
||||
|
||||
if (*s == '\0') {
|
||||
/* We have reached the end of the string. */
|
||||
*argcp = n;
|
||||
@@ -427,8 +361,6 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
isc_boolean_t warn = ISC_FALSE, ignore = ISC_FALSE;
|
||||
isc_boolean_t ixfrdiff;
|
||||
dns_masterformat_t masterformat;
|
||||
dns_stats_t *zoneqrystats;
|
||||
isc_boolean_t zonestats_on;
|
||||
|
||||
i = 0;
|
||||
if (zconfig != NULL) {
|
||||
@@ -519,14 +451,14 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
|
||||
if (ztype == dns_zone_slave)
|
||||
RETERR(configure_zone_acl(zconfig, vconfig, config,
|
||||
allow_notify, ac, zone,
|
||||
"allow-notify", ac, zone,
|
||||
dns_zone_setnotifyacl,
|
||||
dns_zone_clearnotifyacl));
|
||||
/*
|
||||
* XXXAG This probably does not make sense for stubs.
|
||||
*/
|
||||
RETERR(configure_zone_acl(zconfig, vconfig, config,
|
||||
allow_query, ac, zone,
|
||||
"allow-query", ac, zone,
|
||||
dns_zone_setqueryacl,
|
||||
dns_zone_clearqueryacl));
|
||||
|
||||
@@ -556,15 +488,7 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "zone-statistics", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
zonestats_on = cfg_obj_asboolean(obj);
|
||||
zoneqrystats = NULL;
|
||||
if (zonestats_on) {
|
||||
RETERR(dns_generalstats_create(mctx, &zoneqrystats,
|
||||
dns_nsstatscounter_max));
|
||||
}
|
||||
dns_zone_setrequeststats(zone, zoneqrystats);
|
||||
if (zoneqrystats != NULL)
|
||||
dns_stats_detach(&zoneqrystats);
|
||||
RETERR(dns_zone_setstatistics(zone, cfg_obj_asboolean(obj)));
|
||||
|
||||
/*
|
||||
* Configure master functionality. This applies
|
||||
@@ -629,7 +553,7 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
dns_zone_setisself(zone, ns_client_isself, NULL);
|
||||
|
||||
RETERR(configure_zone_acl(zconfig, vconfig, config,
|
||||
allow_transfer, ac, zone,
|
||||
"allow-transfer", ac, zone,
|
||||
dns_zone_setxfracl,
|
||||
dns_zone_clearxfracl));
|
||||
|
||||
@@ -704,7 +628,7 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "check-sibling", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_CHECKSIBLING,
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_CHECKSIBLING,
|
||||
cfg_obj_asboolean(obj));
|
||||
|
||||
obj = NULL;
|
||||
@@ -720,10 +644,10 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
if (ztype == dns_zone_master) {
|
||||
dns_acl_t *updateacl;
|
||||
RETERR(configure_zone_acl(zconfig, vconfig, config,
|
||||
allow_update, ac, zone,
|
||||
"allow-update", ac, zone,
|
||||
dns_zone_setupdateacl,
|
||||
dns_zone_clearupdateacl));
|
||||
|
||||
|
||||
updateacl = dns_zone_getupdateacl(zone);
|
||||
if (updateacl != NULL && dns_acl_isinsecure(updateacl))
|
||||
isc_log_write(ns_g_lctx, DNS_LOGCATEGORY_SECURITY,
|
||||
@@ -731,7 +655,7 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
"zone '%s' allows updates by IP "
|
||||
"address, which is insecure",
|
||||
zname);
|
||||
|
||||
|
||||
RETERR(configure_zone_ssutable(zoptions, zone));
|
||||
|
||||
obj = NULL;
|
||||
@@ -779,7 +703,7 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "check-integrity", &obj);
|
||||
INSIST(obj != NULL);
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_CHECKINTEGRITY,
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_CHECKINTEGRITY,
|
||||
cfg_obj_asboolean(obj));
|
||||
|
||||
obj = NULL;
|
||||
@@ -815,11 +739,53 @@ ns_zone_configure(const cfg_obj_t *config, const cfg_obj_t *vconfig,
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "update-check-ksk", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_UPDATECHECKKSK,
|
||||
dns_zone_setoption(zone, DNS_ZONEOPT_UPDATECHECKKSK,
|
||||
cfg_obj_asboolean(obj));
|
||||
}
|
||||
|
||||
/*
|
||||
* Configure update-related options. These apply to
|
||||
* primary masters only.
|
||||
*/
|
||||
if (ztype == dns_zone_master) {
|
||||
dns_acl_t *updateacl;
|
||||
RETERR(configure_zone_acl(zconfig, vconfig, config,
|
||||
"allow-update", ac, zone,
|
||||
dns_zone_setupdateacl,
|
||||
dns_zone_clearupdateacl));
|
||||
|
||||
updateacl = dns_zone_getupdateacl(zone);
|
||||
if (updateacl != NULL && dns_acl_isinsecure(updateacl))
|
||||
isc_log_write(ns_g_lctx, DNS_LOGCATEGORY_SECURITY,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_WARNING,
|
||||
"zone '%s' allows updates by IP "
|
||||
"address, which is insecure",
|
||||
zname);
|
||||
|
||||
RETERR(configure_zone_ssutable(zoptions, zone));
|
||||
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "sig-validity-interval", &obj);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
dns_zone_setsigvalidityinterval(zone,
|
||||
cfg_obj_asuint32(obj) * 86400);
|
||||
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "key-directory", &obj);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
filename = cfg_obj_asstring(obj);
|
||||
if (!isc_file_isabsolute(filename)) {
|
||||
cfg_obj_log(obj, ns_g_lctx, ISC_LOG_ERROR,
|
||||
"key-directory '%s' "
|
||||
"is not absolute", filename);
|
||||
return (ISC_R_FAILURE);
|
||||
}
|
||||
RETERR(dns_zone_setkeydirectory(zone, filename));
|
||||
}
|
||||
|
||||
} else if (ztype == dns_zone_slave) {
|
||||
RETERR(configure_zone_acl(zconfig, vconfig, config,
|
||||
allow_update_forwarding, ac, zone,
|
||||
"allow-update-forwarding", ac, zone,
|
||||
dns_zone_setforwardacl,
|
||||
dns_zone_clearforwardacl));
|
||||
}
|
||||
|
||||
+19
-18
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: nsupdate.c,v 1.154.56.3 2008/01/17 23:46:36 tbox Exp $ */
|
||||
/* $Id: nsupdate.c,v 1.154 2007/09/16 02:37:12 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -195,7 +195,7 @@ static void
|
||||
start_gssrequest(dns_name_t *master);
|
||||
static void
|
||||
send_gssrequest(isc_sockaddr_t *srcaddr, isc_sockaddr_t *destaddr,
|
||||
dns_message_t *msg, dns_request_t **request,
|
||||
dns_message_t *msg, dns_request_t **request,
|
||||
gss_ctx_id_t context);
|
||||
static void
|
||||
recvgss(isc_task_t *task, isc_event_t *event);
|
||||
@@ -421,7 +421,7 @@ parse_hmac(dns_name_t **hmac, const char *hmacstr, size_t len) {
|
||||
|
||||
strncpy(buf, hmacstr, len);
|
||||
buf[len] = 0;
|
||||
|
||||
|
||||
if (strcasecmp(buf, "hmac-md5") == 0) {
|
||||
*hmac = DNS_TSIG_HMACMD5_NAME;
|
||||
} else if (strncasecmp(buf, "hmac-md5-", 9) == 0) {
|
||||
@@ -1334,7 +1334,7 @@ evaluate_key(char *cmdline) {
|
||||
secret = isc_mem_allocate(mctx, secretlen);
|
||||
if (secret == NULL)
|
||||
fatal("out of memory");
|
||||
|
||||
|
||||
isc_buffer_init(&secretbuf, secret, secretlen);
|
||||
result = isc_base64_decodestring(secretstr, &secretbuf);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
@@ -1586,7 +1586,8 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
|
||||
failure:
|
||||
if (name != NULL)
|
||||
dns_message_puttempname(updatemsg, &name);
|
||||
dns_message_puttemprdata(updatemsg, &rdata);
|
||||
if (rdata != NULL)
|
||||
dns_message_puttemprdata(updatemsg, &rdata);
|
||||
return (STATUS_SYNTAX);
|
||||
}
|
||||
|
||||
@@ -1658,7 +1659,7 @@ show_message(FILE *stream, dns_message_t *msg, const char *description) {
|
||||
setzone(userzone);
|
||||
|
||||
bufsz = INITTEXT;
|
||||
do {
|
||||
do {
|
||||
if (bufsz > MAXTEXT) {
|
||||
fprintf(stderr, "could not allocate large enough "
|
||||
"buffer to display message\n");
|
||||
@@ -1892,7 +1893,7 @@ update_completed(isc_task_t *task, isc_event_t *event) {
|
||||
char buf[64];
|
||||
isc_buffer_t b;
|
||||
dns_rdataset_t *rds;
|
||||
|
||||
|
||||
isc_buffer_init(&b, buf, sizeof(buf) - 1);
|
||||
result = dns_rcode_totext(answer->rcode, &b);
|
||||
check_result(result, "dns_rcode_totext");
|
||||
@@ -1978,7 +1979,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
||||
ddebug("recvsoa()");
|
||||
|
||||
requests--;
|
||||
|
||||
|
||||
REQUIRE(event->ev_type == DNS_EVENT_REQUESTDONE);
|
||||
reqev = (dns_requestevent_t *)event;
|
||||
request = reqev->request;
|
||||
@@ -2075,7 +2076,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
||||
section = DNS_SECTION_ANSWER;
|
||||
else if (pass == 1)
|
||||
section = DNS_SECTION_AUTHORITY;
|
||||
else
|
||||
else
|
||||
goto droplabel;
|
||||
|
||||
result = dns_message_firstname(rcvmsg, section);
|
||||
@@ -2101,7 +2102,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
result = dns_message_nextname(rcvmsg, section);
|
||||
}
|
||||
|
||||
@@ -2179,7 +2180,7 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
|
||||
dns_message_destroy(&rcvmsg);
|
||||
ddebug("Out of recvsoa");
|
||||
return;
|
||||
|
||||
|
||||
droplabel:
|
||||
result = dns_message_firstname(soaquery, DNS_SECTION_QUESTION);
|
||||
INSIST(result == ISC_R_SUCCESS);
|
||||
@@ -2243,7 +2244,7 @@ start_gssrequest(dns_name_t *master)
|
||||
dns_tsigkeyring_destroy(&gssring);
|
||||
gssring = NULL;
|
||||
result = dns_tsigkeyring_create(mctx, &gssring);
|
||||
|
||||
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("dns_tsigkeyring_create failed: %s",
|
||||
isc_result_totext(result));
|
||||
@@ -2274,7 +2275,7 @@ start_gssrequest(dns_name_t *master)
|
||||
if (result != ISC_R_SUCCESS)
|
||||
fatal("dns_name_fromtext(servname) failed: %s",
|
||||
isc_result_totext(result));
|
||||
|
||||
|
||||
dns_fixedname_init(&fkname);
|
||||
keyname = dns_fixedname_name(&fkname);
|
||||
|
||||
@@ -2363,7 +2364,7 @@ recvgss(isc_task_t *task, isc_event_t *event) {
|
||||
ddebug("recvgss()");
|
||||
|
||||
requests--;
|
||||
|
||||
|
||||
REQUIRE(event->ev_type == DNS_EVENT_REQUESTDONE);
|
||||
reqev = (dns_requestevent_t *)event;
|
||||
request = reqev->request;
|
||||
@@ -2414,7 +2415,7 @@ recvgss(isc_task_t *task, isc_event_t *event) {
|
||||
DNS_MESSAGEPARSE_PRESERVEORDER);
|
||||
check_result(result, "dns_request_getresponse");
|
||||
|
||||
if (debugging)
|
||||
if (debugging)
|
||||
show_message(stderr, rcvmsg,
|
||||
"recvmsg reply from GSS-TSIG query");
|
||||
|
||||
@@ -2445,7 +2446,7 @@ recvgss(isc_task_t *task, isc_event_t *event) {
|
||||
|
||||
tsigkey = NULL;
|
||||
result = dns_tkey_gssnegotiate(tsigquery, rcvmsg, servname,
|
||||
&context, &tsigkey, gssring,
|
||||
&context, &tsigkey, gssring,
|
||||
use_win2k_gsstsig);
|
||||
switch (result) {
|
||||
|
||||
@@ -2473,7 +2474,7 @@ recvgss(isc_task_t *task, isc_event_t *event) {
|
||||
*/
|
||||
#if 0
|
||||
/*
|
||||
* Verify the signature.
|
||||
* Verify the signature.
|
||||
*/
|
||||
rcvmsg->state = DNS_SECTION_ANY;
|
||||
dns_message_setquerytsig(rcvmsg, NULL);
|
||||
|
||||
+1
-2
@@ -13,7 +13,7 @@
|
||||
.\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
.\" PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.\" $Id: rndc.8,v 1.42 2007/12/14 22:37:22 marka Exp $
|
||||
.\" $Id: rndc.8,v 1.41 2007/06/20 02:27:32 marka Exp $
|
||||
.\"
|
||||
.hy 0
|
||||
.ad l
|
||||
@@ -133,7 +133,6 @@ Several error messages could be clearer.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fBrndc.conf\fR(5),
|
||||
\fBrndc\-confgen\fR(8),
|
||||
\fBnamed\fR(8),
|
||||
\fBnamed.conf\fR(5),
|
||||
\fBndc\fR(8),
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
|
||||
<!-- $Id: rndc.docbook,v 1.21 2007/12/14 20:39:14 marka Exp $ -->
|
||||
<!-- $Id: rndc.docbook,v 1.20 2007/06/19 06:58:03 marka Exp $ -->
|
||||
<refentry id="man.rndc">
|
||||
<refentryinfo>
|
||||
<date>June 30, 2000</date>
|
||||
@@ -224,9 +224,6 @@
|
||||
<para><citerefentry>
|
||||
<refentrytitle>rndc.conf</refentrytitle><manvolnum>5</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>rndc-confgen</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
<citerefentry>
|
||||
<refentrytitle>named</refentrytitle><manvolnum>8</manvolnum>
|
||||
</citerefentry>,
|
||||
|
||||
+2
-3
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: rndc.html,v 1.31 2007/12/14 22:37:22 marka Exp $ -->
|
||||
<!-- $Id: rndc.html,v 1.30 2007/06/20 02:27:32 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -149,7 +149,6 @@
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543683"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">rndc.conf</span>(5)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">rndc-confgen</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named.conf</span>(5)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">ndc</span>(8)</span>,
|
||||
@@ -157,7 +156,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2543738"></a><h2>AUTHOR</h2>
|
||||
<a name="id2543730"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_dst.c,v 1.53.128.2 2008/01/12 23:46:43 tbox Exp $ */
|
||||
/* $Id: t_dst.c,v 1.53 2007/06/19 23:47:00 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -377,7 +377,7 @@ t1(void) {
|
||||
t_result(T_UNRESOLVED);
|
||||
return;
|
||||
}
|
||||
isc_result = isc_entropy_createfilesource(ectx, "randomfile");
|
||||
result = isc_entropy_createfilesource(ectx, "randomfile");
|
||||
if (isc_result != ISC_R_SUCCESS) {
|
||||
t_info("isc_entropy_create failed %s\n",
|
||||
isc_result_totext(isc_result));
|
||||
@@ -876,7 +876,7 @@ t2_vfy(char **av) {
|
||||
isc_result_totext(isc_result));
|
||||
return(T_UNRESOLVED);
|
||||
}
|
||||
isc_result = isc_entropy_createfilesource(ectx, "randomfile");
|
||||
result = isc_entropy_createfilesource(ectx, "randomfile");
|
||||
if (isc_result != ISC_R_SUCCESS) {
|
||||
t_info("isc_entropy_create failed %s\n",
|
||||
isc_result_totext(isc_result));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1998-2003 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_names.c,v 1.43.128.3 2008/01/17 23:46:36 tbox Exp $ */
|
||||
/* $Id: t_names.c,v 1.43 2007/06/19 23:47:00 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -209,7 +209,6 @@ getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf)
|
||||
else if (('A' <= c) && (c <= 'Z'))
|
||||
val = c - 'A'+ 10;
|
||||
else {
|
||||
(void)fclose(fp);
|
||||
t_info("Bad format in datafile\n");
|
||||
return (0);
|
||||
}
|
||||
@@ -223,7 +222,6 @@ getmsg(char *datafile_name, unsigned char *buf, int buflen, isc_buffer_t *pbuf)
|
||||
/*
|
||||
* Buffer too small.
|
||||
*/
|
||||
(void)fclose(fp);
|
||||
t_info("Buffer overflow error\n");
|
||||
return (0);
|
||||
}
|
||||
@@ -581,7 +579,7 @@ t_dns_name_isabsolute(void) {
|
||||
* label, bitpos, expected value.
|
||||
*/
|
||||
result = test_dns_name_isabsolute(Tokens[0],
|
||||
atoi(Tokens[1])
|
||||
atoi(Tokens[1])
|
||||
== 0 ?
|
||||
ISC_FALSE :
|
||||
ISC_TRUE);
|
||||
@@ -1366,7 +1364,7 @@ t_dns_name_getlabel(void) {
|
||||
*/
|
||||
result = test_dns_name_getlabel(Tokens[0],
|
||||
atoi(Tokens[1]),
|
||||
Tokens[2],
|
||||
Tokens[2],
|
||||
atoi(Tokens[3]));
|
||||
} else {
|
||||
t_info("bad format at line %d\n", line);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: conf.sh.in,v 1.37.128.2 2008/01/10 23:46:34 tbox Exp $
|
||||
# $Id: conf.sh.in,v 1.37 2007/06/19 23:47:00 tbox Exp $
|
||||
|
||||
#
|
||||
# Common configuration data for system tests, to be sourced into
|
||||
@@ -43,7 +43,7 @@ CHECKCONF=$TOP/bin/check/named-checkconf
|
||||
# The "stress" test is not run by default since it creates enough
|
||||
# load on the machine to make it unusable to other users.
|
||||
# v6synth
|
||||
SUBDIRS="acl cacheclean checkconf checknames dnssec forward glue ixfr limits
|
||||
SUBDIRS="cacheclean checkconf checknames dnssec forward glue ixfr limits
|
||||
lwresd masterfile masterformat notify nsupdate resolver rrsetorder
|
||||
sortlist stub tkey unknown upforwd views xfer xferquota zonechecks"
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2004, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: ifconfig.sh,v 1.51.128.2 2008/03/03 23:46:26 tbox Exp $
|
||||
# $Id: ifconfig.sh,v 1.51 2007/06/19 23:47:00 tbox Exp $
|
||||
|
||||
#
|
||||
# Set up interface aliases for bind9 system tests.
|
||||
@@ -85,9 +85,6 @@ case "$1" in
|
||||
*-unknown-netbsd*)
|
||||
ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0
|
||||
;;
|
||||
*-unknown-openbsd*)
|
||||
ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0
|
||||
;;
|
||||
*-*-bsdi[3-5].*)
|
||||
ifconfig lo0 add 10.53.0.$ns netmask 255.255.255.0
|
||||
;;
|
||||
@@ -148,9 +145,6 @@ case "$1" in
|
||||
*-unknown-netbsd*)
|
||||
ifconfig lo0 10.53.0.$ns delete
|
||||
;;
|
||||
*-unknown-openbsd*)
|
||||
ifconfig lo0 10.53.0.$ns delete
|
||||
;;
|
||||
*-*-bsdi[3-5].*)
|
||||
ifconfig lo0 remove 10.53.0.$ns
|
||||
;;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2000-2002 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: lwtest.c,v 1.29.60.2 2008/01/14 23:46:28 tbox Exp $ */
|
||||
/* $Id: lwtest.c,v 1.29 2007/09/13 04:45:18 each Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -350,7 +350,6 @@ test_getipnodebyname(const char *name, const char *address, int af,
|
||||
if (hp->h_addrtype != af) {
|
||||
printf("I:getipnodebyname(%s) returned wrong family\n",
|
||||
name);
|
||||
freehostent(hp);
|
||||
fails++;
|
||||
return;
|
||||
}
|
||||
@@ -362,7 +361,6 @@ test_getipnodebyname(const char *name, const char *address, int af,
|
||||
outbuf, sizeof(outbuf));
|
||||
printf("I:getipnodebyname(%s) returned %s, "
|
||||
"expected %s\n", name, outbuf, address);
|
||||
freehostent(hp);
|
||||
fails++;
|
||||
return;
|
||||
}
|
||||
@@ -429,21 +427,20 @@ test_getipnodebyaddr(const char *address, int af, const char *name) {
|
||||
if (name == NULL && error_num == HOST_NOT_FOUND)
|
||||
return;
|
||||
else if (error_num != HOST_NOT_FOUND) {
|
||||
printf("I:getipnodebyaddr(%s) failed: %d\n",
|
||||
printf("I:gethostbyaddr(%s) failed: %d\n",
|
||||
address, error_num);
|
||||
fails++;
|
||||
return;
|
||||
} else {
|
||||
printf("I:getipnodebyaddr(%s) returned not found\n",
|
||||
printf("I:gethostbyaddr(%s) returned not found\n",
|
||||
address);
|
||||
fails++;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (strcmp(hp->h_name, name) != 0) {
|
||||
printf("I:getipnodebyaddr(%s) returned %s, "
|
||||
printf("I:gethostbyname(%s) returned %s, "
|
||||
"expected %s\n", address, hp->h_name, name);
|
||||
freehostent(hp);
|
||||
fails++;
|
||||
return;
|
||||
}
|
||||
@@ -591,12 +588,12 @@ test_getnameinfo(const char *address, int af, const char *name) {
|
||||
}
|
||||
} else {
|
||||
if (name == NULL) {
|
||||
printf("I:getnameinfo(%s) returned %s, "
|
||||
printf("I:getaddrinfo(%s) returned %s, "
|
||||
"expected NULL\n", address, host);
|
||||
fails++;
|
||||
return;
|
||||
} else if (strcmp(host, name) != 0) {
|
||||
printf("I:getnameinfo(%s) returned %s, expected %s\n",
|
||||
printf("I:getaddrinfo(%s) returned %s, expected %s\n",
|
||||
address, host, name);
|
||||
fails++;
|
||||
return;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2006, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -14,10 +14,9 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: clean.sh,v 1.6.46.2 2008/04/24 23:46:29 tbox Exp $
|
||||
# $Id: clean.sh,v 1.6 2007/09/26 03:22:44 marka Exp $
|
||||
|
||||
rm -f dig.out.cyclic dig.out.fixed dig.out.random
|
||||
rm -f dig.out.0 dig.out.1 dig.out.2 dig.out.3
|
||||
rm -f ns2/root.bk
|
||||
rm -f ns?/named.run ns?/named.core
|
||||
rm -f */named.memstats
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
1.2.3.1
|
||||
1.2.3.4
|
||||
1.2.3.3
|
||||
1.2.3.2
|
||||
@@ -0,0 +1,4 @@
|
||||
1.2.3.4
|
||||
1.2.3.3
|
||||
1.2.3.2
|
||||
1.2.3.1
|
||||
@@ -0,0 +1,4 @@
|
||||
1.2.3.3
|
||||
1.2.3.2
|
||||
1.2.3.1
|
||||
1.2.3.4
|
||||
@@ -0,0 +1,4 @@
|
||||
1.2.3.2
|
||||
1.2.3.1
|
||||
1.2.3.4
|
||||
1.2.3.3
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2006, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -14,60 +14,54 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
# $Id: tests.sh,v 1.5.128.2 2008/04/24 23:46:29 tbox Exp $
|
||||
# $Id: tests.sh,v 1.5 2007/06/19 23:47:05 tbox Exp $
|
||||
|
||||
SYSTEMTESTTOP=..
|
||||
. $SYSTEMTESTTOP/conf.sh
|
||||
|
||||
status=0
|
||||
|
||||
if grep -q "^#define DNS_RDATASET_FIXED" $TOP/config.h; then
|
||||
test_fixed=true
|
||||
else
|
||||
echo "I: Order 'fixed' disabled at compile time"
|
||||
test_fixed=false
|
||||
fi
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
if $test_fixed; then
|
||||
echo "I: Checking order fixed (master)"
|
||||
ret=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.1 fixed.example > dig.out.fixed || ret=1
|
||||
cmp -s dig.out.fixed dig.out.fixed.good || ret=1
|
||||
done
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
fi
|
||||
echo "I: Checking order fixed (master)"
|
||||
ret=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.1 fixed.example > dig.out.fixed || ret=1
|
||||
cmp -s dig.out.fixed dig.out.fixed.good || ret=1
|
||||
done
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
echo "I: Checking order cyclic (master)"
|
||||
ret=0
|
||||
matches=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||
match1=0
|
||||
match2=0
|
||||
match3=0
|
||||
match4=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
j=`expr $i % 4`
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.1 cyclic.example > dig.out.cyclic || ret=1
|
||||
if [ $i -le 4 ]; then
|
||||
cp dig.out.cyclic dig.out.$j
|
||||
else
|
||||
cmp -s dig.out.cyclic dig.out.$j && matches=`expr $matches + 1`
|
||||
fi
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.1 cyclic.example > dig.out.cyclic || ret=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good1 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good2 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good3 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good4 || \
|
||||
ret=1
|
||||
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good1 && match1=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good2 && match2=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good3 && match3=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good4 && match4=1
|
||||
|
||||
done
|
||||
cmp -s dig.out.0 dig.out.1 && ret=1
|
||||
cmp -s dig.out.0 dig.out.2 && ret=1
|
||||
cmp -s dig.out.0 dig.out.3 && ret=1
|
||||
cmp -s dig.out.1 dig.out.2 && ret=1
|
||||
cmp -s dig.out.1 dig.out.3 && ret=1
|
||||
cmp -s dig.out.2 dig.out.3 && ret=1
|
||||
if [ $matches -ne 16 ]; then ret=1; fi
|
||||
match=`expr $match1 + $match2 + $match3 + $match4`
|
||||
if [ $match != 4 ]; then ret=1; fi
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
@@ -102,43 +96,44 @@ status=`expr $status + $ret`
|
||||
#
|
||||
#
|
||||
#
|
||||
if $test_fixed; then
|
||||
echo "I: Checking order fixed (slave)"
|
||||
ret=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.2 fixed.example > dig.out.fixed || ret=1
|
||||
cmp -s dig.out.fixed dig.out.fixed.good || ret=1
|
||||
done
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
fi
|
||||
echo "I: Checking order fixed (slave)"
|
||||
ret=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.2 fixed.example > dig.out.fixed || ret=1
|
||||
cmp -s dig.out.fixed dig.out.fixed.good || ret=1
|
||||
done
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
echo "I: Checking order cyclic (slave)"
|
||||
ret=0
|
||||
matches=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||
match1=0
|
||||
match2=0
|
||||
match3=0
|
||||
match4=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
j=`expr $i % 4`
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.2 cyclic.example > dig.out.cyclic || ret=1
|
||||
if [ $i -le 4 ]; then
|
||||
cp dig.out.cyclic dig.out.$j
|
||||
else
|
||||
cmp -s dig.out.cyclic dig.out.$j && matches=`expr $matches + 1`
|
||||
fi
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.2 cyclic.example > dig.out.cyclic || ret=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good1 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good2 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good3 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good4 || \
|
||||
ret=1
|
||||
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good1 && match1=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good2 && match2=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good3 && match3=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good4 && match4=1
|
||||
|
||||
done
|
||||
cmp -s dig.out.0 dig.out.1 && ret=1
|
||||
cmp -s dig.out.0 dig.out.2 && ret=1
|
||||
cmp -s dig.out.0 dig.out.3 && ret=1
|
||||
cmp -s dig.out.1 dig.out.2 && ret=1
|
||||
cmp -s dig.out.1 dig.out.3 && ret=1
|
||||
cmp -s dig.out.2 dig.out.3 && ret=1
|
||||
if [ $matches -ne 16 ]; then ret=1; fi
|
||||
match=`expr $match1 + $match2 + $match3 + $match4`
|
||||
if [ $match != 4 ]; then ret=1; fi
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
@@ -189,43 +184,44 @@ echo "I: Re-starting slave"
|
||||
#
|
||||
#
|
||||
#
|
||||
if $test_fixed; then
|
||||
echo "I: Checking order fixed (slave loaded from disk)"
|
||||
ret=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.2 fixed.example > dig.out.fixed || ret=1
|
||||
cmp -s dig.out.fixed dig.out.fixed.good || ret=1
|
||||
done
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
fi
|
||||
echo "I: Checking order fixed (slave loaded from disk)"
|
||||
ret=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.2 fixed.example > dig.out.fixed || ret=1
|
||||
cmp -s dig.out.fixed dig.out.fixed.good || ret=1
|
||||
done
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
echo "I: Checking order cyclic (slave loaded from disk)"
|
||||
ret=0
|
||||
matches=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||
match1=0
|
||||
match2=0
|
||||
match3=0
|
||||
match4=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
j=`expr $i % 4`
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.2 cyclic.example > dig.out.cyclic || ret=1
|
||||
if [ $i -le 4 ]; then
|
||||
cp dig.out.cyclic dig.out.$j
|
||||
else
|
||||
cmp -s dig.out.cyclic dig.out.$j && matches=`expr $matches + 1`
|
||||
fi
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.2 cyclic.example > dig.out.cyclic || ret=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good1 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good2 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good3 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good4 || \
|
||||
ret=1
|
||||
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good1 && match1=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good2 && match2=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good3 && match3=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good4 && match4=1
|
||||
|
||||
done
|
||||
cmp -s dig.out.0 dig.out.1 && ret=1
|
||||
cmp -s dig.out.0 dig.out.2 && ret=1
|
||||
cmp -s dig.out.0 dig.out.3 && ret=1
|
||||
cmp -s dig.out.1 dig.out.2 && ret=1
|
||||
cmp -s dig.out.1 dig.out.3 && ret=1
|
||||
cmp -s dig.out.2 dig.out.3 && ret=1
|
||||
if [ $matches -ne 16 ]; then ret=1; fi
|
||||
match=`expr $match1 + $match2 + $match3 + $match4`
|
||||
if [ $match != 4 ]; then ret=1; fi
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
@@ -260,43 +256,44 @@ status=`expr $status + $ret`
|
||||
#
|
||||
#
|
||||
#
|
||||
if $test_fixed; then
|
||||
echo "I: Checking order fixed (cache)"
|
||||
ret=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.3 fixed.example > dig.out.fixed || ret=1
|
||||
cmp -s dig.out.fixed dig.out.fixed.good || ret=1
|
||||
done
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
fi
|
||||
echo "I: Checking order fixed (cache)"
|
||||
ret=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.3 fixed.example > dig.out.fixed || ret=1
|
||||
cmp -s dig.out.fixed dig.out.fixed.good || ret=1
|
||||
done
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
echo "I: Checking order cyclic (cache)"
|
||||
ret=0
|
||||
matches=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||
match1=0
|
||||
match2=0
|
||||
match3=0
|
||||
match4=0
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
do
|
||||
j=`expr $i % 4`
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.3 cyclic.example > dig.out.cyclic || ret=1
|
||||
if [ $i -le 4 ]; then
|
||||
cp dig.out.cyclic dig.out.$j
|
||||
else
|
||||
cmp -s dig.out.cyclic dig.out.$j && matches=`expr $matches + 1`
|
||||
fi
|
||||
$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \
|
||||
-p 5300 @10.53.0.3 cyclic.example > dig.out.cyclic || ret=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good1 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good2 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good3 || \
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good4 || \
|
||||
ret=1
|
||||
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good1 && match1=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good2 && match2=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good3 && match3=1
|
||||
cmp -s dig.out.cyclic dig.out.cyclic.good4 && match4=1
|
||||
|
||||
done
|
||||
cmp -s dig.out.0 dig.out.1 && ret=1
|
||||
cmp -s dig.out.0 dig.out.2 && ret=1
|
||||
cmp -s dig.out.0 dig.out.3 && ret=1
|
||||
cmp -s dig.out.1 dig.out.2 && ret=1
|
||||
cmp -s dig.out.1 dig.out.3 && ret=1
|
||||
cmp -s dig.out.2 dig.out.3 && ret=1
|
||||
if [ $matches -ne 16 ]; then ret=1; fi
|
||||
match=`expr $match1 + $match2 + $match3 + $match4`
|
||||
if [ $match != 4 ]; then ret=1; fi
|
||||
if [ $ret != 0 ]; then echo "I:failed"; fi
|
||||
status=`expr $status + $ret`
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: named.conf,v 1.24 2007/12/20 01:48:29 marka Exp $ */
|
||||
/* $Id: named.conf,v 1.23 2007/06/19 23:47:07 tbox Exp $ */
|
||||
|
||||
controls { /* empty */ };
|
||||
|
||||
@@ -36,12 +36,8 @@ options {
|
||||
include "../../common/controls.conf";
|
||||
|
||||
key tsigzone. {
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
acl tzkey {
|
||||
key tsigzone.;
|
||||
algorithm hmac-md5;
|
||||
secret "1234abcd8765";
|
||||
};
|
||||
|
||||
zone "." {
|
||||
@@ -57,5 +53,5 @@ zone "example" {
|
||||
zone "tsigzone" {
|
||||
type master;
|
||||
file "tsigzone.db";
|
||||
allow-transfer { tzkey; };
|
||||
allow-transfer { key tsigzone.; };
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: t_timers.c,v 1.26.128.2 2008/01/12 23:46:43 tbox Exp $ */
|
||||
/* $Id: t_timers.c,v 1.26 2007/06/19 23:47:07 tbox Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
@@ -256,7 +256,7 @@ t_timers_x(isc_timertype_t timertype, isc_time_t *expires,
|
||||
return;
|
||||
}
|
||||
|
||||
isc_result = isc_mutex_lock(&Tx_mx);
|
||||
isc_mutex_lock(&Tx_mx);
|
||||
if (isc_result != ISC_R_SUCCESS) {
|
||||
t_info("isc_mutex_lock failed %s\n",
|
||||
isc_result_totext(isc_result));
|
||||
|
||||
+1
-14
@@ -16,7 +16,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.h.in,v 1.90.60.8 2008/05/06 01:32:51 each Exp $ */
|
||||
/* $Id: config.h.in,v 1.90 2007/09/14 03:40:36 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
@@ -157,9 +157,6 @@ int sigwait(const unsigned int *set, int *sig);
|
||||
/* Define if you cannot bind() before connect() for TCP sockets. */
|
||||
#undef BROKEN_TCP_BIND_BEFORE_CONNECT
|
||||
|
||||
/* Define to enable "rrset-order fixed" syntax. */
|
||||
#undef DNS_RDATASET_FIXED
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
@@ -178,9 +175,6 @@ int sigwait(const unsigned int *set, int *sig);
|
||||
/* Define to 1 if you have the `c' library (-lc). */
|
||||
#undef HAVE_LIBC
|
||||
|
||||
/* Define to 1 if you have the `cap' library (-lcap). */
|
||||
#undef HAVE_LIBCAP
|
||||
|
||||
/* Define to 1 if you have the `c_r' library (-lc_r). */
|
||||
#undef HAVE_LIBC_R
|
||||
|
||||
@@ -229,9 +223,6 @@ int sigwait(const unsigned int *set, int *sig);
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/capability.h> header file. */
|
||||
#undef HAVE_SYS_CAPABILITY_H
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#undef HAVE_SYS_PARAM_H
|
||||
|
||||
@@ -325,7 +316,3 @@ int sigwait(const unsigned int *set, int *sig);
|
||||
|
||||
/* Define to `unsigned long' if <sys/types.h> does not define. */
|
||||
#undef uintptr_t
|
||||
|
||||
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
||||
code using `volatile' can become incorrect without. Disable with care. */
|
||||
#undef volatile
|
||||
|
||||
+7
-5
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2004, 2006-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 2004, 2006, 2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
* Copyright (C) 1999-2001 Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -15,7 +15,7 @@
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: config.h.win32,v 1.16.130.2 2008/04/02 23:46:28 tbox Exp $ */
|
||||
/* $Id: config.h.win32,v 1.16 2007/06/19 23:46:59 tbox Exp $ */
|
||||
|
||||
/*
|
||||
* win32 configuration file
|
||||
@@ -123,7 +123,9 @@
|
||||
/* Define if you have DH_generate_parameters(). */
|
||||
#define HAVE_DH_GENERATE_PARAMETERS
|
||||
|
||||
#define WANT_IPV6
|
||||
#define ISC_PLATFORM_NEEDSTRLCAT
|
||||
|
||||
#define ISC_PLATFORM_NEEDSTRLCPY
|
||||
|
||||
#define S_IFMT _S_IFMT /* file type mask */
|
||||
#define S_IFDIR _S_IFDIR /* directory */
|
||||
@@ -144,7 +146,7 @@
|
||||
|
||||
/* open() under unix allows setting of read/write permissions
|
||||
* at the owner, group and other levels. These don't exist in NT
|
||||
* We'll just map them all to the NT equivalent
|
||||
* We'll just map them all to the NT equivalent
|
||||
*/
|
||||
|
||||
#define S_IRUSR _S_IREAD /* Owner read permission */
|
||||
@@ -194,7 +196,7 @@ typedef long off_t;
|
||||
*/
|
||||
#include <versions.h>
|
||||
|
||||
/* We actually are using the CryptAPI and not a device */
|
||||
/* We actually are using the CryptAPI and not a device */
|
||||
#define PATH_RANDOMDEV "CryptAPI"
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#! /bin/sh
|
||||
# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1996-2003 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
# $Id: configure,v 1.418.60.9 2008/06/17 04:03:31 marka Exp $
|
||||
# $Id: configure,v 1.418 2007/09/14 03:40:36 marka Exp $
|
||||
#
|
||||
# Portions Copyright (C) 1996-2001 Nominum, Inc.
|
||||
#
|
||||
@@ -29,7 +29,7 @@
|
||||
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
# 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.432.60.9 .
|
||||
# From configure.in Revision: 1.432 .
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.61.
|
||||
#
|
||||
@@ -978,7 +978,6 @@ ISC_PLATFORM_BRACEPTHREADONCEINIT
|
||||
ISC_PLATFORM_HAVESTRINGSH
|
||||
ISC_PLATFORM_HAVEIFNAMETOINDEX
|
||||
ISC_PLATFORM_HAVEXADD
|
||||
ISC_PLATFORM_HAVEXADDQ
|
||||
ISC_PLATFORM_HAVECMPXCHG
|
||||
ISC_PLATFORM_HAVEATOMICSTORE
|
||||
ISC_PLATFORM_USEGCCASM
|
||||
@@ -1638,8 +1637,6 @@ Optional Features:
|
||||
--disable-linux-caps disable linux capabilities
|
||||
--enable-atomic enable machine specific atomic operations
|
||||
[default=autodetect]
|
||||
--enable-fixed-rrset enable fixed rrset ordering
|
||||
[default=no]
|
||||
|
||||
Optional Packages:
|
||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||
@@ -1657,7 +1654,6 @@ Optional Packages:
|
||||
both]
|
||||
--with-tags[=TAGS] include additional configurations [automatic]
|
||||
--with-kame=PATH use Kame IPv6 default path /usr/local/v6
|
||||
--with-docbook-xsl=PATH Specify path for Docbook-XSL stylesheets
|
||||
--with-idn=MPREFIX enable IDN support using idnkit default PREFIX
|
||||
--with-libiconv=IPREFIX GNU libiconv are in IPREFIX default PREFIX
|
||||
--with-iconv=LIBSPEC specify iconv library default -liconv
|
||||
@@ -4523,66 +4519,6 @@ _ACEOF
|
||||
;;
|
||||
esac
|
||||
|
||||
{ echo "$as_me:$LINENO: checking for working volatile" >&5
|
||||
echo $ECHO_N "checking for working volatile... $ECHO_C" >&6; }
|
||||
if test "${ac_cv_c_volatile+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
volatile int x;
|
||||
int * volatile y = (int *) 0;
|
||||
return !x && !y;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext
|
||||
if { (ac_try="$ac_compile"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
(eval "$ac_compile") 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } && {
|
||||
test -z "$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
} && test -s conftest.$ac_objext; then
|
||||
ac_cv_c_volatile=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_cv_c_volatile=no
|
||||
fi
|
||||
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
{ echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5
|
||||
echo "${ECHO_T}$ac_cv_c_volatile" >&6; }
|
||||
if test $ac_cv_c_volatile = no; then
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define volatile
|
||||
_ACEOF
|
||||
|
||||
fi
|
||||
|
||||
{ echo "$as_me:$LINENO: checking for sysctlbyname" >&5
|
||||
echo $ECHO_N "checking for sysctlbyname... $ECHO_C" >&6; }
|
||||
if test "${ac_cv_func_sysctlbyname+set}" = set; then
|
||||
@@ -9047,14 +8983,6 @@ esac
|
||||
#
|
||||
# GNU libtool support
|
||||
#
|
||||
case $host in
|
||||
sunos*)
|
||||
# Just set the maximum command line length for sunos as it otherwise
|
||||
# takes a exceptionally long time to work it out. Required for libtool.
|
||||
lt_cv_sys_max_cmd_len=4096;
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# Check whether --with-libtool was given.
|
||||
if test "${with_libtool+set}" = set; then
|
||||
@@ -9591,7 +9519,7 @@ ia64-*-hpux*)
|
||||
;;
|
||||
*-*-irix6*)
|
||||
# Find out which ABI we are using.
|
||||
echo '#line 9594 "configure"' > conftest.$ac_ext
|
||||
echo '#line 9522 "configure"' > conftest.$ac_ext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
(eval $ac_compile) 2>&5
|
||||
ac_status=$?
|
||||
@@ -11713,11 +11641,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:11716: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:11644: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:11720: \$? = $ac_status" >&5
|
||||
echo "$as_me:11648: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings
|
||||
@@ -11956,11 +11884,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:11959: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:11887: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:11963: \$? = $ac_status" >&5
|
||||
echo "$as_me:11891: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings
|
||||
@@ -12016,11 +11944,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:12019: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:11947: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:12023: \$? = $ac_status" >&5
|
||||
echo "$as_me:11951: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@@ -14164,7 +14092,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 14167 "configure"
|
||||
#line 14095 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -14262,7 +14190,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 14265 "configure"
|
||||
#line 14193 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -16455,11 +16383,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:16458: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:16386: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:16462: \$? = $ac_status" >&5
|
||||
echo "$as_me:16390: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings
|
||||
@@ -16515,11 +16443,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:16518: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:16446: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:16522: \$? = $ac_status" >&5
|
||||
echo "$as_me:16450: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@@ -17843,7 +17771,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17846 "configure"
|
||||
#line 17774 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -17941,7 +17869,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17944 "configure"
|
||||
#line 17872 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -18778,11 +18706,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:18781: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:18709: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:18785: \$? = $ac_status" >&5
|
||||
echo "$as_me:18713: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings
|
||||
@@ -18838,11 +18766,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:18841: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:18769: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:18845: \$? = $ac_status" >&5
|
||||
echo "$as_me:18773: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@@ -20872,11 +20800,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:20875: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:20803: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:20879: \$? = $ac_status" >&5
|
||||
echo "$as_me:20807: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings
|
||||
@@ -21115,11 +21043,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:21118: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:21046: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:21122: \$? = $ac_status" >&5
|
||||
echo "$as_me:21050: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings
|
||||
@@ -21175,11 +21103,11 @@ else
|
||||
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:21178: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:21106: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:21182: \$? = $ac_status" >&5
|
||||
echo "$as_me:21110: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@@ -23323,7 +23251,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 23326 "configure"
|
||||
#line 23254 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -23421,7 +23349,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 23424 "configure"
|
||||
#line 23352 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@@ -27500,8 +27428,7 @@ fi
|
||||
case "$enable_linux_caps" in
|
||||
yes|'')
|
||||
|
||||
|
||||
for ac_header in linux/capability.h sys/capability.h
|
||||
for ac_header in linux/capability.h
|
||||
do
|
||||
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
|
||||
@@ -27640,77 +27567,6 @@ fi
|
||||
|
||||
done
|
||||
|
||||
|
||||
{ echo "$as_me:$LINENO: checking for cap_set_proc in -lcap" >&5
|
||||
echo $ECHO_N "checking for cap_set_proc in -lcap... $ECHO_C" >&6; }
|
||||
if test "${ac_cv_lib_cap_cap_set_proc+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lcap $LIBS"
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char cap_set_proc ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return cap_set_proc ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||
if { (ac_try="$ac_link"
|
||||
case "(($ac_try" in
|
||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||
*) ac_try_echo=$ac_try;;
|
||||
esac
|
||||
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
(eval "$ac_link") 2>conftest.er1
|
||||
ac_status=$?
|
||||
grep -v '^ *+' conftest.er1 >conftest.err
|
||||
rm -f conftest.er1
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); } && {
|
||||
test -z "$ac_c_werror_flag" ||
|
||||
test ! -s conftest.err
|
||||
} && test -s conftest$ac_exeext &&
|
||||
$as_test_x conftest$ac_exeext; then
|
||||
ac_cv_lib_cap_cap_set_proc=yes
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
ac_cv_lib_cap_cap_set_proc=no
|
||||
fi
|
||||
|
||||
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ echo "$as_me:$LINENO: result: $ac_cv_lib_cap_cap_set_proc" >&5
|
||||
echo "${ECHO_T}$ac_cv_lib_cap_cap_set_proc" >&6; }
|
||||
if test $ac_cv_lib_cap_cap_set_proc = yes; then
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LIBCAP 1
|
||||
_ACEOF
|
||||
|
||||
LIBS="-lcap $LIBS"
|
||||
|
||||
fi
|
||||
|
||||
;;
|
||||
no)
|
||||
;;
|
||||
@@ -29030,7 +28886,6 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
arch=x86_64
|
||||
have_xaddq=yes
|
||||
else
|
||||
echo "$as_me: program exited with status $ac_status" >&5
|
||||
echo "$as_me: failed program was:" >&5
|
||||
@@ -29045,7 +28900,6 @@ fi
|
||||
|
||||
;;
|
||||
x86_64-*)
|
||||
have_xaddq=yes
|
||||
arch=x86_64
|
||||
;;
|
||||
alpha*-*)
|
||||
@@ -29275,13 +29129,6 @@ else
|
||||
ISC_PLATFORM_HAVEATOMICSTORE="#undef ISC_PLATFORM_HAVEATOMICSTORE"
|
||||
fi
|
||||
|
||||
if test "$have_xaddq" = "yes"; then
|
||||
ISC_PLATFORM_HAVEXADDQ="#define ISC_PLATFORM_HAVEXADDQ 1"
|
||||
else
|
||||
ISC_PLATFORM_HAVEXADDQ="#undef ISC_PLATFORM_HAVEXADDQ"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -29294,30 +29141,6 @@ fi
|
||||
ISC_ARCH_DIR=$arch
|
||||
|
||||
|
||||
#
|
||||
# Activate "rrset-order fixed" or not?
|
||||
#
|
||||
# Check whether --enable-fixed-rrset was given.
|
||||
if test "${enable_fixed_rrset+set}" = set; then
|
||||
enableval=$enable_fixed_rrset; enable_fixed="$enableval"
|
||||
else
|
||||
enable_fixed="no"
|
||||
fi
|
||||
|
||||
case "$enable_fixed" in
|
||||
yes)
|
||||
|
||||
cat >>confdefs.h <<\_ACEOF
|
||||
#define DNS_RDATASET_FIXED 1
|
||||
_ACEOF
|
||||
|
||||
;;
|
||||
no)
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# The following sets up how non-blocking i/o is established.
|
||||
# Sunos, cygwin and solaris 2.x (x<5) require special handling.
|
||||
@@ -29677,33 +29500,13 @@ fi
|
||||
|
||||
|
||||
#
|
||||
# Look for Docbook-XSL stylesheets. Location probably varies by system.
|
||||
# If it's not explicitly specified, guess where it might be found, based on
|
||||
# where SGML stuff lives on some systems (FreeBSD is the only one we're sure
|
||||
# of at the moment).
|
||||
# Look for Docbook-XSL stylesheets. Location probably varies by
|
||||
# system. Guessing where it might be found, based on where SGML stuff
|
||||
# lives on some systems. FreeBSD is the only one I'm sure of at the
|
||||
# moment.
|
||||
#
|
||||
{ echo "$as_me:$LINENO: checking for Docbook-XSL path" >&5
|
||||
echo $ECHO_N "checking for Docbook-XSL path... $ECHO_C" >&6; }
|
||||
|
||||
# Check whether --with-docbook-xsl was given.
|
||||
if test "${with_docbook_xsl+set}" = set; then
|
||||
withval=$with_docbook_xsl; docbook_path="$withval"
|
||||
else
|
||||
docbook_path="auto"
|
||||
fi
|
||||
|
||||
case "$docbook_path" in
|
||||
auto)
|
||||
{ echo "$as_me:$LINENO: result: auto" >&5
|
||||
echo "${ECHO_T}auto" >&6; }
|
||||
docbook_xsl_trees="/usr/pkg/share/xsl/docbook /usr/local/share/xsl/docbook /usr/share/xsl/docbook"
|
||||
;;
|
||||
*)
|
||||
docbook_xsl_trees="$withval"
|
||||
{ echo "$as_me:$LINENO: result: $docbook_xsl_trees" >&5
|
||||
echo "${ECHO_T}$docbook_xsl_trees" >&6; }
|
||||
;;
|
||||
esac
|
||||
docbook_xsl_trees="/usr/pkg/share/xsl /usr/local/share/xsl /usr/share/xsl"
|
||||
|
||||
#
|
||||
# Look for stylesheets we need.
|
||||
@@ -29711,11 +29514,11 @@ esac
|
||||
|
||||
|
||||
XSLT_DOCBOOK_STYLE_HTML=""
|
||||
{ echo "$as_me:$LINENO: checking for html/docbook.xsl" >&5
|
||||
echo $ECHO_N "checking for html/docbook.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/html/docbook.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/html/docbook.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/html/docbook.xsl
|
||||
f=$d/docbook/html/docbook.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_STYLE_HTML=$f
|
||||
@@ -29728,17 +29531,17 @@ if test "X$XSLT_DOCBOOK_STYLE_HTML" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_STYLE_HTML=html/docbook.xsl
|
||||
XSLT_DOCBOOK_STYLE_HTML=docbook/html/docbook.xsl
|
||||
fi
|
||||
|
||||
|
||||
|
||||
XSLT_DOCBOOK_STYLE_XHTML=""
|
||||
{ echo "$as_me:$LINENO: checking for xhtml/docbook.xsl" >&5
|
||||
echo $ECHO_N "checking for xhtml/docbook.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/xhtml/docbook.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/xhtml/docbook.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/xhtml/docbook.xsl
|
||||
f=$d/docbook/xhtml/docbook.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_STYLE_XHTML=$f
|
||||
@@ -29751,17 +29554,17 @@ if test "X$XSLT_DOCBOOK_STYLE_XHTML" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_STYLE_XHTML=xhtml/docbook.xsl
|
||||
XSLT_DOCBOOK_STYLE_XHTML=docbook/xhtml/docbook.xsl
|
||||
fi
|
||||
|
||||
|
||||
|
||||
XSLT_DOCBOOK_STYLE_MAN=""
|
||||
{ echo "$as_me:$LINENO: checking for manpages/docbook.xsl" >&5
|
||||
echo $ECHO_N "checking for manpages/docbook.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/manpages/docbook.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/manpages/docbook.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/manpages/docbook.xsl
|
||||
f=$d/docbook/manpages/docbook.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_STYLE_MAN=$f
|
||||
@@ -29774,17 +29577,17 @@ if test "X$XSLT_DOCBOOK_STYLE_MAN" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_STYLE_MAN=manpages/docbook.xsl
|
||||
XSLT_DOCBOOK_STYLE_MAN=docbook/manpages/docbook.xsl
|
||||
fi
|
||||
|
||||
|
||||
|
||||
XSLT_DOCBOOK_CHUNK_HTML=""
|
||||
{ echo "$as_me:$LINENO: checking for html/chunk.xsl" >&5
|
||||
echo $ECHO_N "checking for html/chunk.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/html/chunk.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/html/chunk.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/html/chunk.xsl
|
||||
f=$d/docbook/html/chunk.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_CHUNK_HTML=$f
|
||||
@@ -29797,17 +29600,17 @@ if test "X$XSLT_DOCBOOK_CHUNK_HTML" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_CHUNK_HTML=html/chunk.xsl
|
||||
XSLT_DOCBOOK_CHUNK_HTML=docbook/html/chunk.xsl
|
||||
fi
|
||||
|
||||
|
||||
|
||||
XSLT_DOCBOOK_CHUNK_XHTML=""
|
||||
{ echo "$as_me:$LINENO: checking for xhtml/chunk.xsl" >&5
|
||||
echo $ECHO_N "checking for xhtml/chunk.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/xhtml/chunk.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/xhtml/chunk.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/xhtml/chunk.xsl
|
||||
f=$d/docbook/xhtml/chunk.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_CHUNK_XHTML=$f
|
||||
@@ -29820,17 +29623,17 @@ if test "X$XSLT_DOCBOOK_CHUNK_XHTML" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_CHUNK_XHTML=xhtml/chunk.xsl
|
||||
XSLT_DOCBOOK_CHUNK_XHTML=docbook/xhtml/chunk.xsl
|
||||
fi
|
||||
|
||||
|
||||
|
||||
XSLT_DOCBOOK_CHUNKTOC_HTML=""
|
||||
{ echo "$as_me:$LINENO: checking for html/chunktoc.xsl" >&5
|
||||
echo $ECHO_N "checking for html/chunktoc.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/html/chunktoc.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/html/chunktoc.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/html/chunktoc.xsl
|
||||
f=$d/docbook/html/chunktoc.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_CHUNKTOC_HTML=$f
|
||||
@@ -29843,17 +29646,17 @@ if test "X$XSLT_DOCBOOK_CHUNKTOC_HTML" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_CHUNKTOC_HTML=html/chunktoc.xsl
|
||||
XSLT_DOCBOOK_CHUNKTOC_HTML=docbook/html/chunktoc.xsl
|
||||
fi
|
||||
|
||||
|
||||
|
||||
XSLT_DOCBOOK_CHUNKTOC_XHTML=""
|
||||
{ echo "$as_me:$LINENO: checking for xhtml/chunktoc.xsl" >&5
|
||||
echo $ECHO_N "checking for xhtml/chunktoc.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/xhtml/chunktoc.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/xhtml/chunktoc.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/xhtml/chunktoc.xsl
|
||||
f=$d/docbook/xhtml/chunktoc.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_CHUNKTOC_XHTML=$f
|
||||
@@ -29866,17 +29669,17 @@ if test "X$XSLT_DOCBOOK_CHUNKTOC_XHTML" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_CHUNKTOC_XHTML=xhtml/chunktoc.xsl
|
||||
XSLT_DOCBOOK_CHUNKTOC_XHTML=docbook/xhtml/chunktoc.xsl
|
||||
fi
|
||||
|
||||
|
||||
|
||||
XSLT_DOCBOOK_MAKETOC_HTML=""
|
||||
{ echo "$as_me:$LINENO: checking for html/maketoc.xsl" >&5
|
||||
echo $ECHO_N "checking for html/maketoc.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/html/maketoc.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/html/maketoc.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/html/maketoc.xsl
|
||||
f=$d/docbook/html/maketoc.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_MAKETOC_HTML=$f
|
||||
@@ -29889,17 +29692,17 @@ if test "X$XSLT_DOCBOOK_MAKETOC_HTML" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_MAKETOC_HTML=html/maketoc.xsl
|
||||
XSLT_DOCBOOK_MAKETOC_HTML=docbook/html/maketoc.xsl
|
||||
fi
|
||||
|
||||
|
||||
|
||||
XSLT_DOCBOOK_MAKETOC_XHTML=""
|
||||
{ echo "$as_me:$LINENO: checking for xhtml/maketoc.xsl" >&5
|
||||
echo $ECHO_N "checking for xhtml/maketoc.xsl... $ECHO_C" >&6; }
|
||||
{ echo "$as_me:$LINENO: checking for docbook/xhtml/maketoc.xsl" >&5
|
||||
echo $ECHO_N "checking for docbook/xhtml/maketoc.xsl... $ECHO_C" >&6; }
|
||||
for d in $docbook_xsl_trees
|
||||
do
|
||||
f=$d/xhtml/maketoc.xsl
|
||||
f=$d/docbook/xhtml/maketoc.xsl
|
||||
if test -f $f
|
||||
then
|
||||
XSLT_DOCBOOK_MAKETOC_XHTML=$f
|
||||
@@ -29912,7 +29715,7 @@ if test "X$XSLT_DOCBOOK_MAKETOC_XHTML" = "X"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: result: \"not found\"" >&5
|
||||
echo "${ECHO_T}\"not found\"" >&6; };
|
||||
XSLT_DOCBOOK_MAKETOC_XHTML=xhtml/maketoc.xsl
|
||||
XSLT_DOCBOOK_MAKETOC_XHTML=docbook/xhtml/maketoc.xsl
|
||||
fi
|
||||
|
||||
|
||||
@@ -30565,8 +30368,6 @@ else
|
||||
fi
|
||||
|
||||
|
||||
mysql_include=""
|
||||
mysql_lib=""
|
||||
if test "$use_dlz_mysql" = "yes"
|
||||
then
|
||||
# User did not specify a path - guess it
|
||||
@@ -30576,49 +30377,9 @@ then
|
||||
if test -f $d/include/mysql/mysql.h
|
||||
then
|
||||
use_dlz_mysql=$d
|
||||
mysql_include=$d/include/mysql
|
||||
if test -d $d/lib/mysql
|
||||
then
|
||||
mysql_lib=$d/lib/mysql
|
||||
else
|
||||
mysql_lib=$d/lib
|
||||
fi
|
||||
break
|
||||
elif test -f $d/include/mysql.h
|
||||
then
|
||||
use_dlz_mysql=$d
|
||||
mysql_include=$d/include
|
||||
if test -d $d/lib/mysql
|
||||
then
|
||||
mysql_lib=$d/lib/mysql
|
||||
else
|
||||
mysql_lib=$d/lib
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
elif test "$use_dlz_mysql" != "no"
|
||||
then
|
||||
d=$use_dlz_mysql
|
||||
if test -f $d/include/mysql/mysql.h
|
||||
then
|
||||
mysql_include=$d/include/mysql
|
||||
if test -d $d/lib/mysql
|
||||
then
|
||||
mysql_lib=$d/lib/mysql
|
||||
else
|
||||
mysql_lib=$d/lib
|
||||
fi
|
||||
elif test -f $d/include/mysql.h
|
||||
then
|
||||
mysql_include=$d/include
|
||||
if test -d $d/lib/mysql
|
||||
then
|
||||
mysql_lib=$d/lib/mysql
|
||||
else
|
||||
mysql_lib=$d/lib
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$use_dlz_mysql" = "yes"
|
||||
@@ -30643,18 +30404,18 @@ echo "${ECHO_T}no" >&6; }
|
||||
DLZ_DRIVER_SRCS="$DLZ_DRIVER_SRCS $dlzdir/$i.c"
|
||||
DLZ_DRIVER_OBJS="$DLZ_DRIVER_OBJS $i.$O"
|
||||
done
|
||||
if test -n "-I${mysql_include}"
|
||||
if test -n "-I$use_dlz_mysql/include/mysql"
|
||||
then
|
||||
DLZ_DRIVER_INCLUDES="$DLZ_DRIVER_INCLUDES -I${mysql_include}"
|
||||
DLZ_DRIVER_INCLUDES="$DLZ_DRIVER_INCLUDES -I$use_dlz_mysql/include/mysql"
|
||||
fi
|
||||
if test -n "-L${mysql_lib} -lmysqlclient -lz -lcrypt -lm"
|
||||
if test -n "-L$use_dlz_mysql/lib/mysql -lmysqlclient -lz -lcrypt -lm"
|
||||
then
|
||||
DLZ_DRIVER_LIBS="$DLZ_DRIVER_LIBS -L${mysql_lib} -lmysqlclient -lz -lcrypt -lm"
|
||||
DLZ_DRIVER_LIBS="$DLZ_DRIVER_LIBS -L$use_dlz_mysql/lib/mysql -lmysqlclient -lz -lcrypt -lm"
|
||||
fi
|
||||
|
||||
|
||||
{ echo "$as_me:$LINENO: result: using mysql from ${mysql_lib} and ${mysql_include}" >&5
|
||||
echo "${ECHO_T}using mysql from ${mysql_lib} and ${mysql_include}" >&6; }
|
||||
{ echo "$as_me:$LINENO: result: using mysql from $use_dlz_mysql/lib/mysql and $use_dlz_mysql/include/mysql" >&5
|
||||
echo "${ECHO_T}using mysql from $use_dlz_mysql/lib/mysql and $use_dlz_mysql/include/mysql" >&6; }
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -32207,7 +31968,6 @@ ISC_PLATFORM_BRACEPTHREADONCEINIT!$ISC_PLATFORM_BRACEPTHREADONCEINIT$ac_delim
|
||||
ISC_PLATFORM_HAVESTRINGSH!$ISC_PLATFORM_HAVESTRINGSH$ac_delim
|
||||
ISC_PLATFORM_HAVEIFNAMETOINDEX!$ISC_PLATFORM_HAVEIFNAMETOINDEX$ac_delim
|
||||
ISC_PLATFORM_HAVEXADD!$ISC_PLATFORM_HAVEXADD$ac_delim
|
||||
ISC_PLATFORM_HAVEXADDQ!$ISC_PLATFORM_HAVEXADDQ$ac_delim
|
||||
ISC_PLATFORM_HAVECMPXCHG!$ISC_PLATFORM_HAVECMPXCHG$ac_delim
|
||||
ISC_PLATFORM_HAVEATOMICSTORE!$ISC_PLATFORM_HAVEATOMICSTORE$ac_delim
|
||||
ISC_PLATFORM_USEGCCASM!$ISC_PLATFORM_USEGCCASM$ac_delim
|
||||
@@ -32256,7 +32016,7 @@ LIBOBJS!$LIBOBJS$ac_delim
|
||||
LTLIBOBJS!$LTLIBOBJS$ac_delim
|
||||
_ACEOF
|
||||
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 60; then
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 59; then
|
||||
break
|
||||
elif $ac_last_try; then
|
||||
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
|
||||
|
||||
+19
-69
@@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
# Copyright (C) 1998-2003 Internet Software Consortium.
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
@@ -18,7 +18,7 @@ AC_DIVERT_PUSH(1)dnl
|
||||
esyscmd([sed "s/^/# /" COPYRIGHT])dnl
|
||||
AC_DIVERT_POP()dnl
|
||||
|
||||
AC_REVISION($Revision: 1.432.60.9 $)
|
||||
AC_REVISION($Revision: 1.432 $)
|
||||
|
||||
AC_INIT(lib/dns/name.c)
|
||||
AC_PREREQ(2.59)
|
||||
@@ -245,7 +245,6 @@ AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/param
|
||||
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_C_VOLATILE
|
||||
AC_CHECK_FUNC(sysctlbyname, AC_DEFINE(HAVE_SYSCTLBYNAME))
|
||||
|
||||
#
|
||||
@@ -1097,14 +1096,6 @@ AC_SUBST(PURIFY)
|
||||
#
|
||||
# GNU libtool support
|
||||
#
|
||||
case $host in
|
||||
sunos*)
|
||||
# Just set the maximum command line length for sunos as it otherwise
|
||||
# takes a exceptionally long time to work it out. Required for libtool.
|
||||
lt_cv_sys_max_cmd_len=4096;
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_ARG_WITH(libtool,
|
||||
[ --with-libtool use GNU libtool (following indented options supported)],
|
||||
use_libtool="$withval", use_libtool="no")
|
||||
@@ -1883,8 +1874,7 @@ AC_ARG_ENABLE(linux-caps,
|
||||
[ --disable-linux-caps disable linux capabilities])
|
||||
case "$enable_linux_caps" in
|
||||
yes|'')
|
||||
AC_CHECK_HEADERS(linux/capability.h sys/capability.h)
|
||||
AC_CHECK_LIB(cap, cap_set_proc)
|
||||
AC_CHECK_HEADERS(linux/capability.h)
|
||||
;;
|
||||
no)
|
||||
;;
|
||||
@@ -2132,13 +2122,11 @@ main() {
|
||||
exit((sizeof(void *) == 8) ? 0 : 1);
|
||||
}
|
||||
],
|
||||
[arch=x86_64
|
||||
have_xaddq=yes],
|
||||
[arch=x86_64],
|
||||
[arch=x86_32],
|
||||
[arch=x86_32])
|
||||
;;
|
||||
x86_64-*)
|
||||
have_xaddq=yes
|
||||
arch=x86_64
|
||||
;;
|
||||
alpha*-*)
|
||||
@@ -2243,14 +2231,7 @@ else
|
||||
ISC_PLATFORM_HAVEATOMICSTORE="#undef ISC_PLATFORM_HAVEATOMICSTORE"
|
||||
fi
|
||||
|
||||
if test "$have_xaddq" = "yes"; then
|
||||
ISC_PLATFORM_HAVEXADDQ="#define ISC_PLATFORM_HAVEXADDQ 1"
|
||||
else
|
||||
ISC_PLATFORM_HAVEXADDQ="#undef ISC_PLATFORM_HAVEXADDQ"
|
||||
fi
|
||||
|
||||
AC_SUBST(ISC_PLATFORM_HAVEXADD)
|
||||
AC_SUBST(ISC_PLATFORM_HAVEXADDQ)
|
||||
AC_SUBST(ISC_PLATFORM_HAVECMPXCHG)
|
||||
AC_SUBST(ISC_PLATFORM_HAVEATOMICSTORE)
|
||||
|
||||
@@ -2262,25 +2243,6 @@ AC_SUBST(ISC_PLATFORM_USEMACASM)
|
||||
ISC_ARCH_DIR=$arch
|
||||
AC_SUBST(ISC_ARCH_DIR)
|
||||
|
||||
#
|
||||
# Activate "rrset-order fixed" or not?
|
||||
#
|
||||
AC_ARG_ENABLE(fixed-rrset,
|
||||
[ --enable-fixed-rrset enable fixed rrset ordering
|
||||
[[default=no]]],
|
||||
enable_fixed="$enableval",
|
||||
enable_fixed="no")
|
||||
case "$enable_fixed" in
|
||||
yes)
|
||||
AC_DEFINE(DNS_RDATASET_FIXED, 1,
|
||||
[Define to enable "rrset-order fixed" syntax.])
|
||||
;;
|
||||
no)
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# The following sets up how non-blocking i/o is established.
|
||||
# Sunos, cygwin and solaris 2.x (x<5) require special handling.
|
||||
@@ -2386,39 +2348,27 @@ AC_SUBST($1)
|
||||
])
|
||||
|
||||
#
|
||||
# Look for Docbook-XSL stylesheets. Location probably varies by system.
|
||||
# If it's not explicitly specified, guess where it might be found, based on
|
||||
# where SGML stuff lives on some systems (FreeBSD is the only one we're sure
|
||||
# of at the moment).
|
||||
# Look for Docbook-XSL stylesheets. Location probably varies by
|
||||
# system. Guessing where it might be found, based on where SGML stuff
|
||||
# lives on some systems. FreeBSD is the only one I'm sure of at the
|
||||
# moment.
|
||||
#
|
||||
AC_MSG_CHECKING(for Docbook-XSL path)
|
||||
AC_ARG_WITH(docbook-xsl,
|
||||
[ --with-docbook-xsl=PATH Specify path for Docbook-XSL stylesheets],
|
||||
docbook_path="$withval", docbook_path="auto")
|
||||
case "$docbook_path" in
|
||||
auto)
|
||||
AC_MSG_RESULT(auto)
|
||||
docbook_xsl_trees="/usr/pkg/share/xsl/docbook /usr/local/share/xsl/docbook /usr/share/xsl/docbook"
|
||||
;;
|
||||
*)
|
||||
docbook_xsl_trees="$withval"
|
||||
AC_MSG_RESULT($docbook_xsl_trees)
|
||||
;;
|
||||
esac
|
||||
|
||||
docbook_xsl_trees="/usr/pkg/share/xsl /usr/local/share/xsl /usr/share/xsl"
|
||||
|
||||
#
|
||||
# Look for stylesheets we need.
|
||||
#
|
||||
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_HTML, html/docbook.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_XHTML, xhtml/docbook.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_MAN, manpages/docbook.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_HTML, html/chunk.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_XHTML, xhtml/chunk.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_HTML, html/chunktoc.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_XHTML, xhtml/chunktoc.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_HTML, html/maketoc.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_XHTML, xhtml/maketoc.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_HTML, docbook/html/docbook.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_XHTML, docbook/xhtml/docbook.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_STYLE_MAN, docbook/manpages/docbook.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_HTML, docbook/html/chunk.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNK_XHTML, docbook/xhtml/chunk.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_HTML, docbook/html/chunktoc.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_CHUNKTOC_XHTML, docbook/xhtml/chunktoc.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_HTML, docbook/html/maketoc.xsl, $docbook_xsl_trees)
|
||||
NOM_PATH_FILE(XSLT_DOCBOOK_MAKETOC_XHTML, docbook/xhtml/maketoc.xsl, $docbook_xsl_trees)
|
||||
|
||||
#
|
||||
# Same dance for db2latex
|
||||
|
||||
+3
-21
@@ -167,9 +167,6 @@ dbus_mgr_init_dbus(ns_dbus_mgr_t *);
|
||||
static isc_result_t
|
||||
dbus_mgr_record_initial_fwdtable(ns_dbus_mgr_t *);
|
||||
|
||||
static
|
||||
dns_fwdtable_t *dbus_mgr_get_fwdtable(void);
|
||||
|
||||
static void
|
||||
dbus_mgr_free_initial_fwdtable(ns_dbus_mgr_t *);
|
||||
|
||||
@@ -275,8 +272,6 @@ dbus_mgr_create
|
||||
return ISC_R_SUCCESS;
|
||||
|
||||
cleanup_mgr:
|
||||
if ( dbus_mgr_get_fwdtable() != NULL)
|
||||
dbus_mgr_free_initial_fwdtable (mgr);
|
||||
if( mgr->task != 0L )
|
||||
isc_task_detach(&(mgr->task));
|
||||
isc_mem_put(mctx, mgr, sizeof(*mgr));
|
||||
@@ -628,7 +623,7 @@ static void dbus_mgr_record_initial_forwarder( dns_name_t *name, dns_forwarders_
|
||||
|
||||
dns_name_init(&(ifwdr->dn), NULL);
|
||||
if( dns_name_dupwithoffsets(name, mgr->mctx, &(ifwdr->dn)) != ISC_R_SUCCESS )
|
||||
goto namedup_err;
|
||||
return;
|
||||
|
||||
ISC_LIST_INIT(ifwdr->sa);
|
||||
|
||||
@@ -639,27 +634,14 @@ static void dbus_mgr_record_initial_forwarder( dns_name_t *name, dns_forwarders_
|
||||
{
|
||||
nsa = isc_mem_get(mgr->mctx, sizeof(isc_sockaddr_t));
|
||||
if( nsa == 0L )
|
||||
goto nsa_err;
|
||||
return;
|
||||
*nsa = *sa;
|
||||
ISC_LINK_INIT(nsa, link);
|
||||
ISC_LIST_APPEND(ifwdr->sa, nsa, link);
|
||||
}
|
||||
ISC_LINK_INIT(ifwdr, link);
|
||||
tsearch( ifwdr, &(mgr->ifwdt), dbus_mgr_ifwdr_comparator);
|
||||
|
||||
return;
|
||||
|
||||
nsa_err:
|
||||
while ( (sa = ISC_LIST_HEAD (ifwdr->sa)) != NULL) {
|
||||
ISC_LIST_UNLINK (ifwdr->sa, sa, link);
|
||||
isc_mem_put (mgr->mctx, sa, sizeof (*sa));
|
||||
}
|
||||
|
||||
namedup_err:
|
||||
isc_mem_put (mgr->mctx, ifwdr, sizeof (*ifwdr));
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
dbus_mgr_record_initial_fwdtable( ns_dbus_mgr_t *mgr )
|
||||
|
||||
@@ -200,7 +200,6 @@ dbus_svc_add_filter
|
||||
}
|
||||
}
|
||||
}
|
||||
va_end(va);
|
||||
return( 1 );
|
||||
}
|
||||
|
||||
@@ -425,7 +424,6 @@ dbus_svc_message_append_args(DBusConnectionState *cs, dbus_svc_MessageHandle msg
|
||||
if( !dbus_message_append_args_valist( msg, firstType, va ) )
|
||||
{
|
||||
if( cs->eh != 0L ) (*(cs->eh))("dbus_svc_send: dbus_message_append_args failed");
|
||||
va_end(va);
|
||||
return 0;
|
||||
}
|
||||
va_end(va);
|
||||
@@ -490,7 +488,6 @@ dbus_svc_call
|
||||
va_end(va);
|
||||
return(0L);
|
||||
}
|
||||
va_end(va);
|
||||
return reply;
|
||||
}
|
||||
|
||||
|
||||
@@ -123,8 +123,6 @@ AC_ARG_WITH(dlz_mysql,
|
||||
(Required to use MySQL with DLZ)],
|
||||
use_dlz_mysql="$withval", use_dlz_mysql="no")
|
||||
|
||||
mysql_include=""
|
||||
mysql_lib=""
|
||||
if test "$use_dlz_mysql" = "yes"
|
||||
then
|
||||
# User did not specify a path - guess it
|
||||
@@ -134,49 +132,9 @@ then
|
||||
if test -f $d/include/mysql/mysql.h
|
||||
then
|
||||
use_dlz_mysql=$d
|
||||
mysql_include=$d/include/mysql
|
||||
if test -d $d/lib/mysql
|
||||
then
|
||||
mysql_lib=$d/lib/mysql
|
||||
else
|
||||
mysql_lib=$d/lib
|
||||
fi
|
||||
break
|
||||
elif test -f $d/include/mysql.h
|
||||
then
|
||||
use_dlz_mysql=$d
|
||||
mysql_include=$d/include
|
||||
if test -d $d/lib/mysql
|
||||
then
|
||||
mysql_lib=$d/lib/mysql
|
||||
else
|
||||
mysql_lib=$d/lib
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
elif test "$use_dlz_mysql" != "no"
|
||||
then
|
||||
d=$use_dlz_mysql
|
||||
if test -f $d/include/mysql/mysql.h
|
||||
then
|
||||
mysql_include=$d/include/mysql
|
||||
if test -d $d/lib/mysql
|
||||
then
|
||||
mysql_lib=$d/lib/mysql
|
||||
else
|
||||
mysql_lib=$d/lib
|
||||
fi
|
||||
elif test -f $d/include/mysql.h
|
||||
then
|
||||
mysql_include=$d/include
|
||||
if test -d $d/lib/mysql
|
||||
then
|
||||
mysql_lib=$d/lib/mysql
|
||||
else
|
||||
mysql_lib=$d/lib
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$use_dlz_mysql" = "yes"
|
||||
@@ -192,11 +150,11 @@ case "$use_dlz_mysql" in
|
||||
;;
|
||||
*)
|
||||
DLZ_ADD_DRIVER(MYSQL, dlz_mysql_driver,
|
||||
[-I${mysql_include}],
|
||||
[-L${mysql_lib} -lmysqlclient -lz -lcrypt -lm])
|
||||
[-I$use_dlz_mysql/include/mysql],
|
||||
[-L$use_dlz_mysql/lib/mysql -lmysqlclient -lz -lcrypt -lm])
|
||||
|
||||
AC_MSG_RESULT(
|
||||
[using mysql from ${mysql_lib} and ${mysql_include}])
|
||||
[using mysql from $use_dlz_mysql/lib/mysql and $use_dlz_mysql/include/mysql])
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
The following machines, at least today seem to have LOC
|
||||
records:
|
||||
|
||||
*.cpod.fr (for instance www.cpod.fr)
|
||||
130.104.3.*
|
||||
195.202.193.*
|
||||
Melanie.Tolna.Net
|
||||
204.92.254.*
|
||||
mail.vitts.com
|
||||
alink.net
|
||||
caida.org
|
||||
ckdhr.com
|
||||
distributed.net (rc5stats.distributed.net)
|
||||
nikhef.nl
|
||||
yahoo.com
|
||||
nic.af
|
||||
|
||||
$Id: ADDRESSES,v 1.1 2005/04/01 05:34:59 marka Exp $
|
||||
@@ -0,0 +1,48 @@
|
||||
Just for info, can be out of date.
|
||||
|
||||
|
||||
RFC 1876, 5.2, specially 5.2.3
|
||||
|
||||
Important points:
|
||||
|
||||
- LOC RRs are always attached to a *name*.
|
||||
- we can have two (or more) RRs for one address, one more specific than the other
|
||||
|
||||
main
|
||||
if (host is a name)
|
||||
getLOCbyname
|
||||
else # host is an IP address
|
||||
gethostbyaddr
|
||||
if (name)
|
||||
getLOCbyname
|
||||
# If there is none, do not search. We assume the above was sufficient # (But check 5.2.2)
|
||||
else
|
||||
getLOCbyaddress
|
||||
|
||||
getLOCbyname (host)
|
||||
get LOC for host
|
||||
if (it exists)
|
||||
OK
|
||||
else
|
||||
get all A records of the name
|
||||
foreach A record
|
||||
getLOCbyaddress
|
||||
OK at the first one found
|
||||
# we assume they are consistent
|
||||
END
|
||||
|
||||
getLOCbyaddress (address)
|
||||
# May receive a mask. Otherwise, deduce it from the class
|
||||
makeNetAddress
|
||||
getLOCbynetwork
|
||||
|
||||
getLOCbynetwork
|
||||
get PTR and A for it
|
||||
if (exist)
|
||||
getLOCbyname
|
||||
******* DIFFICULT : we have to manage a stack. See the code
|
||||
makeNetAddress (level--)
|
||||
getLOCbynetwork
|
||||
else
|
||||
END
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Type './configure', then 'make' and (as root if necessary) 'make
|
||||
install'.
|
||||
|
||||
It requires a recent libresolv, with loc_ntoa, but use an alternative
|
||||
which I provide, if not found.
|
||||
|
||||
Tested on Linux (i386 and Alpha), Solaris (Sparc) and Digital Unix (Alpha).
|
||||
|
||||
$Id: INSTALL,v 1.1 2005/04/01 05:34:59 marka Exp $
|
||||
@@ -0,0 +1,40 @@
|
||||
# $Id: Makefile.in,v 1.1 2005/04/01 05:34:59 marka Exp $
|
||||
CC=@CC@
|
||||
CFLAGS=@CFLAGS@
|
||||
LIBS=@LIBS@
|
||||
DESTDIR=@prefix@
|
||||
BINDIR=@prefix@/bin
|
||||
MANDIR=@prefix@/share/man/man1
|
||||
DISTRIB= README INSTALL ALGO USAGE ADDRESSES Makefile.in configure configure.in config.h.in install-sh loc.h loc.c query-loc.c loc_ntoa.c query-loc.1
|
||||
OBJS=query-loc.o loc.o @LOC_NTOA@
|
||||
VERSION=`grep VERSION loc.h | cut -d ' ' -f 3 | sed s/\"//g`
|
||||
|
||||
all: query-loc
|
||||
|
||||
query-loc: $(OBJS)
|
||||
$(CC) -o $@ $(OBJS) $(LIBS)
|
||||
|
||||
%.o: %.c loc.h
|
||||
$(CC) $(CFLAGS) -c $<
|
||||
|
||||
clean:
|
||||
rm -f *.o query-loc *~
|
||||
|
||||
distclean: clean
|
||||
rm -f config.h config.cache config.log config.status Makefile
|
||||
|
||||
distrib: clean
|
||||
./reconf
|
||||
@(echo Query-Loc is version ${VERSION}; \
|
||||
mkdir query-loc-${VERSION}; \
|
||||
cp $(DISTRIB) query-loc-${VERSION};\
|
||||
tar cvf query-loc-${VERSION}.tar query-loc-${VERSION}; \
|
||||
rm -rf query-loc-${VERSION}; \
|
||||
gzip -v -9 -f query-loc-${VERSION}.tar);
|
||||
|
||||
install:
|
||||
@INSTALL@ -m 0755 query-loc $(BINDIR)
|
||||
if [ ! -d $(MANDIR) ]; then \
|
||||
mkdir $(MANDIR); \
|
||||
fi
|
||||
@INSTALL@ -m 0644 query-loc.1 $(MANDIR)
|
||||
@@ -0,0 +1,20 @@
|
||||
query-loc: a program to retrieve and display the location
|
||||
information in the DNS.
|
||||
|
||||
It uses the algorithms described in
|
||||
RFC 1876 (and RFC 1101 to get the network names).
|
||||
You can find examples of networks wchich implement this scheme
|
||||
in the ADDRESSES file.
|
||||
|
||||
It is under the General Public Licence (GPL, which
|
||||
you can fetch from <http://www.gnu.org/copyleft/gpl.html>.
|
||||
|
||||
Copyright Stéphane Bortzmeyer <bortzmeyer@debian.org>, 1998.
|
||||
|
||||
Thanks to Paul Vixie for the RFC and its encouragements. Thanks
|
||||
to Björn Augustsson for the xtraceroute program
|
||||
<http://www.dtek.chalmers.se/~d3august/xt/>.
|
||||
|
||||
$Id: README,v 1.1 2005/04/01 05:34:59 marka Exp $
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
query-loc [-v] [-d nnn] host-name-or-address
|
||||
|
||||
Examples of hosts with LOCation info (quite uncommon, if you know more,
|
||||
please tell me):
|
||||
|
||||
- Everything in the 193.105.79.0 network, such as www.humanite.presse.fr
|
||||
- Everything in the 192.88.144 network, such as www.kei.com
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
/* config.h.in. Generated from configure.in by autoheader. */
|
||||
/* $Id: config.h.in,v 1.1 2005/04/01 05:35:00 marka Exp $ */
|
||||
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `resolv' library (-lresolv). */
|
||||
#undef HAVE_LIBRESOLV
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* The size of a `char', as computed by sizeof. */
|
||||
#undef SIZEOF_CHAR
|
||||
|
||||
/* The size of a `int', as computed by sizeof. */
|
||||
#undef SIZEOF_INT
|
||||
|
||||
/* The size of a `long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG
|
||||
|
||||
/* The size of a `short', as computed by sizeof. */
|
||||
#undef SIZEOF_SHORT
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Is there a loc_ntoa on this system? */
|
||||
#undef HAVE_LOC_NTOA
|
||||
+6436
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,65 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_RELEASE("$Id: configure.in,v 1.1 2005/04/01 05:35:00 marka Exp $")
|
||||
AC_INIT(query-loc.c)
|
||||
|
||||
dnl Checks for programs.
|
||||
AC_PROG_CC
|
||||
if test "$GCC" = "yes"; then
|
||||
CFLAGS="${CFLAGS} -Wall"
|
||||
fi
|
||||
AC_PROG_INSTALL
|
||||
|
||||
dnl Checks for libraries.
|
||||
AC_CHECK_LIB(resolv, res_query)
|
||||
|
||||
dnl Checks for header files.
|
||||
AC_HEADER_STDC
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
AC_CHECK_HEADER(resolv.h, , AC_MSG_ERROR("No headers for name service applications"))
|
||||
AC_CHECK_HEADER(arpa/nameser.h, , AC_MSG_ERROR("No headers for name service applications"))
|
||||
AC_CHECK_HEADER(sys/time.h, , AC_MSG_ERROR("Mandatory header missing on your system"))
|
||||
AC_CHECK_HEADER(unistd.h, , AC_MSG_ERROR("Mandatory header missing on your system"))
|
||||
|
||||
|
||||
dnl This one is only useful for Solaris?
|
||||
AC_MSG_CHECKING(if libnsl is mandatory)
|
||||
AC_TRY_LINK([#include <sys/types.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/nameser.h>
|
||||
#include <resolv.h>
|
||||
union
|
||||
{
|
||||
HEADER hdr;
|
||||
u_char buf[4096]; /* With RFC 2671, otherwise 512 is enough */
|
||||
}
|
||||
response;
|
||||
char *domain;
|
||||
int requested_type; ],
|
||||
[res_query(domain,
|
||||
C_IN,
|
||||
requested_type,
|
||||
(u_char *) & response,
|
||||
sizeof (response)) ], dnl
|
||||
[AC_MSG_RESULT(no)], dnl
|
||||
[AC_MSG_RESULT(yes); LIBS="${LIBS} -lnsl"])
|
||||
|
||||
dnl Check for the loc_ntoa macro/function
|
||||
AC_MSG_CHECKING(loc_ntoa)
|
||||
AC_TRY_LINK([#include <resolv.h>], dnl
|
||||
[u_char *cp; char *result; loc_ntoa(cp, result)], dnl
|
||||
[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_LOC_NTOA)], dnl
|
||||
[AC_MSG_RESULT([no, using the alternative]); LOC_NTOA=loc_ntoa.o])
|
||||
AC_SUBST(LOC_NTOA)
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_CHECK_SIZEOF(long)
|
||||
AC_CHECK_SIZEOF(int)
|
||||
AC_CHECK_SIZEOF(short)
|
||||
AC_CHECK_SIZEOF(char)
|
||||
|
||||
dnl Misc.
|
||||
AC_OUTPUT(Makefile)
|
||||
|
||||
|
||||
|
||||
Executable
+251
@@ -0,0 +1,251 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||
#
|
||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||
# documentation for any purpose is hereby granted without fee, provided that
|
||||
# the above copyright notice appear in all copies and that both that
|
||||
# copyright notice and this permission notice appear in supporting
|
||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||
# publicity pertaining to distribution of the software without specific,
|
||||
# written prior permission. M.I.T. makes no representations about the
|
||||
# suitability of this software for any purpose. It is provided "as is"
|
||||
# without express or implied warranty.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=""
|
||||
transform_arg=""
|
||||
instcmd="$mvprog"
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
dir_arg=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case $1 in
|
||||
-c) instcmd="$cpprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd="$stripprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
# this colon is to work around a 386BSD /bin/sh bug
|
||||
:
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "install: no input file specified"
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]; then
|
||||
dst=$src
|
||||
src=""
|
||||
|
||||
if [ -d $dst ]; then
|
||||
instcmd=:
|
||||
chmodcmd=""
|
||||
else
|
||||
instcmd=mkdir
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
|
||||
if [ -f $src -o -d $src ]
|
||||
then
|
||||
true
|
||||
else
|
||||
echo "install: $src does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified"
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d $dst ]
|
||||
then
|
||||
dst="$dst"/`basename $src`
|
||||
else
|
||||
true
|
||||
fi
|
||||
fi
|
||||
|
||||
## this sed command emulates the dirname command
|
||||
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if [ ! -d "$dstdir" ]; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-${defaultIFS}}"
|
||||
|
||||
oIFS="${IFS}"
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS="${oIFS}"
|
||||
|
||||
pathcomp=''
|
||||
|
||||
while [ $# -ne 0 ] ; do
|
||||
pathcomp="${pathcomp}${1}"
|
||||
shift
|
||||
|
||||
if [ ! -d "${pathcomp}" ] ;
|
||||
then
|
||||
$mkdirprog "${pathcomp}"
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
pathcomp="${pathcomp}/"
|
||||
done
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]
|
||||
then
|
||||
$doit $instcmd $dst &&
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
||||
else
|
||||
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
|
||||
if [ x"$transformarg" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
dstfile=`basename $dst $transformbasename |
|
||||
sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename
|
||||
|
||||
if [ x"$dstfile" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# Make a temp file name in the proper directory.
|
||||
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd $src $dsttmp &&
|
||||
|
||||
trap "rm -f ${dsttmp}" 0 &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $rmcmd -f $dstdir/$dstfile &&
|
||||
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
||||
|
||||
fi &&
|
||||
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,566 @@
|
||||
#include "loc.h"
|
||||
|
||||
/* $Id: loc.c,v 1.1 2005/04/01 05:35:00 marka Exp $ */
|
||||
|
||||
/* Global variables */
|
||||
|
||||
short rr_errno;
|
||||
|
||||
/*
|
||||
Prints the actual usage
|
||||
*/
|
||||
void
|
||||
usage ()
|
||||
{
|
||||
(void) fprintf (stderr,
|
||||
"Usage: %s: [-v] [-d nnn] hostname\n", progname);
|
||||
exit (2);
|
||||
}
|
||||
|
||||
/*
|
||||
Panics
|
||||
*/
|
||||
void
|
||||
panic (message)
|
||||
char *message;
|
||||
{
|
||||
(void) fprintf (stderr,
|
||||
"%s: %s\n", progname, message);
|
||||
exit (2);
|
||||
}
|
||||
|
||||
/*
|
||||
** IN_ADDR_ARPA -- Convert dotted quad string to reverse in-addr.arpa
|
||||
** ------------------------------------------------------------------
|
||||
**
|
||||
** Returns:
|
||||
** Pointer to appropriate reverse in-addr.arpa name
|
||||
** with trailing dot to force absolute domain name.
|
||||
** NULL in case of invalid dotted quad input string.
|
||||
*/
|
||||
|
||||
#ifndef ARPA_ROOT
|
||||
#define ARPA_ROOT "in-addr.arpa"
|
||||
#endif
|
||||
|
||||
char *
|
||||
in_addr_arpa (dottedquad)
|
||||
char *dottedquad; /* input string with dotted quad */
|
||||
{
|
||||
static char addrbuf[4 * 4 + sizeof (ARPA_ROOT) + 2];
|
||||
unsigned int a[4];
|
||||
register int n;
|
||||
|
||||
n = sscanf (dottedquad, "%u.%u.%u.%u", &a[0], &a[1], &a[2], &a[3]);
|
||||
switch (n)
|
||||
{
|
||||
case 4:
|
||||
(void) sprintf (addrbuf, "%u.%u.%u.%u.%s.",
|
||||
a[3] & 0xff, a[2] & 0xff, a[1] & 0xff, a[0] & 0xff, ARPA_ROOT);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
(void) sprintf (addrbuf, "%u.%u.%u.%s.",
|
||||
a[2] & 0xff, a[1] & 0xff, a[0] & 0xff, ARPA_ROOT);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
(void) sprintf (addrbuf, "%u.%u.%s.",
|
||||
a[1] & 0xff, a[0] & 0xff, ARPA_ROOT);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
(void) sprintf (addrbuf, "%u.%s.",
|
||||
a[0] & 0xff, ARPA_ROOT);
|
||||
break;
|
||||
|
||||
default:
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
while (--n >= 0)
|
||||
if (a[n] > 255)
|
||||
return (NULL);
|
||||
|
||||
return (addrbuf);
|
||||
}
|
||||
|
||||
/*
|
||||
Returns a human-readable version of the LOC information or
|
||||
NULL if it failed. Argument is a name (of a network or a machine)
|
||||
and a boolean telling is it is a network name or a machine name.
|
||||
*/
|
||||
char *
|
||||
getlocbyname (name, is_network)
|
||||
const char *name;
|
||||
short is_network;
|
||||
{
|
||||
char *result;
|
||||
struct list_in_addr *list, *p;
|
||||
result = findRR (name, T_LOC);
|
||||
if (result != NULL)
|
||||
{
|
||||
if (debug >= 2)
|
||||
printf ("LOC record found for the name %s\n", name);
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!is_network)
|
||||
{
|
||||
list = findA (name);
|
||||
if (debug >= 2)
|
||||
printf ("No LOC record found for the name %s, trying addresses\n", name);
|
||||
if (list != NULL)
|
||||
{
|
||||
for (p = list; p != NULL; p = p->next)
|
||||
{
|
||||
if (debug >= 2)
|
||||
printf ("Trying address %s\n", inet_ntoa (p->addr));
|
||||
result = getlocbyaddr (p->addr, NULL);
|
||||
if (result != NULL)
|
||||
return result;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (debug >= 2)
|
||||
printf (" No A record found for %s\n", name);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (debug >= 2)
|
||||
printf ("No LOC record found for the network name %s\n", name);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Returns a human-readable version of the LOC information or
|
||||
NULL if it failed. Argument is an IP address.
|
||||
*/
|
||||
char *
|
||||
getlocbyaddr (addr, mask)
|
||||
const struct in_addr addr;
|
||||
const struct in_addr *mask;
|
||||
{
|
||||
struct in_addr netaddr;
|
||||
u_int32_t a;
|
||||
struct in_addr themask;
|
||||
char *text_addr, *text_mask;
|
||||
|
||||
if (mask == NULL)
|
||||
{
|
||||
themask.s_addr = (u_int32_t) 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
themask = *mask;
|
||||
}
|
||||
|
||||
text_addr = (char *) malloc (256);
|
||||
text_mask = (char *) malloc (256);
|
||||
strcpy (text_addr, inet_ntoa (addr));
|
||||
strcpy (text_mask, inet_ntoa (themask));
|
||||
|
||||
if (debug >= 2)
|
||||
printf ("Testing address %s/%s\n", text_addr, text_mask);
|
||||
if (mask == NULL)
|
||||
{
|
||||
a = ntohl (addr.s_addr);
|
||||
if (IN_CLASSA (a))
|
||||
{
|
||||
netaddr.s_addr = htonl (a & IN_CLASSA_NET);
|
||||
}
|
||||
else if (IN_CLASSB (a))
|
||||
{
|
||||
netaddr.s_addr = htonl (a & IN_CLASSB_NET);
|
||||
}
|
||||
else if (IN_CLASSC (a))
|
||||
{
|
||||
netaddr.s_addr = htonl (a & IN_CLASSC_NET);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Error */
|
||||
}
|
||||
return getlocbynet (in_addr_arpa (inet_ntoa (netaddr)), addr, mask);
|
||||
}
|
||||
else
|
||||
{
|
||||
netaddr.s_addr = addr.s_addr & themask.s_addr;
|
||||
return getlocbynet (in_addr_arpa (inet_ntoa (netaddr)), addr, mask);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Returns a human-readable LOC.
|
||||
Argument is a network name in the 0.z.y.x.in-addr.arpa format
|
||||
and the original address
|
||||
*/
|
||||
char *
|
||||
getlocbynet (name, addr, mask)
|
||||
char *name;
|
||||
struct in_addr addr;
|
||||
struct in_addr *mask;
|
||||
{
|
||||
char *network;
|
||||
char *result, *result_int;
|
||||
struct list_in_addr *list;
|
||||
if (debug >= 2)
|
||||
printf ("Testing network %s\n", name);
|
||||
network = findRR (name, T_PTR);
|
||||
if (network == NULL)
|
||||
{
|
||||
if (debug >= 2)
|
||||
printf ("No name for network %s\n", name);
|
||||
return NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = getlocbyname (network, TRUE);
|
||||
list = findA (network);
|
||||
if (list == NULL)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
else if ((mask != NULL) &&
|
||||
((mask->s_addr) == (list->addr.s_addr)))
|
||||
{
|
||||
/* Already checked */
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
result_int = getlocbyaddr (addr, &list->addr);
|
||||
if (result_int == NULL)
|
||||
return result;
|
||||
else
|
||||
return result_int;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
The code for these two functions is stolen from the examples in Liu and Albitz
|
||||
book "DNS and BIND" (O'Reilly).
|
||||
*/
|
||||
|
||||
/****************************************************************
|
||||
* skipName -- This routine skips over a domain name. If the *
|
||||
* domain name expansion fails, it crashes. *
|
||||
* dn_skipname() is probably not on your manual *
|
||||
* page; it is similar to dn_expand() except that it just *
|
||||
* skips over the name. dn_skipname() is in res_comp.c if *
|
||||
* you need to find it. *
|
||||
****************************************************************/
|
||||
int
|
||||
skipName (cp, endOfMsg)
|
||||
u_char *cp;
|
||||
u_char *endOfMsg;
|
||||
{
|
||||
int n;
|
||||
|
||||
if ((n = dn_skipname (cp, endOfMsg)) < 0)
|
||||
{
|
||||
panic ("dn_skipname failed\n");
|
||||
}
|
||||
return (n);
|
||||
}
|
||||
|
||||
/****************************************************************
|
||||
* skipToData -- This routine advances the cp pointer to the *
|
||||
* start of the resource record data portion. On the way, *
|
||||
* it fills in the type, class, ttl, and data length *
|
||||
****************************************************************/
|
||||
int
|
||||
skipToData (cp, type, class, ttl, dlen, endOfMsg)
|
||||
u_char *cp;
|
||||
u_short *type;
|
||||
u_short *class;
|
||||
u_int32_t *ttl;
|
||||
u_short *dlen;
|
||||
u_char *endOfMsg;
|
||||
{
|
||||
u_char *tmp_cp = cp; /* temporary version of cp */
|
||||
|
||||
/* Skip the domain name; it matches the name we looked up */
|
||||
tmp_cp += skipName (tmp_cp, endOfMsg);
|
||||
|
||||
/*
|
||||
* Grab the type, class, and ttl. GETSHORT and GETLONG
|
||||
* are macros defined in arpa/nameser.h.
|
||||
*/
|
||||
GETSHORT (*type, tmp_cp);
|
||||
GETSHORT (*class, tmp_cp);
|
||||
GETLONG (*ttl, tmp_cp);
|
||||
GETSHORT (*dlen, tmp_cp);
|
||||
|
||||
return (tmp_cp - cp);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Returns a human-readable version of a DNS RR (resource record)
|
||||
associated with the name 'domain'.
|
||||
If it does not find, ir returns NULL and sets rr_errno to explain why.
|
||||
|
||||
The code for this function is stolen from the examples in Liu and Albitz
|
||||
book "DNS and BIND" (O'Reilly).
|
||||
*/
|
||||
char *
|
||||
findRR (domain, requested_type)
|
||||
char *domain;
|
||||
int requested_type;
|
||||
{
|
||||
char *result, *message;
|
||||
|
||||
union
|
||||
{
|
||||
HEADER hdr; /* defined in resolv.h */
|
||||
u_char buf[PACKETSZ]; /* defined in arpa/nameser.h */
|
||||
}
|
||||
response; /* response buffers */
|
||||
short found = 0;
|
||||
int responseLen; /* buffer length */
|
||||
|
||||
u_char *cp; /* character pointer to parse DNS packet */
|
||||
u_char *endOfMsg; /* need to know the end of the message */
|
||||
u_short class; /* classes defined in arpa/nameser.h */
|
||||
u_short type; /* types defined in arpa/nameser.h */
|
||||
u_int32_t ttl; /* resource record time to live */
|
||||
u_short dlen; /* size of resource record data */
|
||||
|
||||
int i, count, dup; /* misc variables */
|
||||
|
||||
char *ptrList[1];
|
||||
int ptrNum = 0;
|
||||
struct in_addr addr;
|
||||
|
||||
result = (char *) malloc (256);
|
||||
message = (char *) malloc (256);
|
||||
/*
|
||||
* Look up the records for the given domain name.
|
||||
* We expect the domain to be a fully qualified name, so
|
||||
* we use res_query(). If we wanted the resolver search
|
||||
* algorithm, we would have used res_search() instead.
|
||||
*/
|
||||
if ((responseLen =
|
||||
res_query (domain, /* the domain we care about */
|
||||
C_IN, /* Internet class records */
|
||||
requested_type, /* Look up name server records */
|
||||
(u_char *) & response, /*response buffer */
|
||||
sizeof (response))) /*buffer size */
|
||||
< 0)
|
||||
{ /*If negative */
|
||||
rr_errno = h_errno;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Keep track of the end of the message so we don't
|
||||
* pass it while parsing the response. responseLen is
|
||||
* the value returned by res_query.
|
||||
*/
|
||||
endOfMsg = response.buf + responseLen;
|
||||
|
||||
/*
|
||||
* Set a pointer to the start of the question section,
|
||||
* which begins immediately AFTER the header.
|
||||
*/
|
||||
cp = response.buf + sizeof (HEADER);
|
||||
|
||||
/*
|
||||
* Skip over the whole question section. The question
|
||||
* section is comprised of a name, a type, and a class.
|
||||
* QFIXEDSZ (defined in arpa/nameser.h) is the size of
|
||||
* the type and class portions, which is fixed. Therefore,
|
||||
* we can skip the question section by skipping the
|
||||
* name (at the beginning) and then advancing QFIXEDSZ.
|
||||
* After this calculation, cp points to the start of the
|
||||
* answer section, which is a list of NS records.
|
||||
*/
|
||||
cp += skipName (cp, endOfMsg) + QFIXEDSZ;
|
||||
|
||||
count = ntohs (response.hdr.ancount) +
|
||||
ntohs (response.hdr.nscount);
|
||||
while ((--count >= 0) /* still more records */
|
||||
&& (cp < endOfMsg))
|
||||
{ /* still inside the packet */
|
||||
|
||||
|
||||
/* Skip to the data portion of the resource record */
|
||||
cp += skipToData (cp, &type, &class, &ttl, &dlen, endOfMsg);
|
||||
|
||||
if (type == requested_type)
|
||||
{
|
||||
switch (requested_type)
|
||||
{
|
||||
case (T_LOC):
|
||||
loc_ntoa (cp, result);
|
||||
return result;
|
||||
break;
|
||||
case (T_PTR):
|
||||
ptrList[ptrNum] = (char *) malloc (MAXDNAME);
|
||||
if (ptrList[ptrNum] == NULL)
|
||||
{
|
||||
panic ("Malloc failed");
|
||||
}
|
||||
|
||||
if (dn_expand (response.buf, /* Start of the packet */
|
||||
endOfMsg, /* End of the packet */
|
||||
cp, /* Position in the packet */
|
||||
(u_char *) ptrList[ptrNum], /* Result */
|
||||
MAXDNAME) /* size of ptrList buffer */
|
||||
< 0)
|
||||
{ /* Negative: error */
|
||||
panic ("dn_expand failed");
|
||||
}
|
||||
|
||||
/*
|
||||
* Check the name we've just unpacked and add it to
|
||||
* the list if it is not a duplicate.
|
||||
* If it is a duplicate, just ignore it.
|
||||
*/
|
||||
for (i = 0, dup = 0; (i < ptrNum) && !dup; i++)
|
||||
dup = !strcasecmp (ptrList[i], ptrList[ptrNum]);
|
||||
if (dup)
|
||||
free (ptrList[ptrNum]);
|
||||
else
|
||||
ptrNum++;
|
||||
strcpy (result, ptrList[0]);
|
||||
return result;
|
||||
break;
|
||||
case (T_A):
|
||||
bcopy ((char *) cp, (char *) &addr, INADDRSZ);
|
||||
strcat (result, " ");
|
||||
strcat (result, inet_ntoa (addr));
|
||||
found = 1;
|
||||
break;
|
||||
default:
|
||||
sprintf (message, "Unexpected type %u", requested_type);
|
||||
panic (message);
|
||||
}
|
||||
}
|
||||
|
||||
/* Advance the pointer over the resource record data */
|
||||
cp += dlen;
|
||||
|
||||
} /* end of while */
|
||||
if (found)
|
||||
return result;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct list_in_addr *
|
||||
findA (domain)
|
||||
char *domain;
|
||||
{
|
||||
|
||||
struct list_in_addr *result, *end;
|
||||
|
||||
union
|
||||
{
|
||||
HEADER hdr; /* defined in resolv.h */
|
||||
u_char buf[PACKETSZ]; /* defined in arpa/nameser.h */
|
||||
}
|
||||
response; /* response buffers */
|
||||
int responseLen; /* buffer length */
|
||||
|
||||
u_char *cp; /* character pointer to parse DNS packet */
|
||||
u_char *endOfMsg; /* need to know the end of the message */
|
||||
u_short class; /* classes defined in arpa/nameser.h */
|
||||
u_short type; /* types defined in arpa/nameser.h */
|
||||
u_int32_t ttl; /* resource record time to live */
|
||||
u_short dlen; /* size of resource record data */
|
||||
|
||||
int count; /* misc variables */
|
||||
|
||||
struct in_addr addr;
|
||||
|
||||
end = NULL;
|
||||
result = NULL;
|
||||
|
||||
/*
|
||||
* Look up the records for the given domain name.
|
||||
* We expect the domain to be a fully qualified name, so
|
||||
* we use res_query(). If we wanted the resolver search
|
||||
* algorithm, we would have used res_search() instead.
|
||||
*/
|
||||
if ((responseLen =
|
||||
res_query (domain, /* the domain we care about */
|
||||
C_IN, /* Internet class records */
|
||||
T_A,
|
||||
(u_char *) & response, /*response buffer */
|
||||
sizeof (response))) /*buffer size */
|
||||
< 0)
|
||||
{ /*If negative */
|
||||
rr_errno = h_errno;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Keep track of the end of the message so we don't
|
||||
* pass it while parsing the response. responseLen is
|
||||
* the value returned by res_query.
|
||||
*/
|
||||
endOfMsg = response.buf + responseLen;
|
||||
|
||||
/*
|
||||
* Set a pointer to the start of the question section,
|
||||
* which begins immediately AFTER the header.
|
||||
*/
|
||||
cp = response.buf + sizeof (HEADER);
|
||||
|
||||
/*
|
||||
* Skip over the whole question section. The question
|
||||
* section is comprised of a name, a type, and a class.
|
||||
* QFIXEDSZ (defined in arpa/nameser.h) is the size of
|
||||
* the type and class portions, which is fixed. Therefore,
|
||||
* we can skip the question section by skipping the
|
||||
* name (at the beginning) and then advancing QFIXEDSZ.
|
||||
* After this calculation, cp points to the start of the
|
||||
* answer section, which is a list of NS records.
|
||||
*/
|
||||
cp += skipName (cp, endOfMsg) + QFIXEDSZ;
|
||||
|
||||
count = ntohs (response.hdr.ancount) +
|
||||
ntohs (response.hdr.nscount);
|
||||
while ((--count >= 0) /* still more records */
|
||||
&& (cp < endOfMsg))
|
||||
{ /* still inside the packet */
|
||||
|
||||
|
||||
/* Skip to the data portion of the resource record */
|
||||
cp += skipToData (cp, &type, &class, &ttl, &dlen, endOfMsg);
|
||||
|
||||
if (type == T_A)
|
||||
{
|
||||
bcopy ((char *) cp, (char *) &addr, INADDRSZ);
|
||||
if (end == NULL)
|
||||
{
|
||||
result = (void *) malloc (sizeof (struct list_in_addr));
|
||||
result->addr = addr;
|
||||
result->next = NULL;
|
||||
end = result;
|
||||
}
|
||||
else
|
||||
{
|
||||
end->next = (void *) malloc (sizeof (struct list_in_addr));
|
||||
end = end->next;
|
||||
end->addr = addr;
|
||||
end->next = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* Advance the pointer over the resource record data */
|
||||
cp += dlen;
|
||||
|
||||
} /* end of while */
|
||||
return result;
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
/* $Id: loc.h,v 1.1 2005/04/01 05:35:00 marka Exp $ */
|
||||
|
||||
#define VERSION "0.3.0"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
/* Probably too many inclusions but this is to keep 'gcc -Wall' happy... */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <netdb.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/time.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <arpa/nameser.h>
|
||||
#include <resolv.h>
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
#if SIZEOF_LONG == 4
|
||||
#define u_int32_t unsigned long
|
||||
#ifndef int32_t
|
||||
#define int32_t long
|
||||
#endif
|
||||
#else
|
||||
#define u_int32_t unsigned int
|
||||
#ifndef int32_t
|
||||
#define int32_t int
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if SIZEOF_CHAR == 1
|
||||
#define u_int8_t unsigned char
|
||||
#ifndef int8_t
|
||||
#define int8_t char
|
||||
#endif
|
||||
#else
|
||||
#if SIZEOF_SHORT == 1
|
||||
#define u_int8_t unsigned short
|
||||
#ifndef int8_t
|
||||
#define int8_t short
|
||||
#endif
|
||||
#else
|
||||
#error "No suitable native type for storing bytes"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef INADDR_NONE
|
||||
#define INADDR_NONE (in_addr_t)-1
|
||||
#endif
|
||||
|
||||
struct list_in_addr
|
||||
{
|
||||
struct in_addr addr;
|
||||
void *next;
|
||||
};
|
||||
|
||||
void usage ();
|
||||
void panic ();
|
||||
|
||||
char *getlocbyname ();
|
||||
char *getlocbyaddr ();
|
||||
char *getlocbynet ();
|
||||
char *findRR ();
|
||||
struct list_in_addr *findA ();
|
||||
|
||||
extern char *progname;
|
||||
extern short debug;
|
||||
@@ -0,0 +1,248 @@
|
||||
/* Stolen from BIND */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1985
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions Copyright (c) 1993 by Digital Equipment Corporation.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies, and that
|
||||
* the name of Digital Equipment Corporation not be used in advertising or
|
||||
* publicity pertaining to distribution of the document or software without
|
||||
* specific, written prior permission.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
|
||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
|
||||
* CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions Copyright (c) 1995 by International Business Machines, Inc.
|
||||
*
|
||||
* International Business Machines, Inc. (hereinafter called IBM) grants
|
||||
* permission under its copyrights to use, copy, modify, and distribute this
|
||||
* Software with or without fee, provided that the above copyright notice and
|
||||
* all paragraphs of this notice appear in all copies, and that the name of IBM
|
||||
* not be used in connection with the marketing of any product incorporating
|
||||
* the Software or modifications thereof, without specific, written prior
|
||||
* permission.
|
||||
*
|
||||
* To the extent it has a right to do so, IBM grants an immunity from suit
|
||||
* under its patents, if any, for the use, sale or manufacture of products to
|
||||
* the extent that such products are used for performing Domain Name System
|
||||
* dynamic updates in TCP/IP networks by means of the Software. No immunity is
|
||||
* granted for any product per se or for any other function of any product.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
|
||||
* DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
|
||||
* IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Portions Copyright (c) 1996-1999 by Internet Software Consortium.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
|
||||
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
|
||||
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <arpa/nameser.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <math.h>
|
||||
#include <netdb.h>
|
||||
#include <resolv.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "loc.h"
|
||||
|
||||
const char *precsize_ntoa();
|
||||
|
||||
/* takes an on-the-wire LOC RR and formats it in a human readable format. */
|
||||
const char *
|
||||
loc_ntoa(binary, ascii)
|
||||
const u_char *binary;
|
||||
char *ascii;
|
||||
{
|
||||
static char *error = "?";
|
||||
static char tmpbuf[sizeof
|
||||
"1000 60 60.000 N 1000 60 60.000 W -12345678.00m 90000000.00m 90000000.00m 90000000.00m"];
|
||||
const u_char *cp = binary;
|
||||
|
||||
int latdeg, latmin, latsec, latsecfrac;
|
||||
int longdeg, longmin, longsec, longsecfrac;
|
||||
char northsouth, eastwest;
|
||||
int altmeters, altfrac, altsign;
|
||||
|
||||
const u_int32_t referencealt = 100000 * 100;
|
||||
|
||||
int32_t latval, longval, altval;
|
||||
u_int32_t templ;
|
||||
u_int8_t sizeval, hpval, vpval, versionval;
|
||||
|
||||
char *sizestr, *hpstr, *vpstr;
|
||||
|
||||
versionval = *cp++;
|
||||
|
||||
if (ascii == NULL)
|
||||
ascii = tmpbuf;
|
||||
|
||||
if (versionval) {
|
||||
(void) sprintf(ascii, "; error: unknown LOC RR version");
|
||||
return (ascii);
|
||||
}
|
||||
|
||||
sizeval = *cp++;
|
||||
|
||||
hpval = *cp++;
|
||||
vpval = *cp++;
|
||||
|
||||
GETLONG(templ, cp);
|
||||
latval = (templ - ((unsigned)1<<31));
|
||||
|
||||
GETLONG(templ, cp);
|
||||
longval = (templ - ((unsigned)1<<31));
|
||||
|
||||
GETLONG(templ, cp);
|
||||
if (templ < referencealt) { /* below WGS 84 spheroid */
|
||||
altval = referencealt - templ;
|
||||
altsign = -1;
|
||||
} else {
|
||||
altval = templ - referencealt;
|
||||
altsign = 1;
|
||||
}
|
||||
|
||||
if (latval < 0) {
|
||||
northsouth = 'S';
|
||||
latval = -latval;
|
||||
} else
|
||||
northsouth = 'N';
|
||||
|
||||
latsecfrac = latval % 1000;
|
||||
latval = latval / 1000;
|
||||
latsec = latval % 60;
|
||||
latval = latval / 60;
|
||||
latmin = latval % 60;
|
||||
latval = latval / 60;
|
||||
latdeg = latval;
|
||||
|
||||
if (longval < 0) {
|
||||
eastwest = 'W';
|
||||
longval = -longval;
|
||||
} else
|
||||
eastwest = 'E';
|
||||
|
||||
longsecfrac = longval % 1000;
|
||||
longval = longval / 1000;
|
||||
longsec = longval % 60;
|
||||
longval = longval / 60;
|
||||
longmin = longval % 60;
|
||||
longval = longval / 60;
|
||||
longdeg = longval;
|
||||
|
||||
altfrac = altval % 100;
|
||||
altmeters = (altval / 100) * altsign;
|
||||
|
||||
if ((sizestr = strdup(precsize_ntoa(sizeval))) == NULL)
|
||||
sizestr = error;
|
||||
if ((hpstr = strdup(precsize_ntoa(hpval))) == NULL)
|
||||
hpstr = error;
|
||||
if ((vpstr = strdup(precsize_ntoa(vpval))) == NULL)
|
||||
vpstr = error;
|
||||
|
||||
sprintf(ascii,
|
||||
"%d %.2d %.2d.%.3d %c %d %.2d %.2d.%.3d %c %d.%.2dm %sm %sm %sm",
|
||||
latdeg, latmin, latsec, latsecfrac, northsouth,
|
||||
longdeg, longmin, longsec, longsecfrac, eastwest,
|
||||
altmeters, altfrac, sizestr, hpstr, vpstr);
|
||||
|
||||
if (sizestr != error)
|
||||
free(sizestr);
|
||||
if (hpstr != error)
|
||||
free(hpstr);
|
||||
if (vpstr != error)
|
||||
free(vpstr);
|
||||
|
||||
return (ascii);
|
||||
}
|
||||
|
||||
static unsigned int poweroften[10] = {1, 10, 100, 1000, 10000, 100000,
|
||||
1000000,10000000,100000000,1000000000};
|
||||
|
||||
/* takes an XeY precision/size value, returns a string representation. */
|
||||
const char *
|
||||
precsize_ntoa(prec)
|
||||
u_int8_t prec;
|
||||
{
|
||||
static char retbuf[sizeof "90000000.00"]; /* XXX nonreentrant */
|
||||
unsigned long val;
|
||||
int mantissa, exponent;
|
||||
|
||||
mantissa = (int)((prec >> 4) & 0x0f) % 10;
|
||||
exponent = (int)((prec >> 0) & 0x0f) % 10;
|
||||
|
||||
val = mantissa * poweroften[exponent];
|
||||
|
||||
(void) sprintf(retbuf, "%ld.%.2ld", val/100, val%100);
|
||||
return (retbuf);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH QUERY-LOC SECTION "January 11, 2005"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
query-loc \- to retrieve and display the location information in the DNS
|
||||
.SH SYNOPSIS
|
||||
.B query-loc
|
||||
.RI [-v] [-d nnn] " host"
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.B query-loc
|
||||
command.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
\fBquery-loc\fP is a program to retrieve and display the location
|
||||
information in the DNS.
|
||||
|
||||
It uses the algorithms described in
|
||||
RFC 1876 (and RFC 1101 to get the network names).
|
||||
You can find examples of networks wchich implement this scheme
|
||||
in the ADDRESSES file.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-v
|
||||
Verbose mode.
|
||||
.TP
|
||||
.B \-d nnn
|
||||
Debug mode. Displays the RFC's algorithm
|
||||
|
||||
.SH BUGS
|
||||
|
||||
Very few hosts have location information.
|
||||
|
||||
.SH AUTHOR
|
||||
This manual page was written by Stephane Bortzmeyer
|
||||
<bortzmeyer@debian.org>.
|
||||
|
||||
.\" $Id: query-loc.1,v 1.1 2005/04/01 05:35:01 marka Exp $
|
||||
@@ -0,0 +1,98 @@
|
||||
#include "loc.h"
|
||||
|
||||
/* $Id: query-loc.c,v 1.1 2005/04/01 05:35:01 marka Exp $ */
|
||||
|
||||
/* Global variables */
|
||||
char *progname;
|
||||
short debug;
|
||||
|
||||
int
|
||||
main (argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
extern char *optarg;
|
||||
extern int optind;
|
||||
|
||||
short verbose = FALSE;
|
||||
char *host;
|
||||
|
||||
char ch;
|
||||
|
||||
char *loc = NULL;
|
||||
struct in_addr addr;
|
||||
struct hostent *hp;
|
||||
|
||||
progname = argv[0];
|
||||
while ((ch = getopt (argc, argv, "vd:")) != EOF)
|
||||
{
|
||||
switch (ch)
|
||||
{
|
||||
case 'v':
|
||||
verbose = TRUE;
|
||||
break;
|
||||
case 'd':
|
||||
debug = atoi (optarg);
|
||||
if (debug <= 0)
|
||||
{
|
||||
(void) fprintf (stderr,
|
||||
"%s: illegal debug value.\n", progname);
|
||||
exit (2);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
usage ();
|
||||
}
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
if (argc != 1)
|
||||
{
|
||||
usage ();
|
||||
}
|
||||
if (verbose || debug)
|
||||
{
|
||||
printf ("\nThis is %s, version %s.\n\n", progname, VERSION);
|
||||
}
|
||||
host = argv[0];
|
||||
(void) res_init ();
|
||||
|
||||
if ((addr.s_addr = inet_addr (host)) == INADDR_NONE)
|
||||
{
|
||||
if (debug >= 1)
|
||||
printf ("%s is a name\n", host);
|
||||
loc = getlocbyname (host, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (debug >= 1)
|
||||
printf ("%s is an IP address ", host);
|
||||
hp = (struct hostent *) gethostbyaddr
|
||||
((char *) &addr, sizeof (addr), AF_INET);
|
||||
if (hp)
|
||||
{
|
||||
if (debug >= 1)
|
||||
printf ("and %s is its official name\n",
|
||||
hp->h_name);
|
||||
loc = getlocbyname (hp->h_name, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (debug >= 1)
|
||||
printf ("which has no name\n");
|
||||
loc = getlocbyaddr (addr, NULL);
|
||||
}
|
||||
}
|
||||
if (loc == NULL)
|
||||
{
|
||||
printf ("No LOCation found for %s\n", host);
|
||||
exit (1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (verbose || debug)
|
||||
printf ("LOCation for %s is ", host);
|
||||
printf ("%s\n", loc);
|
||||
exit (0);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
#
|
||||
# $Id: gen-data-queryperf.py,v 1.1.1236.1 2008/06/13 18:18:04 jinmei Exp $
|
||||
# $Id: gen-data-queryperf.py,v 1.1 2003/04/10 02:33:40 marka Exp $
|
||||
#
|
||||
# Contributed by Stephane Bortzmeyer <bortzmeyer@nic.fr>
|
||||
#
|
||||
@@ -32,15 +32,9 @@ percent_random = 0.3
|
||||
gen = None
|
||||
zone_file = None
|
||||
domains = {}
|
||||
domain_ns = r'^([a-z0-9-\.]+)((\s+\d+)?(\s+IN)?|(\s+IN)(\s+\d+)?)\s+NS'
|
||||
domain_ns = "^([a-z0-9-]+)(\.([a-z0-9-\.]+|)|)( +IN|) +NS"
|
||||
domain_ns_re = re.compile(domain_ns, re.IGNORECASE)
|
||||
|
||||
def remove_tld(label, tld):
|
||||
if label.endswith('.' + tld + '.'):
|
||||
return label[0:-(1+ len(tld) + 1)]
|
||||
else:
|
||||
return label
|
||||
|
||||
def gen_random_label():
|
||||
label = ""
|
||||
for i in range(gen.randint(1, maxsize)):
|
||||
@@ -58,7 +52,7 @@ def usage():
|
||||
try:
|
||||
optlist, args = getopt.getopt(sys.argv[1:], "hp:f:n:t:m:",
|
||||
["help", "percentrandom=", "zonefile=",
|
||||
"number=", "tld=",
|
||||
"num=", "tld=",
|
||||
"maxsize="])
|
||||
for option, value in optlist:
|
||||
if option == "--help" or option == "-h":
|
||||
@@ -92,22 +86,15 @@ if zone_file:
|
||||
while line:
|
||||
domain_line = domain_ns_re.match(line)
|
||||
if domain_line:
|
||||
print domain_line.group(1)
|
||||
domain = remove_tld(domain_line.group(1), tld)
|
||||
domain = domain_line.group(1)
|
||||
domains[domain] = 1
|
||||
line = file.readline()
|
||||
file.close()
|
||||
if zone_file:
|
||||
domains = domains.keys()
|
||||
if len(domains) == 0:
|
||||
sys.stderr.write("No domains found in '%s'\n" % zone_file)
|
||||
sys.exit(1)
|
||||
for i in range(num):
|
||||
if zone_file:
|
||||
if gen.random() < percent_random:
|
||||
sys.stdout.write(make_domain(gen_random_label()))
|
||||
print make_domain(gen_random_label())
|
||||
else:
|
||||
sys.stdout.write(make_domain(gen.choice(domains)))
|
||||
print make_domain(gen.choice(domains.keys()))
|
||||
else:
|
||||
sys.stdout.write(make_domain(gen_random_label()))
|
||||
sys.stdout.write("\n")
|
||||
print make_domain(gen_random_label())
|
||||
|
||||
+221
-1398
File diff suppressed because it is too large
Load Diff
+27
-27
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch01.html,v 1.38.18.4 2008/05/29 01:41:57 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch01.html,v 1.38 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -45,17 +45,17 @@
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2563405">Scope of Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564385">Organization of This Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564524">Conventions Used in This Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564637">The Domain Name System (<acronym class="acronym">DNS</acronym>)</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564106">Scope of Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564130">Organization of This Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2563470">Conventions Used in This Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564812">The Domain Name System (<acronym class="acronym">DNS</acronym>)</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564659">DNS Fundamentals</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564693">Domains and Domain Names</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564845">Zones</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567243">Authoritative Name Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567416">Caching Name Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567546">Name Servers in Multiple Roles</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564834">DNS Fundamentals</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564868">Domains and Domain Names</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567205">Zones</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567282">Authoritative Name Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567523">Caching Name Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567585">Name Servers in Multiple Roles</a></span></dt>
|
||||
</dl></dd>
|
||||
</dl>
|
||||
</div>
|
||||
@@ -71,7 +71,7 @@
|
||||
</p>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2563405"></a>Scope of Document</h2></div></div></div>
|
||||
<a name="id2564106"></a>Scope of Document</h2></div></div></div>
|
||||
<p>
|
||||
The Berkeley Internet Name Domain
|
||||
(<acronym class="acronym">BIND</acronym>) implements a
|
||||
@@ -82,12 +82,12 @@
|
||||
system administrators.
|
||||
</p>
|
||||
<p>
|
||||
This version of the manual corresponds to BIND version 9.5.
|
||||
This version of the manual corresponds to BIND version 9.4.
|
||||
</p>
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2564385"></a>Organization of This Document</h2></div></div></div>
|
||||
<a name="id2564130"></a>Organization of This Document</h2></div></div></div>
|
||||
<p>
|
||||
In this document, <span class="emphasis"><em>Section 1</em></span> introduces
|
||||
the basic <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym> concepts. <span class="emphasis"><em>Section 2</em></span>
|
||||
@@ -116,7 +116,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2564524"></a>Conventions Used in This Document</h2></div></div></div>
|
||||
<a name="id2563470"></a>Conventions Used in This Document</h2></div></div></div>
|
||||
<p>
|
||||
In this document, we use the following general typographic
|
||||
conventions:
|
||||
@@ -243,7 +243,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2564637"></a>The Domain Name System (<acronym class="acronym">DNS</acronym>)</h2></div></div></div>
|
||||
<a name="id2564812"></a>The Domain Name System (<acronym class="acronym">DNS</acronym>)</h2></div></div></div>
|
||||
<p>
|
||||
The purpose of this document is to explain the installation
|
||||
and upkeep of the <acronym class="acronym">BIND</acronym> (Berkeley Internet
|
||||
@@ -253,7 +253,7 @@
|
||||
</p>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2564659"></a>DNS Fundamentals</h3></div></div></div>
|
||||
<a name="id2564834"></a>DNS Fundamentals</h3></div></div></div>
|
||||
<p>
|
||||
The Domain Name System (DNS) is a hierarchical, distributed
|
||||
database. It stores information for mapping Internet host names to
|
||||
@@ -273,7 +273,7 @@
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2564693"></a>Domains and Domain Names</h3></div></div></div>
|
||||
<a name="id2564868"></a>Domains and Domain Names</h3></div></div></div>
|
||||
<p>
|
||||
The data stored in the DNS is identified by <span class="emphasis"><em>domain names</em></span> that are organized as a tree according to
|
||||
organizational or administrative boundaries. Each node of the tree,
|
||||
@@ -319,7 +319,7 @@
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2564845"></a>Zones</h3></div></div></div>
|
||||
<a name="id2567205"></a>Zones</h3></div></div></div>
|
||||
<p>
|
||||
To properly operate a name server, it is important to understand
|
||||
the difference between a <span class="emphasis"><em>zone</em></span>
|
||||
@@ -372,7 +372,7 @@
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2567243"></a>Authoritative Name Servers</h3></div></div></div>
|
||||
<a name="id2567282"></a>Authoritative Name Servers</h3></div></div></div>
|
||||
<p>
|
||||
Each zone is served by at least
|
||||
one <span class="emphasis"><em>authoritative name server</em></span>,
|
||||
@@ -389,7 +389,7 @@
|
||||
</p>
|
||||
<div class="sect3" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="id2567267"></a>The Primary Master</h4></div></div></div>
|
||||
<a name="id2567305"></a>The Primary Master</h4></div></div></div>
|
||||
<p>
|
||||
The authoritative server where the master copy of the zone
|
||||
data is maintained is called the
|
||||
@@ -409,7 +409,7 @@
|
||||
</div>
|
||||
<div class="sect3" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="id2567297"></a>Slave Servers</h4></div></div></div>
|
||||
<a name="id2567335"></a>Slave Servers</h4></div></div></div>
|
||||
<p>
|
||||
The other authoritative servers, the <span class="emphasis"><em>slave</em></span>
|
||||
servers (also known as <span class="emphasis"><em>secondary</em></span> servers)
|
||||
@@ -425,7 +425,7 @@
|
||||
</div>
|
||||
<div class="sect3" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="id2567386"></a>Stealth Servers</h4></div></div></div>
|
||||
<a name="id2567356"></a>Stealth Servers</h4></div></div></div>
|
||||
<p>
|
||||
Usually all of the zone's authoritative servers are listed in
|
||||
NS records in the parent zone. These NS records constitute
|
||||
@@ -460,7 +460,7 @@
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2567416"></a>Caching Name Servers</h3></div></div></div>
|
||||
<a name="id2567523"></a>Caching Name Servers</h3></div></div></div>
|
||||
<p>
|
||||
The resolver libraries provided by most operating systems are
|
||||
<span class="emphasis"><em>stub resolvers</em></span>, meaning that they are not
|
||||
@@ -487,7 +487,7 @@
|
||||
</p>
|
||||
<div class="sect3" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="id2567520"></a>Forwarding</h4></div></div></div>
|
||||
<a name="id2567558"></a>Forwarding</h4></div></div></div>
|
||||
<p>
|
||||
Even a caching name server does not necessarily perform
|
||||
the complete recursive lookup itself. Instead, it can
|
||||
@@ -514,7 +514,7 @@
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2567546"></a>Name Servers in Multiple Roles</h3></div></div></div>
|
||||
<a name="id2567585"></a>Name Servers in Multiple Roles</h3></div></div></div>
|
||||
<p>
|
||||
The <acronym class="acronym">BIND</acronym> name server can
|
||||
simultaneously act as
|
||||
|
||||
+12
-12
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch02.html,v 1.35.18.3 2008/05/29 01:41:57 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch02.html,v 1.35 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -45,16 +45,16 @@
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567580">Hardware requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567607">CPU Requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567620">Memory Requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567851">Name Server Intensive Environment Issues</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567862">Supported Operating Systems</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567619">Hardware requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567714">CPU Requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567726">Memory Requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567753">Name Server Intensive Environment Issues</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567764">Supported Operating Systems</a></span></dt>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2567580"></a>Hardware requirements</h2></div></div></div>
|
||||
<a name="id2567619"></a>Hardware requirements</h2></div></div></div>
|
||||
<p>
|
||||
<acronym class="acronym">DNS</acronym> hardware requirements have
|
||||
traditionally been quite modest.
|
||||
@@ -73,7 +73,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2567607"></a>CPU Requirements</h2></div></div></div>
|
||||
<a name="id2567714"></a>CPU Requirements</h2></div></div></div>
|
||||
<p>
|
||||
CPU requirements for <acronym class="acronym">BIND</acronym> 9 range from
|
||||
i486-class machines
|
||||
@@ -84,7 +84,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2567620"></a>Memory Requirements</h2></div></div></div>
|
||||
<a name="id2567726"></a>Memory Requirements</h2></div></div></div>
|
||||
<p>
|
||||
The memory of the server has to be large enough to fit the
|
||||
cache and zones loaded off disk. The <span><strong class="command">max-cache-size</strong></span>
|
||||
@@ -107,7 +107,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2567851"></a>Name Server Intensive Environment Issues</h2></div></div></div>
|
||||
<a name="id2567753"></a>Name Server Intensive Environment Issues</h2></div></div></div>
|
||||
<p>
|
||||
For name server intensive environments, there are two alternative
|
||||
configurations that may be used. The first is where clients and
|
||||
@@ -124,7 +124,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2567862"></a>Supported Operating Systems</h2></div></div></div>
|
||||
<a name="id2567764"></a>Supported Operating Systems</h2></div></div></div>
|
||||
<p>
|
||||
ISC <acronym class="acronym">BIND</acronym> 9 compiles and runs on a large
|
||||
number
|
||||
|
||||
+14
-14
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch03.html,v 1.67.18.3 2008/05/29 01:41:57 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch03.html,v 1.67 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -47,14 +47,14 @@
|
||||
<dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#sample_configuration">Sample Configurations</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2567894">A Caching-only Name Server</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2567910">An Authoritative-only Name Server</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568001">A Caching-only Name Server</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568017">An Authoritative-only Name Server</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568001">Load Balancing</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568423">Name Server Operations</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568039">Load Balancing</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568461">Name Server Operations</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568428">Tools for Use With the Name Server Daemon</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2570142">Signals</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568467">Tools for Use With the Name Server Daemon</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2570181">Signals</a></span></dt>
|
||||
</dl></dd>
|
||||
</dl>
|
||||
</div>
|
||||
@@ -68,7 +68,7 @@
|
||||
<a name="sample_configuration"></a>Sample Configurations</h2></div></div></div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2567894"></a>A Caching-only Name Server</h3></div></div></div>
|
||||
<a name="id2568001"></a>A Caching-only Name Server</h3></div></div></div>
|
||||
<p>
|
||||
The following sample configuration is appropriate for a caching-only
|
||||
name server for use by clients internal to a corporation. All
|
||||
@@ -95,7 +95,7 @@ zone "0.0.127.in-addr.arpa" {
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2567910"></a>An Authoritative-only Name Server</h3></div></div></div>
|
||||
<a name="id2568017"></a>An Authoritative-only Name Server</h3></div></div></div>
|
||||
<p>
|
||||
This sample configuration is for an authoritative-only server
|
||||
that is the master server for "<code class="filename">example.com</code>"
|
||||
@@ -137,7 +137,7 @@ zone "eng.example.com" {
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2568001"></a>Load Balancing</h2></div></div></div>
|
||||
<a name="id2568039"></a>Load Balancing</h2></div></div></div>
|
||||
<p>
|
||||
A primitive form of load balancing can be achieved in
|
||||
the <acronym class="acronym">DNS</acronym> by using multiple records
|
||||
@@ -280,10 +280,10 @@ zone "eng.example.com" {
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2568423"></a>Name Server Operations</h2></div></div></div>
|
||||
<a name="id2568461"></a>Name Server Operations</h2></div></div></div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2568428"></a>Tools for Use With the Name Server Daemon</h3></div></div></div>
|
||||
<a name="id2568467"></a>Tools for Use With the Name Server Daemon</h3></div></div></div>
|
||||
<p>
|
||||
This section describes several indispensable diagnostic,
|
||||
administrative and monitoring tools available to the system
|
||||
@@ -739,7 +739,7 @@ controls {
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2570142"></a>Signals</h3></div></div></div>
|
||||
<a name="id2570181"></a>Signals</h3></div></div></div>
|
||||
<p>
|
||||
Certain UNIX signals cause the name server to take specific
|
||||
actions, as described in the following table. These signals can
|
||||
|
||||
+36
-36
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch04.html,v 1.81.18.3 2008/05/29 01:41:57 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch04.html,v 1.81 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -49,29 +49,29 @@
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dynamic_update">Dynamic Update</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#journal">The journal file</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#incremental_zone_transfers">Incremental Zone Transfers (IXFR)</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2570616">Split DNS</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570634">Example split DNS setup</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2570654">Split DNS</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570673">Example split DNS setup</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#tsig">TSIG</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571069">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571143">Copying the Shared Secret to Both Machines</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571154">Informing the Servers of the Key's Existence</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571193">Instructing the Server to Use the Key</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571319">TSIG Key Based Access Control</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571432">Errors</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571108">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571181">Copying the Shared Secret to Both Machines</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571192">Informing the Servers of the Key's Existence</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571232">Instructing the Server to Use the Key</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571426">TSIG Key Based Access Control</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571470">Errors</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571446">TKEY</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571563">SIG(0)</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571484">TKEY</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571533">SIG(0)</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#DNSSEC">DNSSEC</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571700">Generating Keys</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571769">Signing the Zone</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571848">Configuring Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571738">Generating Keys</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571808">Signing the Zone</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571886">Configuring Servers</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571923">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572029">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572189">Address Lookups Using AAAA Records</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572211">Address to Name Lookups Using Nibble Format</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572228">Address Lookups Using AAAA Records</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572249">Address to Name Lookups Using Nibble Format</a></span></dt>
|
||||
</dl></dd>
|
||||
</dl>
|
||||
</div>
|
||||
@@ -210,7 +210,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2570616"></a>Split DNS</h2></div></div></div>
|
||||
<a name="id2570654"></a>Split DNS</h2></div></div></div>
|
||||
<p>
|
||||
Setting up different views, or visibility, of the DNS space to
|
||||
internal and external resolvers is usually referred to as a
|
||||
@@ -240,7 +240,7 @@
|
||||
</p>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2570634"></a>Example split DNS setup</h3></div></div></div>
|
||||
<a name="id2570673"></a>Example split DNS setup</h3></div></div></div>
|
||||
<p>
|
||||
Let's say a company named <span class="emphasis"><em>Example, Inc.</em></span>
|
||||
(<code class="literal">example.com</code>)
|
||||
@@ -486,7 +486,7 @@ nameserver 172.16.72.4
|
||||
</p>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571069"></a>Generate Shared Keys for Each Pair of Hosts</h3></div></div></div>
|
||||
<a name="id2571108"></a>Generate Shared Keys for Each Pair of Hosts</h3></div></div></div>
|
||||
<p>
|
||||
A shared secret is generated to be shared between <span class="emphasis"><em>host1</em></span> and <span class="emphasis"><em>host2</em></span>.
|
||||
An arbitrary key name is chosen: "host1-host2.". The key name must
|
||||
@@ -494,7 +494,7 @@ nameserver 172.16.72.4
|
||||
</p>
|
||||
<div class="sect3" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="id2571086"></a>Automatic Generation</h4></div></div></div>
|
||||
<a name="id2571125"></a>Automatic Generation</h4></div></div></div>
|
||||
<p>
|
||||
The following command will generate a 128-bit (16 byte) HMAC-MD5
|
||||
key as described above. Longer keys are better, but shorter keys
|
||||
@@ -519,7 +519,7 @@ nameserver 172.16.72.4
|
||||
</div>
|
||||
<div class="sect3" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="id2571125"></a>Manual Generation</h4></div></div></div>
|
||||
<a name="id2571163"></a>Manual Generation</h4></div></div></div>
|
||||
<p>
|
||||
The shared secret is simply a random sequence of bits, encoded
|
||||
in base-64. Most ASCII strings are valid base-64 strings (assuming
|
||||
@@ -534,7 +534,7 @@ nameserver 172.16.72.4
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571143"></a>Copying the Shared Secret to Both Machines</h3></div></div></div>
|
||||
<a name="id2571181"></a>Copying the Shared Secret to Both Machines</h3></div></div></div>
|
||||
<p>
|
||||
This is beyond the scope of DNS. A secure transport mechanism
|
||||
should be used. This could be secure FTP, ssh, telephone, etc.
|
||||
@@ -542,7 +542,7 @@ nameserver 172.16.72.4
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571154"></a>Informing the Servers of the Key's Existence</h3></div></div></div>
|
||||
<a name="id2571192"></a>Informing the Servers of the Key's Existence</h3></div></div></div>
|
||||
<p>
|
||||
Imagine <span class="emphasis"><em>host1</em></span> and <span class="emphasis"><em>host 2</em></span>
|
||||
are
|
||||
@@ -571,7 +571,7 @@ key host1-host2. {
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571193"></a>Instructing the Server to Use the Key</h3></div></div></div>
|
||||
<a name="id2571232"></a>Instructing the Server to Use the Key</h3></div></div></div>
|
||||
<p>
|
||||
Since keys are shared between two hosts only, the server must
|
||||
be told when keys are to be used. The following is added to the <code class="filename">named.conf</code> file
|
||||
@@ -603,7 +603,7 @@ server 10.1.2.3 {
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571319"></a>TSIG Key Based Access Control</h3></div></div></div>
|
||||
<a name="id2571426"></a>TSIG Key Based Access Control</h3></div></div></div>
|
||||
<p>
|
||||
<acronym class="acronym">BIND</acronym> allows IP addresses and ranges
|
||||
to be specified in ACL
|
||||
@@ -631,7 +631,7 @@ allow-update { key host1-host2. ;};
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571432"></a>Errors</h3></div></div></div>
|
||||
<a name="id2571470"></a>Errors</h3></div></div></div>
|
||||
<p>
|
||||
The processing of TSIG signed messages can result in
|
||||
several errors. If a signed message is sent to a non-TSIG aware
|
||||
@@ -657,7 +657,7 @@ allow-update { key host1-host2. ;};
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2571446"></a>TKEY</h2></div></div></div>
|
||||
<a name="id2571484"></a>TKEY</h2></div></div></div>
|
||||
<p><span><strong class="command">TKEY</strong></span>
|
||||
is a mechanism for automatically generating a shared secret
|
||||
between two hosts. There are several "modes" of
|
||||
@@ -693,7 +693,7 @@ allow-update { key host1-host2. ;};
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2571563"></a>SIG(0)</h2></div></div></div>
|
||||
<a name="id2571533"></a>SIG(0)</h2></div></div></div>
|
||||
<p>
|
||||
<acronym class="acronym">BIND</acronym> 9 partially supports DNSSEC SIG(0)
|
||||
transaction signatures as specified in RFC 2535 and RFC2931.
|
||||
@@ -754,7 +754,7 @@ allow-update { key host1-host2. ;};
|
||||
</p>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571700"></a>Generating Keys</h3></div></div></div>
|
||||
<a name="id2571738"></a>Generating Keys</h3></div></div></div>
|
||||
<p>
|
||||
The <span><strong class="command">dnssec-keygen</strong></span> program is used to
|
||||
generate keys.
|
||||
@@ -805,7 +805,7 @@ allow-update { key host1-host2. ;};
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571769"></a>Signing the Zone</h3></div></div></div>
|
||||
<a name="id2571808"></a>Signing the Zone</h3></div></div></div>
|
||||
<p>
|
||||
The <span><strong class="command">dnssec-signzone</strong></span> program is used
|
||||
to
|
||||
@@ -849,7 +849,7 @@ allow-update { key host1-host2. ;};
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2571848"></a>Configuring Servers</h3></div></div></div>
|
||||
<a name="id2571886"></a>Configuring Servers</h3></div></div></div>
|
||||
<p>
|
||||
To enable <span><strong class="command">named</strong></span> to respond appropriately
|
||||
to DNS requests from DNSSEC aware clients,
|
||||
@@ -937,7 +937,7 @@ options {
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2571923"></a>IPv6 Support in <acronym class="acronym">BIND</acronym> 9</h2></div></div></div>
|
||||
<a name="id2572029"></a>IPv6 Support in <acronym class="acronym">BIND</acronym> 9</h2></div></div></div>
|
||||
<p>
|
||||
<acronym class="acronym">BIND</acronym> 9 fully supports all currently
|
||||
defined forms of IPv6
|
||||
@@ -976,7 +976,7 @@ options {
|
||||
</p>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2572189"></a>Address Lookups Using AAAA Records</h3></div></div></div>
|
||||
<a name="id2572228"></a>Address Lookups Using AAAA Records</h3></div></div></div>
|
||||
<p>
|
||||
The IPv6 AAAA record is a parallel to the IPv4 A record,
|
||||
and, unlike the deprecated A6 record, specifies the entire
|
||||
@@ -995,7 +995,7 @@ host 3600 IN AAAA 2001:db8::1
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2572211"></a>Address to Name Lookups Using Nibble Format</h3></div></div></div>
|
||||
<a name="id2572249"></a>Address to Name Lookups Using Nibble Format</h3></div></div></div>
|
||||
<p>
|
||||
When looking up an address in nibble format, the address
|
||||
components are simply reversed, just as in IPv4, and
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch05.html,v 1.66.18.3 2008/05/29 01:41:57 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch05.html,v 1.66 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -45,13 +45,13 @@
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2572244">The Lightweight Resolver Library</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2572282">The Lightweight Resolver Library</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch05.html#lwresd">Running a Resolver Daemon</a></span></dt>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2572244"></a>The Lightweight Resolver Library</h2></div></div></div>
|
||||
<a name="id2572282"></a>The Lightweight Resolver Library</h2></div></div></div>
|
||||
<p>
|
||||
Traditionally applications have been linked with a stub resolver
|
||||
library that sends recursive DNS queries to a local caching name
|
||||
|
||||
+279
-1408
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch07.html,v 1.152.18.12 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch07.html,v 1.152 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -46,10 +46,10 @@
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#Access_Control_Lists">Access Control Lists</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2596513"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2593436"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2596589">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2596649">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2593581">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2593641">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#dynamic_update_security">Dynamic Update Security</a></span></dt>
|
||||
</dl>
|
||||
@@ -119,7 +119,7 @@ zone "example.com" {
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2596513"></a><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span>
|
||||
<a name="id2593436"></a><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
On UNIX servers, it is possible to run <acronym class="acronym">BIND</acronym> in a <span class="emphasis"><em>chrooted</em></span> environment
|
||||
@@ -143,7 +143,7 @@ zone "example.com" {
|
||||
</p>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2596589"></a>The <span><strong class="command">chroot</strong></span> Environment</h3></div></div></div>
|
||||
<a name="id2593581"></a>The <span><strong class="command">chroot</strong></span> Environment</h3></div></div></div>
|
||||
<p>
|
||||
In order for a <span><strong class="command">chroot</strong></span> environment
|
||||
to
|
||||
@@ -171,7 +171,7 @@ zone "example.com" {
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2596649"></a>Using the <span><strong class="command">setuid</strong></span> Function</h3></div></div></div>
|
||||
<a name="id2593641"></a>Using the <span><strong class="command">setuid</strong></span> Function</h3></div></div></div>
|
||||
<p>
|
||||
Prior to running the <span><strong class="command">named</strong></span> daemon,
|
||||
use
|
||||
|
||||
+10
-10
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch08.html,v 1.153.18.12 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch08.html,v 1.153 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -45,18 +45,18 @@
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2596729">Common Problems</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2596734">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2596746">Incrementing and Changing the Serial Number</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2596763">Where Can I Get Help?</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2593721">Common Problems</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2593795">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2593806">Incrementing and Changing the Serial Number</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2593824">Where Can I Get Help?</a></span></dt>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2596729"></a>Common Problems</h2></div></div></div>
|
||||
<a name="id2593721"></a>Common Problems</h2></div></div></div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2596734"></a>It's not working; how can I figure out what's wrong?</h3></div></div></div>
|
||||
<a name="id2593795"></a>It's not working; how can I figure out what's wrong?</h3></div></div></div>
|
||||
<p>
|
||||
The best solution to solving installation and
|
||||
configuration issues is to take preventative measures by setting
|
||||
@@ -68,7 +68,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2596746"></a>Incrementing and Changing the Serial Number</h2></div></div></div>
|
||||
<a name="id2593806"></a>Incrementing and Changing the Serial Number</h2></div></div></div>
|
||||
<p>
|
||||
Zone serial numbers are just numbers — they aren't
|
||||
date related. A lot of people set them to a number that
|
||||
@@ -95,7 +95,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2596763"></a>Where Can I Get Help?</h2></div></div></div>
|
||||
<a name="id2593824"></a>Where Can I Get Help?</h2></div></div></div>
|
||||
<p>
|
||||
The Internet Systems Consortium
|
||||
(<acronym class="acronym">ISC</acronym>) offers a wide range
|
||||
|
||||
+91
-91
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch09.html,v 1.154.18.12 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch09.html,v 1.154 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -45,21 +45,21 @@
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2596893">Acknowledgments</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2593954">Acknowledgments</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#historical_dns_information">A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2597065">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2594057">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#ipv6addresses">IPv6 addresses (AAAA)</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bibliography">Bibliography (and Suggested Reading)</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#rfcs">Request for Comments (RFCs)</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#internet_drafts">Internet Drafts</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2600413">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2597474">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
|
||||
</dl></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2596893"></a>Acknowledgments</h2></div></div></div>
|
||||
<a name="id2593954"></a>Acknowledgments</h2></div></div></div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="historical_dns_information"></a>A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym>
|
||||
@@ -164,7 +164,7 @@
|
||||
</div>
|
||||
<div class="sect1" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2597065"></a>General <acronym class="acronym">DNS</acronym> Reference Information</h2></div></div></div>
|
||||
<a name="id2594057"></a>General <acronym class="acronym">DNS</acronym> Reference Information</h2></div></div></div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="ipv6addresses"></a>IPv6 addresses (AAAA)</h3></div></div></div>
|
||||
@@ -252,17 +252,17 @@
|
||||
</p>
|
||||
<div class="bibliography">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="id2597321"></a>Bibliography</h4></div></div></div>
|
||||
<a name="id2594313"></a>Bibliography</h4></div></div></div>
|
||||
<div class="bibliodiv">
|
||||
<h3 class="title">Standards</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597332"></a><p>[<abbr class="abbrev">RFC974</abbr>] <span class="author"><span class="firstname">C.</span> <span class="surname">Partridge</span>. </span><span class="title"><i>Mail Routing and the Domain System</i>. </span><span class="pubdate">January 1986. </span></p>
|
||||
<a name="id2594324"></a><p>[<abbr class="abbrev">RFC974</abbr>] <span class="author"><span class="firstname">C.</span> <span class="surname">Partridge</span>. </span><span class="title"><i>Mail Routing and the Domain System</i>. </span><span class="pubdate">January 1986. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597424"></a><p>[<abbr class="abbrev">RFC1034</abbr>] <span class="author"><span class="firstname">P.V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names — Concepts and Facilities</i>. </span><span class="pubdate">November 1987. </span></p>
|
||||
<a name="id2594347"></a><p>[<abbr class="abbrev">RFC1034</abbr>] <span class="author"><span class="firstname">P.V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names — Concepts and Facilities</i>. </span><span class="pubdate">November 1987. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597447"></a><p>[<abbr class="abbrev">RFC1035</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names — Implementation and
|
||||
<a name="id2594371"></a><p>[<abbr class="abbrev">RFC1035</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>Domain Names — Implementation and
|
||||
Specification</i>. </span><span class="pubdate">November 1987. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -270,42 +270,42 @@
|
||||
<h3 class="title">
|
||||
<a name="proposed_standards"></a>Proposed Standards</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597483"></a><p>[<abbr class="abbrev">RFC2181</abbr>] <span class="author"><span class="firstname">R., R. Bush</span> <span class="surname">Elz</span>. </span><span class="title"><i>Clarifications to the <acronym class="acronym">DNS</acronym>
|
||||
<a name="id2594407"></a><p>[<abbr class="abbrev">RFC2181</abbr>] <span class="author"><span class="firstname">R., R. Bush</span> <span class="surname">Elz</span>. </span><span class="title"><i>Clarifications to the <acronym class="acronym">DNS</acronym>
|
||||
Specification</i>. </span><span class="pubdate">July 1997. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597510"></a><p>[<abbr class="abbrev">RFC2308</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Andrews</span>. </span><span class="title"><i>Negative Caching of <acronym class="acronym">DNS</acronym>
|
||||
<a name="id2594434"></a><p>[<abbr class="abbrev">RFC2308</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Andrews</span>. </span><span class="title"><i>Negative Caching of <acronym class="acronym">DNS</acronym>
|
||||
Queries</i>. </span><span class="pubdate">March 1998. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597536"></a><p>[<abbr class="abbrev">RFC1995</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Ohta</span>. </span><span class="title"><i>Incremental Zone Transfer in <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">August 1996. </span></p>
|
||||
<a name="id2594459"></a><p>[<abbr class="abbrev">RFC1995</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Ohta</span>. </span><span class="title"><i>Incremental Zone Transfer in <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">August 1996. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597560"></a><p>[<abbr class="abbrev">RFC1996</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A Mechanism for Prompt Notification of Zone Changes</i>. </span><span class="pubdate">August 1996. </span></p>
|
||||
<a name="id2594552"></a><p>[<abbr class="abbrev">RFC1996</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A Mechanism for Prompt Notification of Zone Changes</i>. </span><span class="pubdate">August 1996. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597584"></a><p>[<abbr class="abbrev">RFC2136</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">Y.</span> <span class="surname">Rekhter</span>, and <span class="firstname">J.</span> <span class="surname">Bound</span>. </span><span class="title"><i>Dynamic Updates in the Domain Name System</i>. </span><span class="pubdate">April 1997. </span></p>
|
||||
<a name="id2594576"></a><p>[<abbr class="abbrev">RFC2136</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">Y.</span> <span class="surname">Rekhter</span>, and <span class="firstname">J.</span> <span class="surname">Bound</span>. </span><span class="title"><i>Dynamic Updates in the Domain Name System</i>. </span><span class="pubdate">April 1997. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597639"></a><p>[<abbr class="abbrev">RFC2671</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Extension Mechanisms for DNS (EDNS0)</i>. </span><span class="pubdate">August 1997. </span></p>
|
||||
<a name="id2594631"></a><p>[<abbr class="abbrev">RFC2671</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Extension Mechanisms for DNS (EDNS0)</i>. </span><span class="pubdate">August 1997. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597666"></a><p>[<abbr class="abbrev">RFC2672</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Non-Terminal DNS Name Redirection</i>. </span><span class="pubdate">August 1999. </span></p>
|
||||
<a name="id2594658"></a><p>[<abbr class="abbrev">RFC2672</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Non-Terminal DNS Name Redirection</i>. </span><span class="pubdate">August 1999. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597692"></a><p>[<abbr class="abbrev">RFC2845</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>, <span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, and <span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secret Key Transaction Authentication for <acronym class="acronym">DNS</acronym> (TSIG)</i>. </span><span class="pubdate">May 2000. </span></p>
|
||||
<a name="id2594684"></a><p>[<abbr class="abbrev">RFC2845</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>, <span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, and <span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secret Key Transaction Authentication for <acronym class="acronym">DNS</acronym> (TSIG)</i>. </span><span class="pubdate">May 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597754"></a><p>[<abbr class="abbrev">RFC2930</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secret Key Establishment for DNS (TKEY RR)</i>. </span><span class="pubdate">September 2000. </span></p>
|
||||
<a name="id2594746"></a><p>[<abbr class="abbrev">RFC2930</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secret Key Establishment for DNS (TKEY RR)</i>. </span><span class="pubdate">September 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597784"></a><p>[<abbr class="abbrev">RFC2931</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DNS Request and Transaction Signatures (SIG(0)s)</i>. </span><span class="pubdate">September 2000. </span></p>
|
||||
<a name="id2594776"></a><p>[<abbr class="abbrev">RFC2931</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DNS Request and Transaction Signatures (SIG(0)s)</i>. </span><span class="pubdate">September 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597814"></a><p>[<abbr class="abbrev">RFC3007</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secure Domain Name System (DNS) Dynamic Update</i>. </span><span class="pubdate">November 2000. </span></p>
|
||||
<a name="id2594806"></a><p>[<abbr class="abbrev">RFC3007</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Secure Domain Name System (DNS) Dynamic Update</i>. </span><span class="pubdate">November 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597841"></a><p>[<abbr class="abbrev">RFC3645</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Kwan</span>, <span class="firstname">P.</span> <span class="surname">Garg</span>, <span class="firstname">J.</span> <span class="surname">Gilroy</span>, <span class="firstname">L.</span> <span class="surname">Esibov</span>, <span class="firstname">J.</span> <span class="surname">Westhead</span>, and <span class="firstname">R.</span> <span class="surname">Hall</span>. </span><span class="title"><i>Generic Security Service Algorithm for Secret
|
||||
<a name="id2594833"></a><p>[<abbr class="abbrev">RFC3645</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Kwan</span>, <span class="firstname">P.</span> <span class="surname">Garg</span>, <span class="firstname">J.</span> <span class="surname">Gilroy</span>, <span class="firstname">L.</span> <span class="surname">Esibov</span>, <span class="firstname">J.</span> <span class="surname">Westhead</span>, and <span class="firstname">R.</span> <span class="surname">Hall</span>. </span><span class="title"><i>Generic Security Service Algorithm for Secret
|
||||
Key Transaction Authentication for DNS
|
||||
(GSS-TSIG)</i>. </span><span class="pubdate">October 2003. </span></p>
|
||||
</div>
|
||||
@@ -314,19 +314,19 @@
|
||||
<h3 class="title">
|
||||
<acronym class="acronym">DNS</acronym> Security Proposed Standards</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597923"></a><p>[<abbr class="abbrev">RFC3225</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Conrad</span>. </span><span class="title"><i>Indicating Resolver Support of DNSSEC</i>. </span><span class="pubdate">December 2001. </span></p>
|
||||
<a name="id2594915"></a><p>[<abbr class="abbrev">RFC3225</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Conrad</span>. </span><span class="title"><i>Indicating Resolver Support of DNSSEC</i>. </span><span class="pubdate">December 2001. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597949"></a><p>[<abbr class="abbrev">RFC3833</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Atkins</span> and <span class="firstname">R.</span> <span class="surname">Austein</span>. </span><span class="title"><i>Threat Analysis of the Domain Name System (DNS)</i>. </span><span class="pubdate">August 2004. </span></p>
|
||||
<a name="id2594941"></a><p>[<abbr class="abbrev">RFC3833</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Atkins</span> and <span class="firstname">R.</span> <span class="surname">Austein</span>. </span><span class="title"><i>Threat Analysis of the Domain Name System (DNS)</i>. </span><span class="pubdate">August 2004. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2597986"></a><p>[<abbr class="abbrev">RFC4033</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>DNS Security Introduction and Requirements</i>. </span><span class="pubdate">March 2005. </span></p>
|
||||
<a name="id2594978"></a><p>[<abbr class="abbrev">RFC4033</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>DNS Security Introduction and Requirements</i>. </span><span class="pubdate">March 2005. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598051"></a><p>[<abbr class="abbrev">RFC4044</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Resource Records for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
|
||||
<a name="id2595043"></a><p>[<abbr class="abbrev">RFC4044</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Resource Records for the DNS Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598116"></a><p>[<abbr class="abbrev">RFC4035</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Protocol Modifications for the DNS
|
||||
<a name="id2595108"></a><p>[<abbr class="abbrev">RFC4035</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Arends</span>, <span class="firstname">R.</span> <span class="surname">Austein</span>, <span class="firstname">M.</span> <span class="surname">Larson</span>, <span class="firstname">D.</span> <span class="surname">Massey</span>, and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Protocol Modifications for the DNS
|
||||
Security Extensions</i>. </span><span class="pubdate">March 2005. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -334,146 +334,146 @@
|
||||
<h3 class="title">Other Important RFCs About <acronym class="acronym">DNS</acronym>
|
||||
Implementation</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598189"></a><p>[<abbr class="abbrev">RFC1535</abbr>] <span class="author"><span class="firstname">E.</span> <span class="surname">Gavron</span>. </span><span class="title"><i>A Security Problem and Proposed Correction With Widely
|
||||
<a name="id2595181"></a><p>[<abbr class="abbrev">RFC1535</abbr>] <span class="author"><span class="firstname">E.</span> <span class="surname">Gavron</span>. </span><span class="title"><i>A Security Problem and Proposed Correction With Widely
|
||||
Deployed <acronym class="acronym">DNS</acronym> Software.</i>. </span><span class="pubdate">October 1993. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598215"></a><p>[<abbr class="abbrev">RFC1536</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Kumar</span>, <span class="firstname">J.</span> <span class="surname">Postel</span>, <span class="firstname">C.</span> <span class="surname">Neuman</span>, <span class="firstname">P.</span> <span class="surname">Danzig</span>, and <span class="firstname">S.</span> <span class="surname">Miller</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Implementation
|
||||
<a name="id2595207"></a><p>[<abbr class="abbrev">RFC1536</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Kumar</span>, <span class="firstname">J.</span> <span class="surname">Postel</span>, <span class="firstname">C.</span> <span class="surname">Neuman</span>, <span class="firstname">P.</span> <span class="surname">Danzig</span>, and <span class="firstname">S.</span> <span class="surname">Miller</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Implementation
|
||||
Errors and Suggested Fixes</i>. </span><span class="pubdate">October 1993. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598283"></a><p>[<abbr class="abbrev">RFC1982</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Elz</span> and <span class="firstname">R.</span> <span class="surname">Bush</span>. </span><span class="title"><i>Serial Number Arithmetic</i>. </span><span class="pubdate">August 1996. </span></p>
|
||||
<a name="id2595275"></a><p>[<abbr class="abbrev">RFC1982</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Elz</span> and <span class="firstname">R.</span> <span class="surname">Bush</span>. </span><span class="title"><i>Serial Number Arithmetic</i>. </span><span class="pubdate">August 1996. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598318"></a><p>[<abbr class="abbrev">RFC4074</abbr>] <span class="authorgroup"><span class="firstname">Y.</span> <span class="surname">Morishita</span> and <span class="firstname">T.</span> <span class="surname">Jinmei</span>. </span><span class="title"><i>Common Misbehaviour Against <acronym class="acronym">DNS</acronym>
|
||||
<a name="id2595310"></a><p>[<abbr class="abbrev">RFC4074</abbr>] <span class="authorgroup"><span class="firstname">Y.</span> <span class="surname">Morishita</span> and <span class="firstname">T.</span> <span class="surname">Jinmei</span>. </span><span class="title"><i>Common Misbehaviour Against <acronym class="acronym">DNS</acronym>
|
||||
Queries for IPv6 Addresses</i>. </span><span class="pubdate">May 2005. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bibliodiv">
|
||||
<h3 class="title">Resource Record Types</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598364"></a><p>[<abbr class="abbrev">RFC1183</abbr>] <span class="authorgroup"><span class="firstname">C.F.</span> <span class="surname">Everhart</span>, <span class="firstname">L. A.</span> <span class="surname">Mamakos</span>, <span class="firstname">R.</span> <span class="surname">Ullmann</span>, and <span class="firstname">P.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>New <acronym class="acronym">DNS</acronym> RR Definitions</i>. </span><span class="pubdate">October 1990. </span></p>
|
||||
<a name="id2595356"></a><p>[<abbr class="abbrev">RFC1183</abbr>] <span class="authorgroup"><span class="firstname">C.F.</span> <span class="surname">Everhart</span>, <span class="firstname">L. A.</span> <span class="surname">Mamakos</span>, <span class="firstname">R.</span> <span class="surname">Ullmann</span>, and <span class="firstname">P.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i>New <acronym class="acronym">DNS</acronym> RR Definitions</i>. </span><span class="pubdate">October 1990. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598422"></a><p>[<abbr class="abbrev">RFC1706</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">R.</span> <span class="surname">Colella</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> NSAP Resource Records</i>. </span><span class="pubdate">October 1994. </span></p>
|
||||
<a name="id2595482"></a><p>[<abbr class="abbrev">RFC1706</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">R.</span> <span class="surname">Colella</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> NSAP Resource Records</i>. </span><span class="pubdate">October 1994. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598459"></a><p>[<abbr class="abbrev">RFC2168</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Daniel</span> and <span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="title"><i>Resolution of Uniform Resource Identifiers using
|
||||
<a name="id2595520"></a><p>[<abbr class="abbrev">RFC2168</abbr>] <span class="authorgroup"><span class="firstname">R.</span> <span class="surname">Daniel</span> and <span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="title"><i>Resolution of Uniform Resource Identifiers using
|
||||
the Domain Name System</i>. </span><span class="pubdate">June 1997. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598494"></a><p>[<abbr class="abbrev">RFC1876</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Davis</span>, <span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">T.</span>, and <span class="firstname">I.</span> <span class="surname">Dickinson</span>. </span><span class="title"><i>A Means for Expressing Location Information in the
|
||||
<a name="id2595555"></a><p>[<abbr class="abbrev">RFC1876</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Davis</span>, <span class="firstname">P.</span> <span class="surname">Vixie</span>, <span class="firstname">T.</span>, and <span class="firstname">I.</span> <span class="surname">Dickinson</span>. </span><span class="title"><i>A Means for Expressing Location Information in the
|
||||
Domain
|
||||
Name System</i>. </span><span class="pubdate">January 1996. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598617"></a><p>[<abbr class="abbrev">RFC2052</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A <acronym class="acronym">DNS</acronym> RR for Specifying the
|
||||
<a name="id2595609"></a><p>[<abbr class="abbrev">RFC2052</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>A <acronym class="acronym">DNS</acronym> RR for Specifying the
|
||||
Location of
|
||||
Services.</i>. </span><span class="pubdate">October 1996. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598656"></a><p>[<abbr class="abbrev">RFC2163</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Allocchio</span>. </span><span class="title"><i>Using the Internet <acronym class="acronym">DNS</acronym> to
|
||||
<a name="id2595648"></a><p>[<abbr class="abbrev">RFC2163</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Allocchio</span>. </span><span class="title"><i>Using the Internet <acronym class="acronym">DNS</acronym> to
|
||||
Distribute MIXER
|
||||
Conformant Global Address Mapping</i>. </span><span class="pubdate">January 1998. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598681"></a><p>[<abbr class="abbrev">RFC2230</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Atkinson</span>. </span><span class="title"><i>Key Exchange Delegation Record for the <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">October 1997. </span></p>
|
||||
<a name="id2595673"></a><p>[<abbr class="abbrev">RFC2230</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Atkinson</span>. </span><span class="title"><i>Key Exchange Delegation Record for the <acronym class="acronym">DNS</acronym></i>. </span><span class="pubdate">October 1997. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598707"></a><p>[<abbr class="abbrev">RFC2536</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DSA KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
<a name="id2595699"></a><p>[<abbr class="abbrev">RFC2536</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>DSA KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598733"></a><p>[<abbr class="abbrev">RFC2537</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
<a name="id2595725"></a><p>[<abbr class="abbrev">RFC2537</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598760"></a><p>[<abbr class="abbrev">RFC2538</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Storing Certificates in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
<a name="id2595752"></a><p>[<abbr class="abbrev">RFC2538</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Storing Certificates in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598800"></a><p>[<abbr class="abbrev">RFC2539</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Storage of Diffie-Hellman Keys in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
<a name="id2595792"></a><p>[<abbr class="abbrev">RFC2539</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Storage of Diffie-Hellman Keys in the Domain Name System (DNS)</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598829"></a><p>[<abbr class="abbrev">RFC2540</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Detached Domain Name System (DNS) Information</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
<a name="id2595821"></a><p>[<abbr class="abbrev">RFC2540</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Detached Domain Name System (DNS) Information</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598859"></a><p>[<abbr class="abbrev">RFC2782</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span>. </span><span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="author"><span class="firstname">L.</span> <span class="surname">Esibov</span>. </span><span class="title"><i>A DNS RR for specifying the location of services (DNS SRV)</i>. </span><span class="pubdate">February 2000. </span></p>
|
||||
<a name="id2595851"></a><p>[<abbr class="abbrev">RFC2782</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gulbrandsen</span>. </span><span class="author"><span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="author"><span class="firstname">L.</span> <span class="surname">Esibov</span>. </span><span class="title"><i>A DNS RR for specifying the location of services (DNS SRV)</i>. </span><span class="pubdate">February 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598902"></a><p>[<abbr class="abbrev">RFC2915</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="author"><span class="firstname">R.</span> <span class="surname">Daniel</span>. </span><span class="title"><i>The Naming Authority Pointer (NAPTR) DNS Resource Record</i>. </span><span class="pubdate">September 2000. </span></p>
|
||||
<a name="id2595894"></a><p>[<abbr class="abbrev">RFC2915</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Mealling</span>. </span><span class="author"><span class="firstname">R.</span> <span class="surname">Daniel</span>. </span><span class="title"><i>The Naming Authority Pointer (NAPTR) DNS Resource Record</i>. </span><span class="pubdate">September 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598935"></a><p>[<abbr class="abbrev">RFC3110</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)</i>. </span><span class="pubdate">May 2001. </span></p>
|
||||
<a name="id2595927"></a><p>[<abbr class="abbrev">RFC3110</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)</i>. </span><span class="pubdate">May 2001. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598962"></a><p>[<abbr class="abbrev">RFC3123</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Koch</span>. </span><span class="title"><i>A DNS RR Type for Lists of Address Prefixes (APL RR)</i>. </span><span class="pubdate">June 2001. </span></p>
|
||||
<a name="id2595954"></a><p>[<abbr class="abbrev">RFC3123</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Koch</span>. </span><span class="title"><i>A DNS RR Type for Lists of Address Prefixes (APL RR)</i>. </span><span class="pubdate">June 2001. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2598985"></a><p>[<abbr class="abbrev">RFC3596</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">C.</span> <span class="surname">Huitema</span>, <span class="firstname">V.</span> <span class="surname">Ksinant</span>, and <span class="firstname">M.</span> <span class="surname">Souissi</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Extensions to support IP
|
||||
<a name="id2595977"></a><p>[<abbr class="abbrev">RFC3596</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Thomson</span>, <span class="firstname">C.</span> <span class="surname">Huitema</span>, <span class="firstname">V.</span> <span class="surname">Ksinant</span>, and <span class="firstname">M.</span> <span class="surname">Souissi</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Extensions to support IP
|
||||
version 6</i>. </span><span class="pubdate">October 2003. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599043"></a><p>[<abbr class="abbrev">RFC3597</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gustafsson</span>. </span><span class="title"><i>Handling of Unknown DNS Resource Record (RR) Types</i>. </span><span class="pubdate">September 2003. </span></p>
|
||||
<a name="id2596035"></a><p>[<abbr class="abbrev">RFC3597</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Gustafsson</span>. </span><span class="title"><i>Handling of Unknown DNS Resource Record (RR) Types</i>. </span><span class="pubdate">September 2003. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bibliodiv">
|
||||
<h3 class="title">
|
||||
<acronym class="acronym">DNS</acronym> and the Internet</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599075"></a><p>[<abbr class="abbrev">RFC1101</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Network Names
|
||||
<a name="id2596067"></a><p>[<abbr class="abbrev">RFC1101</abbr>] <span class="author"><span class="firstname">P. V.</span> <span class="surname">Mockapetris</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Network Names
|
||||
and Other Types</i>. </span><span class="pubdate">April 1989. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599100"></a><p>[<abbr class="abbrev">RFC1123</abbr>] <span class="author"><span class="surname">Braden</span>. </span><span class="title"><i>Requirements for Internet Hosts - Application and
|
||||
<a name="id2596092"></a><p>[<abbr class="abbrev">RFC1123</abbr>] <span class="author"><span class="surname">Braden</span>. </span><span class="title"><i>Requirements for Internet Hosts - Application and
|
||||
Support</i>. </span><span class="pubdate">October 1989. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599123"></a><p>[<abbr class="abbrev">RFC1591</abbr>] <span class="author"><span class="firstname">J.</span> <span class="surname">Postel</span>. </span><span class="title"><i>Domain Name System Structure and Delegation</i>. </span><span class="pubdate">March 1994. </span></p>
|
||||
<a name="id2596115"></a><p>[<abbr class="abbrev">RFC1591</abbr>] <span class="author"><span class="firstname">J.</span> <span class="surname">Postel</span>. </span><span class="title"><i>Domain Name System Structure and Delegation</i>. </span><span class="pubdate">March 1994. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599146"></a><p>[<abbr class="abbrev">RFC2317</abbr>] <span class="authorgroup"><span class="firstname">H.</span> <span class="surname">Eidnes</span>, <span class="firstname">G.</span> <span class="surname">de Groot</span>, and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Classless IN-ADDR.ARPA Delegation</i>. </span><span class="pubdate">March 1998. </span></p>
|
||||
<a name="id2596138"></a><p>[<abbr class="abbrev">RFC2317</abbr>] <span class="authorgroup"><span class="firstname">H.</span> <span class="surname">Eidnes</span>, <span class="firstname">G.</span> <span class="surname">de Groot</span>, and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Classless IN-ADDR.ARPA Delegation</i>. </span><span class="pubdate">March 1998. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599192"></a><p>[<abbr class="abbrev">RFC2826</abbr>] <span class="authorgroup"><span class="surname">Internet Architecture Board</span>. </span><span class="title"><i>IAB Technical Comment on the Unique DNS Root</i>. </span><span class="pubdate">May 2000. </span></p>
|
||||
<a name="id2596184"></a><p>[<abbr class="abbrev">RFC2826</abbr>] <span class="authorgroup"><span class="surname">Internet Architecture Board</span>. </span><span class="title"><i>IAB Technical Comment on the Unique DNS Root</i>. </span><span class="pubdate">May 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599216"></a><p>[<abbr class="abbrev">RFC2929</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, <span class="firstname">E.</span> <span class="surname">Brunner-Williams</span>, and <span class="firstname">B.</span> <span class="surname">Manning</span>. </span><span class="title"><i>Domain Name System (DNS) IANA Considerations</i>. </span><span class="pubdate">September 2000. </span></p>
|
||||
<a name="id2596208"></a><p>[<abbr class="abbrev">RFC2929</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>, <span class="firstname">E.</span> <span class="surname">Brunner-Williams</span>, and <span class="firstname">B.</span> <span class="surname">Manning</span>. </span><span class="title"><i>Domain Name System (DNS) IANA Considerations</i>. </span><span class="pubdate">September 2000. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bibliodiv">
|
||||
<h3 class="title">
|
||||
<acronym class="acronym">DNS</acronym> Operations</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599273"></a><p>[<abbr class="abbrev">RFC1033</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Lottor</span>. </span><span class="title"><i>Domain administrators operations guide.</i>. </span><span class="pubdate">November 1987. </span></p>
|
||||
<a name="id2596265"></a><p>[<abbr class="abbrev">RFC1033</abbr>] <span class="author"><span class="firstname">M.</span> <span class="surname">Lottor</span>. </span><span class="title"><i>Domain administrators operations guide.</i>. </span><span class="pubdate">November 1987. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599297"></a><p>[<abbr class="abbrev">RFC1537</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Beertema</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Data File
|
||||
<a name="id2596289"></a><p>[<abbr class="abbrev">RFC1537</abbr>] <span class="author"><span class="firstname">P.</span> <span class="surname">Beertema</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Data File
|
||||
Configuration Errors</i>. </span><span class="pubdate">October 1993. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599323"></a><p>[<abbr class="abbrev">RFC1912</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Barr</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Operational and
|
||||
<a name="id2596315"></a><p>[<abbr class="abbrev">RFC1912</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Barr</span>. </span><span class="title"><i>Common <acronym class="acronym">DNS</acronym> Operational and
|
||||
Configuration Errors</i>. </span><span class="pubdate">February 1996. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599350"></a><p>[<abbr class="abbrev">RFC2010</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Operational Criteria for Root Name Servers.</i>. </span><span class="pubdate">October 1996. </span></p>
|
||||
<a name="id2596342"></a><p>[<abbr class="abbrev">RFC2010</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Manning</span> and <span class="firstname">P.</span> <span class="surname">Vixie</span>. </span><span class="title"><i>Operational Criteria for Root Name Servers.</i>. </span><span class="pubdate">October 1996. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599386"></a><p>[<abbr class="abbrev">RFC2219</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Hamilton</span> and <span class="firstname">R.</span> <span class="surname">Wright</span>. </span><span class="title"><i>Use of <acronym class="acronym">DNS</acronym> Aliases for
|
||||
<a name="id2596378"></a><p>[<abbr class="abbrev">RFC2219</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Hamilton</span> and <span class="firstname">R.</span> <span class="surname">Wright</span>. </span><span class="title"><i>Use of <acronym class="acronym">DNS</acronym> Aliases for
|
||||
Network Services.</i>. </span><span class="pubdate">October 1997. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bibliodiv">
|
||||
<h3 class="title">Internationalized Domain Names</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599432"></a><p>[<abbr class="abbrev">RFC2825</abbr>] <span class="authorgroup"><span class="surname">IAB</span> and <span class="firstname">R.</span> <span class="surname">Daigle</span>. </span><span class="title"><i>A Tangled Web: Issues of I18N, Domain Names,
|
||||
<a name="id2596424"></a><p>[<abbr class="abbrev">RFC2825</abbr>] <span class="authorgroup"><span class="surname">IAB</span> and <span class="firstname">R.</span> <span class="surname">Daigle</span>. </span><span class="title"><i>A Tangled Web: Issues of I18N, Domain Names,
|
||||
and the Other Internet protocols</i>. </span><span class="pubdate">May 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599464"></a><p>[<abbr class="abbrev">RFC3490</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Faltstrom</span>, <span class="firstname">P.</span> <span class="surname">Hoffman</span>, and <span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Internationalizing Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
|
||||
<a name="id2596456"></a><p>[<abbr class="abbrev">RFC3490</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Faltstrom</span>, <span class="firstname">P.</span> <span class="surname">Hoffman</span>, and <span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Internationalizing Domain Names in Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599510"></a><p>[<abbr class="abbrev">RFC3491</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Hoffman</span> and <span class="firstname">M.</span> <span class="surname">Blanchet</span>. </span><span class="title"><i>Nameprep: A Stringprep Profile for Internationalized Domain Names</i>. </span><span class="pubdate">March 2003. </span></p>
|
||||
<a name="id2596502"></a><p>[<abbr class="abbrev">RFC3491</abbr>] <span class="authorgroup"><span class="firstname">P.</span> <span class="surname">Hoffman</span> and <span class="firstname">M.</span> <span class="surname">Blanchet</span>. </span><span class="title"><i>Nameprep: A Stringprep Profile for Internationalized Domain Names</i>. </span><span class="pubdate">March 2003. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599545"></a><p>[<abbr class="abbrev">RFC3492</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Punycode: A Bootstring encoding of Unicode
|
||||
<a name="id2596537"></a><p>[<abbr class="abbrev">RFC3492</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Costello</span>. </span><span class="title"><i>Punycode: A Bootstring encoding of Unicode
|
||||
for Internationalized Domain Names in
|
||||
Applications (IDNA)</i>. </span><span class="pubdate">March 2003. </span></p>
|
||||
</div>
|
||||
@@ -489,47 +489,47 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599590"></a><p>[<abbr class="abbrev">RFC1464</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Rosenbaum</span>. </span><span class="title"><i>Using the Domain Name System To Store Arbitrary String
|
||||
<a name="id2596582"></a><p>[<abbr class="abbrev">RFC1464</abbr>] <span class="author"><span class="firstname">R.</span> <span class="surname">Rosenbaum</span>. </span><span class="title"><i>Using the Domain Name System To Store Arbitrary String
|
||||
Attributes</i>. </span><span class="pubdate">May 1993. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599612"></a><p>[<abbr class="abbrev">RFC1713</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Romao</span>. </span><span class="title"><i>Tools for <acronym class="acronym">DNS</acronym> Debugging</i>. </span><span class="pubdate">November 1994. </span></p>
|
||||
<a name="id2596673"></a><p>[<abbr class="abbrev">RFC1713</abbr>] <span class="author"><span class="firstname">A.</span> <span class="surname">Romao</span>. </span><span class="title"><i>Tools for <acronym class="acronym">DNS</acronym> Debugging</i>. </span><span class="pubdate">November 1994. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599638"></a><p>[<abbr class="abbrev">RFC1794</abbr>] <span class="author"><span class="firstname">T.</span> <span class="surname">Brisco</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Support for Load
|
||||
<a name="id2596698"></a><p>[<abbr class="abbrev">RFC1794</abbr>] <span class="author"><span class="firstname">T.</span> <span class="surname">Brisco</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Support for Load
|
||||
Balancing</i>. </span><span class="pubdate">April 1995. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599664"></a><p>[<abbr class="abbrev">RFC2240</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Legal Basis for Domain Name Allocation</i>. </span><span class="pubdate">November 1997. </span></p>
|
||||
<a name="id2596724"></a><p>[<abbr class="abbrev">RFC2240</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Legal Basis for Domain Name Allocation</i>. </span><span class="pubdate">November 1997. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599687"></a><p>[<abbr class="abbrev">RFC2345</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>, <span class="firstname">T.</span> <span class="surname">Wolf</span>, and <span class="firstname">G.</span> <span class="surname">Oglesby</span>. </span><span class="title"><i>Domain Names and Company Name Retrieval</i>. </span><span class="pubdate">May 1998. </span></p>
|
||||
<a name="id2596747"></a><p>[<abbr class="abbrev">RFC2345</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>, <span class="firstname">T.</span> <span class="surname">Wolf</span>, and <span class="firstname">G.</span> <span class="surname">Oglesby</span>. </span><span class="title"><i>Domain Names and Company Name Retrieval</i>. </span><span class="pubdate">May 1998. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599733"></a><p>[<abbr class="abbrev">RFC2352</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Convention For Using Legal Names as Domain Names</i>. </span><span class="pubdate">May 1998. </span></p>
|
||||
<a name="id2596793"></a><p>[<abbr class="abbrev">RFC2352</abbr>] <span class="author"><span class="firstname">O.</span> <span class="surname">Vaughan</span>. </span><span class="title"><i>A Convention For Using Legal Names as Domain Names</i>. </span><span class="pubdate">May 1998. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599756"></a><p>[<abbr class="abbrev">RFC3071</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>. </span><span class="title"><i>Reflections on the DNS, RFC 1591, and Categories of Domains</i>. </span><span class="pubdate">February 2001. </span></p>
|
||||
<a name="id2596817"></a><p>[<abbr class="abbrev">RFC3071</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Klensin</span>. </span><span class="title"><i>Reflections on the DNS, RFC 1591, and Categories of Domains</i>. </span><span class="pubdate">February 2001. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599783"></a><p>[<abbr class="abbrev">RFC3258</abbr>] <span class="authorgroup"><span class="firstname">T.</span> <span class="surname">Hardie</span>. </span><span class="title"><i>Distributing Authoritative Name Servers via
|
||||
<a name="id2596843"></a><p>[<abbr class="abbrev">RFC3258</abbr>] <span class="authorgroup"><span class="firstname">T.</span> <span class="surname">Hardie</span>. </span><span class="title"><i>Distributing Authoritative Name Servers via
|
||||
Shared Unicast Addresses</i>. </span><span class="pubdate">April 2002. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599809"></a><p>[<abbr class="abbrev">RFC3901</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Durand</span> and <span class="firstname">J.</span> <span class="surname">Ihren</span>. </span><span class="title"><i>DNS IPv6 Transport Operational Guidelines</i>. </span><span class="pubdate">September 2004. </span></p>
|
||||
<a name="id2596869"></a><p>[<abbr class="abbrev">RFC3901</abbr>] <span class="authorgroup"><span class="firstname">A.</span> <span class="surname">Durand</span> and <span class="firstname">J.</span> <span class="surname">Ihren</span>. </span><span class="title"><i>DNS IPv6 Transport Operational Guidelines</i>. </span><span class="pubdate">September 2004. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bibliodiv">
|
||||
<h3 class="title">Obsolete and Unimplemented Experimental RFC</h3>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599852"></a><p>[<abbr class="abbrev">RFC1712</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Farrell</span>, <span class="firstname">M.</span> <span class="surname">Schulze</span>, <span class="firstname">S.</span> <span class="surname">Pleitner</span>, and <span class="firstname">D.</span> <span class="surname">Baldoni</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Geographical
|
||||
<a name="id2596913"></a><p>[<abbr class="abbrev">RFC1712</abbr>] <span class="authorgroup"><span class="firstname">C.</span> <span class="surname">Farrell</span>, <span class="firstname">M.</span> <span class="surname">Schulze</span>, <span class="firstname">S.</span> <span class="surname">Pleitner</span>, and <span class="firstname">D.</span> <span class="surname">Baldoni</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> Encoding of Geographical
|
||||
Location</i>. </span><span class="pubdate">November 1994. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599910"></a><p>[<abbr class="abbrev">RFC2673</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Binary Labels in the Domain Name System</i>. </span><span class="pubdate">August 1999. </span></p>
|
||||
<a name="id2597038"></a><p>[<abbr class="abbrev">RFC2673</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span>. </span><span class="title"><i>Binary Labels in the Domain Name System</i>. </span><span class="pubdate">August 1999. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599937"></a><p>[<abbr class="abbrev">RFC2874</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span> and <span class="firstname">C.</span> <span class="surname">Huitema</span>. </span><span class="title"><i>DNS Extensions to Support IPv6 Address Aggregation
|
||||
<a name="id2597065"></a><p>[<abbr class="abbrev">RFC2874</abbr>] <span class="authorgroup"><span class="firstname">M.</span> <span class="surname">Crawford</span> and <span class="firstname">C.</span> <span class="surname">Huitema</span>. </span><span class="title"><i>DNS Extensions to Support IPv6 Address Aggregation
|
||||
and Renumbering</i>. </span><span class="pubdate">July 2000. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -543,39 +543,39 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2599985"></a><p>[<abbr class="abbrev">RFC2065</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">C.</span> <span class="surname">Kaufman</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">January 1997. </span></p>
|
||||
<a name="id2597113"></a><p>[<abbr class="abbrev">RFC2065</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span> and <span class="firstname">C.</span> <span class="surname">Kaufman</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">January 1997. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600024"></a><p>[<abbr class="abbrev">RFC2137</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secure Domain Name System Dynamic Update</i>. </span><span class="pubdate">April 1997. </span></p>
|
||||
<a name="id2597153"></a><p>[<abbr class="abbrev">RFC2137</abbr>] <span class="author"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Secure Domain Name System Dynamic Update</i>. </span><span class="pubdate">April 1997. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600051"></a><p>[<abbr class="abbrev">RFC2535</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
<a name="id2597179"></a><p>[<abbr class="abbrev">RFC2535</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Eastlake</span>, <span class="lineage">3rd</span>. </span><span class="title"><i>Domain Name System Security Extensions</i>. </span><span class="pubdate">March 1999. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600081"></a><p>[<abbr class="abbrev">RFC3008</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Domain Name System Security (DNSSEC)
|
||||
<a name="id2597209"></a><p>[<abbr class="abbrev">RFC3008</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span>. </span><span class="title"><i>Domain Name System Security (DNSSEC)
|
||||
Signing Authority</i>. </span><span class="pubdate">November 2000. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600106"></a><p>[<abbr class="abbrev">RFC3090</abbr>] <span class="authorgroup"><span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>DNS Security Extension Clarification on Zone Status</i>. </span><span class="pubdate">March 2001. </span></p>
|
||||
<a name="id2597235"></a><p>[<abbr class="abbrev">RFC3090</abbr>] <span class="authorgroup"><span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>DNS Security Extension Clarification on Zone Status</i>. </span><span class="pubdate">March 2001. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600133"></a><p>[<abbr class="abbrev">RFC3445</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Massey</span> and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Limiting the Scope of the KEY Resource Record (RR)</i>. </span><span class="pubdate">December 2002. </span></p>
|
||||
<a name="id2597261"></a><p>[<abbr class="abbrev">RFC3445</abbr>] <span class="authorgroup"><span class="firstname">D.</span> <span class="surname">Massey</span> and <span class="firstname">S.</span> <span class="surname">Rose</span>. </span><span class="title"><i>Limiting the Scope of the KEY Resource Record (RR)</i>. </span><span class="pubdate">December 2002. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600169"></a><p>[<abbr class="abbrev">RFC3655</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Redefinition of DNS Authenticated Data (AD) bit</i>. </span><span class="pubdate">November 2003. </span></p>
|
||||
<a name="id2597298"></a><p>[<abbr class="abbrev">RFC3655</abbr>] <span class="authorgroup"><span class="firstname">B.</span> <span class="surname">Wellington</span> and <span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Redefinition of DNS Authenticated Data (AD) bit</i>. </span><span class="pubdate">November 2003. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600205"></a><p>[<abbr class="abbrev">RFC3658</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Delegation Signer (DS) Resource Record (RR)</i>. </span><span class="pubdate">December 2003. </span></p>
|
||||
<a name="id2597334"></a><p>[<abbr class="abbrev">RFC3658</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Gudmundsson</span>. </span><span class="title"><i>Delegation Signer (DS) Resource Record (RR)</i>. </span><span class="pubdate">December 2003. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600232"></a><p>[<abbr class="abbrev">RFC3755</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Weiler</span>. </span><span class="title"><i>Legacy Resolver Compatibility for Delegation Signer (DS)</i>. </span><span class="pubdate">May 2004. </span></p>
|
||||
<a name="id2597361"></a><p>[<abbr class="abbrev">RFC3755</abbr>] <span class="authorgroup"><span class="firstname">S.</span> <span class="surname">Weiler</span>. </span><span class="title"><i>Legacy Resolver Compatibility for Delegation Signer (DS)</i>. </span><span class="pubdate">May 2004. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600259"></a><p>[<abbr class="abbrev">RFC3757</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Kolkman</span>, <span class="firstname">J.</span> <span class="surname">Schlyter</span>, and <span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>Domain Name System KEY (DNSKEY) Resource Record
|
||||
<a name="id2597387"></a><p>[<abbr class="abbrev">RFC3757</abbr>] <span class="authorgroup"><span class="firstname">O.</span> <span class="surname">Kolkman</span>, <span class="firstname">J.</span> <span class="surname">Schlyter</span>, and <span class="firstname">E.</span> <span class="surname">Lewis</span>. </span><span class="title"><i>Domain Name System KEY (DNSKEY) Resource Record
|
||||
(RR) Secure Entry Point (SEP) Flag</i>. </span><span class="pubdate">April 2004. </span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600304"></a><p>[<abbr class="abbrev">RFC3845</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Schlyter</span>. </span><span class="title"><i>DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format</i>. </span><span class="pubdate">August 2004. </span></p>
|
||||
<a name="id2597432"></a><p>[<abbr class="abbrev">RFC3845</abbr>] <span class="authorgroup"><span class="firstname">J.</span> <span class="surname">Schlyter</span>. </span><span class="title"><i>DNS Security (DNSSEC) NextSECure (NSEC) RDATA Format</i>. </span><span class="pubdate">August 2004. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -596,14 +596,14 @@
|
||||
</div>
|
||||
<div class="sect2" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="id2600413"></a>Other Documents About <acronym class="acronym">BIND</acronym>
|
||||
<a name="id2597474"></a>Other Documents About <acronym class="acronym">BIND</acronym>
|
||||
</h3></div></div></div>
|
||||
<p></p>
|
||||
<div class="bibliography">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="id2600423"></a>Bibliography</h4></div></div></div>
|
||||
<a name="id2597483"></a>Bibliography</h4></div></div></div>
|
||||
<div class="biblioentry">
|
||||
<a name="id2600425"></a><p><span class="authorgroup"><span class="firstname">Paul</span> <span class="surname">Albitz</span> and <span class="firstname">Cricket</span> <span class="surname">Liu</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></i>. </span><span class="copyright">Copyright © 1998 Sebastopol, CA: O'Reilly and Associates. </span></p>
|
||||
<a name="id2597485"></a><p><span class="authorgroup"><span class="firstname">Paul</span> <span class="surname">Albitz</span> and <span class="firstname">Cricket</span> <span class="surname">Liu</span>. </span><span class="title"><i><acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></i>. </span><span class="copyright">Copyright © 1998 Sebastopol, CA: O'Reilly and Associates. </span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.ch10.html,v 1.7.214.2 2008/05/29 01:41:57 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.ch10.html,v 1.7 2007/01/30 00:25:00 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
+75
-80
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: Bv9ARM.html,v 1.164.18.12 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: Bv9ARM.html,v 1.164 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -40,8 +40,8 @@
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div><h1 class="title">
|
||||
<a name="id2563174"></a>BIND 9 Administrator Reference Manual</h1></div>
|
||||
<div><p class="copyright">Copyright © 2004-2008 Internet Systems Consortium, Inc. ("ISC")</p></div>
|
||||
<a name="id2563403"></a>BIND 9 Administrator Reference Manual</h1></div>
|
||||
<div><p class="copyright">Copyright © 2004-2007 Internet Systems Consortium, Inc. ("ISC")</p></div>
|
||||
<div><p class="copyright">Copyright © 2000-2003 Internet Software Consortium.</p></div>
|
||||
</div>
|
||||
<hr>
|
||||
@@ -51,39 +51,39 @@
|
||||
<dl>
|
||||
<dt><span class="chapter"><a href="Bv9ARM.ch01.html">1. Introduction</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2563405">Scope of Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564385">Organization of This Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564524">Conventions Used in This Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564637">The Domain Name System (<acronym class="acronym">DNS</acronym>)</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564106">Scope of Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564130">Organization of This Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2563470">Conventions Used in This Document</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2564812">The Domain Name System (<acronym class="acronym">DNS</acronym>)</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564659">DNS Fundamentals</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564693">Domains and Domain Names</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564845">Zones</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567243">Authoritative Name Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567416">Caching Name Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567546">Name Servers in Multiple Roles</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564834">DNS Fundamentals</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2564868">Domains and Domain Names</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567205">Zones</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567282">Authoritative Name Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567523">Caching Name Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2567585">Name Servers in Multiple Roles</a></span></dt>
|
||||
</dl></dd>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="Bv9ARM.ch02.html">2. <acronym class="acronym">BIND</acronym> Resource Requirements</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567580">Hardware requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567607">CPU Requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567620">Memory Requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567851">Name Server Intensive Environment Issues</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567862">Supported Operating Systems</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567619">Hardware requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567714">CPU Requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567726">Memory Requirements</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567753">Name Server Intensive Environment Issues</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch02.html#id2567764">Supported Operating Systems</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="Bv9ARM.ch03.html">3. Name Server Configuration</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#sample_configuration">Sample Configurations</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2567894">A Caching-only Name Server</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2567910">An Authoritative-only Name Server</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568001">A Caching-only Name Server</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568017">An Authoritative-only Name Server</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568001">Load Balancing</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568423">Name Server Operations</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568039">Load Balancing</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch03.html#id2568461">Name Server Operations</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568428">Tools for Use With the Name Server Daemon</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2570142">Signals</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2568467">Tools for Use With the Name Server Daemon</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch03.html#id2570181">Signals</a></span></dt>
|
||||
</dl></dd>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="Bv9ARM.ch04.html">4. Advanced DNS Features</a></span></dt>
|
||||
@@ -92,34 +92,34 @@
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dynamic_update">Dynamic Update</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#journal">The journal file</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#incremental_zone_transfers">Incremental Zone Transfers (IXFR)</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2570616">Split DNS</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570634">Example split DNS setup</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2570654">Split DNS</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570673">Example split DNS setup</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#tsig">TSIG</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571069">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571143">Copying the Shared Secret to Both Machines</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571154">Informing the Servers of the Key's Existence</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571193">Instructing the Server to Use the Key</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571319">TSIG Key Based Access Control</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571432">Errors</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571108">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571181">Copying the Shared Secret to Both Machines</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571192">Informing the Servers of the Key's Existence</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571232">Instructing the Server to Use the Key</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571426">TSIG Key Based Access Control</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571470">Errors</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571446">TKEY</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571563">SIG(0)</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571484">TKEY</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571533">SIG(0)</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#DNSSEC">DNSSEC</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571700">Generating Keys</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571769">Signing the Zone</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571848">Configuring Servers</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571738">Generating Keys</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571808">Signing the Zone</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571886">Configuring Servers</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571923">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572029">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572189">Address Lookups Using AAAA Records</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572211">Address to Name Lookups Using Nibble Format</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572228">Address Lookups Using AAAA Records</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572249">Address to Name Lookups Using Nibble Format</a></span></dt>
|
||||
</dl></dd>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="Bv9ARM.ch05.html">5. The <acronym class="acronym">BIND</acronym> 9 Lightweight Resolver</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2572244">The Lightweight Resolver Library</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch05.html#id2572282">The Lightweight Resolver Library</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch05.html#lwresd">Running a Resolver Daemon</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="Bv9ARM.ch06.html">6. <acronym class="acronym">BIND</acronym> 9 Configuration Reference</a></span></dt>
|
||||
@@ -127,88 +127,83 @@
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#configuration_file_elements">Configuration File Elements</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#address_match_lists">Address Match Lists</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2573477">Comment Syntax</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2573515">Comment Syntax</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#Configuration_File_Grammar">Configuration File Grammar</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574116"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574128"><span><strong class="command">acl</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#acl"><span><strong class="command">acl</strong></span> Statement Definition and
|
||||
Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574306"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574317"><span><strong class="command">controls</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#controls_statement_definition_and_usage"><span><strong class="command">controls</strong></span> Statement Definition and
|
||||
Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574734"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574752"><span><strong class="command">include</strong></span> Statement Definition and
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574746"><span><strong class="command">include</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574761"><span><strong class="command">include</strong></span> Statement Definition and
|
||||
Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574775"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574798"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575026"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575152"><span><strong class="command">logging</strong></span> Statement Definition and
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574785"><span><strong class="command">key</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2574806"><span><strong class="command">key</strong></span> Statement Definition and Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575033"><span><strong class="command">logging</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2575159"><span><strong class="command">logging</strong></span> Statement Definition and
|
||||
Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576464"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576537"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576601"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576645"><span><strong class="command">masters</strong></span> Statement Definition and
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576471"><span><strong class="command">lwres</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576613"><span><strong class="command">lwres</strong></span> Statement Definition and Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576677"><span><strong class="command">masters</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576721"><span><strong class="command">masters</strong></span> Statement Definition and
|
||||
Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576660"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2576736"><span><strong class="command">options</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#options"><span><strong class="command">options</strong></span> Statement Definition and
|
||||
Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#statschannels"><span><strong class="command">statistics-channels</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2584778"><span><strong class="command">statistics-channels</strong></span> Statement Definition and
|
||||
Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_grammar"><span><strong class="command">server</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#server_statement_definition_and_usage"><span><strong class="command">server</strong></span> Statement Definition and
|
||||
Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2585598"><span><strong class="command">trusted-keys</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2585650"><span><strong class="command">trusted-keys</strong></span> Statement Definition
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2585830"><span><strong class="command">trusted-keys</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2585879"><span><strong class="command">trusted-keys</strong></span> Statement Definition
|
||||
and Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#view_statement_grammar"><span><strong class="command">view</strong></span> Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2585732"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2585959"><span><strong class="command">view</strong></span> Statement Definition and Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zone_statement_grammar"><span><strong class="command">zone</strong></span>
|
||||
Statement Grammar</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2587224"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2587449"><span><strong class="command">zone</strong></span> Statement Definition and Usage</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2589434">Zone File</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2589864">Zone File</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them">Types of Resource Records and When to Use Them</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591456">Discussion of MX Records</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2591749">Discussion of MX Records</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#Setting_TTLs">Setting TTLs</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592075">Inverse Mapping in IPv4</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592339">Other Zone File Directives</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592596"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592573">Inverse Mapping in IPv4</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592700">Other Zone File Directives</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2592889"><acronym class="acronym">BIND</acronym> Master File Extension: the <span><strong class="command">$GENERATE</strong></span> Directive</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch06.html#zonefile_format">Additional File Formats</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch06.html#id2592996">BIND9 Statistics</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch06.html#id2593345">Statistics Counters</a></span></dt></dl></dd>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="Bv9ARM.ch07.html">7. <acronym class="acronym">BIND</acronym> 9 Security Considerations</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#Access_Control_Lists">Access Control Lists</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2596513"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#id2593436"><span><strong class="command">Chroot</strong></span> and <span><strong class="command">Setuid</strong></span></a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2596589">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2596649">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2593581">The <span><strong class="command">chroot</strong></span> Environment</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch07.html#id2593641">Using the <span><strong class="command">setuid</strong></span> Function</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch07.html#dynamic_update_security">Dynamic Update Security</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="chapter"><a href="Bv9ARM.ch08.html">8. Troubleshooting</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2596729">Common Problems</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2596734">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2596746">Incrementing and Changing the Serial Number</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2596763">Where Can I Get Help?</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2593721">Common Problems</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch08.html#id2593795">It's not working; how can I figure out what's wrong?</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2593806">Incrementing and Changing the Serial Number</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch08.html#id2593824">Where Can I Get Help?</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="appendix"><a href="Bv9ARM.ch09.html">A. Appendices</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2596893">Acknowledgments</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2593954">Acknowledgments</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#historical_dns_information">A Brief History of the <acronym class="acronym">DNS</acronym> and <acronym class="acronym">BIND</acronym></a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2597065">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#id2594057">General <acronym class="acronym">DNS</acronym> Reference Information</a></span></dt>
|
||||
<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch09.html#ipv6addresses">IPv6 addresses (AAAA)</a></span></dt></dl></dd>
|
||||
<dt><span class="sect1"><a href="Bv9ARM.ch09.html#bibliography">Bibliography (and Suggested Reading)</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#rfcs">Request for Comments (RFCs)</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#internet_drafts">Internet Drafts</a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2600413">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
|
||||
<dt><span class="sect2"><a href="Bv9ARM.ch09.html#id2597474">Other Documents About <acronym class="acronym">BIND</acronym></a></span></dt>
|
||||
</dl></dd>
|
||||
</dl></dd>
|
||||
<dt><span class="reference"><a href="Bv9ARM.ch10.html">I. Manual pages</a></span></dt>
|
||||
|
||||
+7030
-7546
File diff suppressed because one or more lines are too long
+11
-15
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: man.dig.html,v 1.60.18.15 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: man.dig.html,v 1.60 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -52,7 +52,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dig</code> [global-queryopt...] [query...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2569755"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2563928"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
(domain information groper) is a flexible tool
|
||||
for interrogating DNS name servers. It performs DNS lookups and
|
||||
@@ -98,7 +98,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2600564"></a><h2>SIMPLE USAGE</h2>
|
||||
<a name="id2564017"></a><h2>SIMPLE USAGE</h2>
|
||||
<p>
|
||||
A typical invocation of <span><strong class="command">dig</strong></span> looks like:
|
||||
</p>
|
||||
@@ -144,7 +144,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2600675"></a><h2>OPTIONS</h2>
|
||||
<a name="id2569862"></a><h2>OPTIONS</h2>
|
||||
<p>
|
||||
The <code class="option">-b</code> option sets the source IP address of the query
|
||||
to <em class="parameter"><code>address</code></em>. This must be a valid
|
||||
@@ -244,7 +244,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2627563"></a><h2>QUERY OPTIONS</h2>
|
||||
<a name="id2650203"></a><h2>QUERY OPTIONS</h2>
|
||||
<p><span><strong class="command">dig</strong></span>
|
||||
provides a number of query options which affect
|
||||
the way in which lookups are made and the results displayed. Some of
|
||||
@@ -557,17 +557,13 @@
|
||||
validation.
|
||||
Requires dig be compiled with -DDIG_SIGCHASE.
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="option">+[no]nsid</code></span></dt>
|
||||
<dd><p>
|
||||
Include an EDNS name server ID request when sending a query.
|
||||
</p></dd>
|
||||
</dl></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2628564"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<a name="id2651122"></a><h2>MULTIPLE QUERIES</h2>
|
||||
<p>
|
||||
The BIND 9 implementation of <span><strong class="command">dig </strong></span>
|
||||
supports
|
||||
@@ -613,7 +609,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2628649"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2651275"></a><h2>IDN SUPPORT</h2>
|
||||
<p>
|
||||
If <span><strong class="command">dig</strong></span> has been built with IDN (internationalized
|
||||
domain name) support, it can accept and display non-ASCII domain names.
|
||||
@@ -627,14 +623,14 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2628678"></a><h2>FILES</h2>
|
||||
<a name="id2651304"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/resolv.conf</code>
|
||||
</p>
|
||||
<p><code class="filename">${HOME}/.digrc</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2628699"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2651325"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">host</span>(1)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
|
||||
@@ -642,7 +638,7 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2628737"></a><h2>BUGS</h2>
|
||||
<a name="id2651363"></a><h2>BUGS</h2>
|
||||
<p>
|
||||
There are probably too many query options.
|
||||
</p>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: man.dnssec-keygen.html,v 1.60.18.16 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: man.dnssec-keygen.html,v 1.60 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -50,7 +50,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-keygen</code> {-a <em class="replaceable"><code>algorithm</code></em>} {-b <em class="replaceable"><code>keysize</code></em>} {-n <em class="replaceable"><code>nametype</code></em>} [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-e</code>] [<code class="option">-f <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-g <em class="replaceable"><code>generator</code></em></code>] [<code class="option">-h</code>] [<code class="option">-k</code>] [<code class="option">-p <em class="replaceable"><code>protocol</code></em></code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-s <em class="replaceable"><code>strength</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] {name}</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2601853"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2598620"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dnssec-keygen</strong></span>
|
||||
generates keys for DNSSEC (Secure DNS), as defined in RFC 2535
|
||||
and RFC 4034. It can also generate keys for use with
|
||||
@@ -58,7 +58,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2601867"></a><h2>OPTIONS</h2>
|
||||
<a name="id2598634"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a <em class="replaceable"><code>algorithm</code></em></span></dt>
|
||||
<dd>
|
||||
@@ -166,7 +166,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2602757"></a><h2>GENERATED KEYS</h2>
|
||||
<a name="id2599114"></a><h2>GENERATED KEYS</h2>
|
||||
<p>
|
||||
When <span><strong class="command">dnssec-keygen</strong></span> completes
|
||||
successfully,
|
||||
@@ -212,7 +212,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2602865"></a><h2>EXAMPLE</h2>
|
||||
<a name="id2600860"></a><h2>EXAMPLE</h2>
|
||||
<p>
|
||||
To generate a 768-bit DSA key for the domain
|
||||
<strong class="userinput"><code>example.com</code></strong>, the following command would be
|
||||
@@ -233,7 +233,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2604082"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2600917"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dnssec-signzone</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
|
||||
<em class="citetitle">RFC 2535</em>,
|
||||
@@ -242,7 +242,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2604113"></a><h2>AUTHOR</h2>
|
||||
<a name="id2600948"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: man.dnssec-signzone.html,v 1.58.18.17 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: man.dnssec-signzone.html,v 1.58 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -50,7 +50,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">dnssec-signzone</code> [<code class="option">-a</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-d <em class="replaceable"><code>directory</code></em></code>] [<code class="option">-e <em class="replaceable"><code>end-time</code></em></code>] [<code class="option">-f <em class="replaceable"><code>output-file</code></em></code>] [<code class="option">-g</code>] [<code class="option">-h</code>] [<code class="option">-k <em class="replaceable"><code>key</code></em></code>] [<code class="option">-l <em class="replaceable"><code>domain</code></em></code>] [<code class="option">-i <em class="replaceable"><code>interval</code></em></code>] [<code class="option">-I <em class="replaceable"><code>input-format</code></em></code>] [<code class="option">-j <em class="replaceable"><code>jitter</code></em></code>] [<code class="option">-N <em class="replaceable"><code>soa-serial-format</code></em></code>] [<code class="option">-o <em class="replaceable"><code>origin</code></em></code>] [<code class="option">-O <em class="replaceable"><code>output-format</code></em></code>] [<code class="option">-p</code>] [<code class="option">-r <em class="replaceable"><code>randomdev</code></em></code>] [<code class="option">-s <em class="replaceable"><code>start-time</code></em></code>] [<code class="option">-t</code>] [<code class="option">-v <em class="replaceable"><code>level</code></em></code>] [<code class="option">-z</code>] {zonefile} [key...]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2603188"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2599886"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">dnssec-signzone</strong></span>
|
||||
signs a zone. It generates
|
||||
NSEC and RRSIG records and produces a signed version of the
|
||||
@@ -61,7 +61,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2603207"></a><h2>OPTIONS</h2>
|
||||
<a name="id2599906"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-a</span></dt>
|
||||
<dd><p>
|
||||
@@ -259,7 +259,7 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2656868"></a><h2>EXAMPLE</h2>
|
||||
<a name="id2622164"></a><h2>EXAMPLE</h2>
|
||||
<p>
|
||||
The following command signs the <strong class="userinput"><code>example.com</code></strong>
|
||||
zone with the DSA key generated by <span><strong class="command">dnssec-keygen</strong></span>
|
||||
@@ -288,14 +288,14 @@ db.example.com.signed
|
||||
%</pre>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2657009"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2653776"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dnssec-keygen</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>,
|
||||
<em class="citetitle">RFC 2535</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2657033"></a><h2>AUTHOR</h2>
|
||||
<a name="id2653800"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: man.host.html,v 1.58.18.16 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: man.host.html,v 1.58 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -50,7 +50,7 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">host</code> [<code class="option">-aCdlnrsTwv</code>] [<code class="option">-c <em class="replaceable"><code>class</code></em></code>] [<code class="option">-N <em class="replaceable"><code>ndots</code></em></code>] [<code class="option">-R <em class="replaceable"><code>number</code></em></code>] [<code class="option">-t <em class="replaceable"><code>type</code></em></code>] [<code class="option">-W <em class="replaceable"><code>wait</code></em></code>] [<code class="option">-m <em class="replaceable"><code>flag</code></em></code>] [<code class="option">-4</code>] [<code class="option">-6</code>] {name} [server]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2600822"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2597722"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">host</strong></span>
|
||||
is a simple utility for performing DNS lookups.
|
||||
It is normally used to convert names to IP addresses and vice versa.
|
||||
@@ -166,7 +166,7 @@
|
||||
NS, SOA, SIG, KEY, AXFR, etc. When no query type is specified,
|
||||
<span><strong class="command">host</strong></span> automatically selects an appropriate
|
||||
query
|
||||
type. By default it looks for A, AAAA, and MX records, but if the
|
||||
type. By default it looks for A records, but if the
|
||||
<code class="option">-C</code> option was given, queries will be made for SOA
|
||||
records, and if <em class="parameter"><code>name</code></em> is a
|
||||
dotted-decimal IPv4
|
||||
@@ -202,7 +202,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2601268"></a><h2>IDN SUPPORT</h2>
|
||||
<a name="id2598236"></a><h2>IDN SUPPORT</h2>
|
||||
<p>
|
||||
If <span><strong class="command">host</strong></span> has been built with IDN (internationalized
|
||||
domain name) support, it can accept and display non-ASCII domain names.
|
||||
@@ -216,12 +216,12 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2601297"></a><h2>FILES</h2>
|
||||
<a name="id2598265"></a><h2>FILES</h2>
|
||||
<p><code class="filename">/etc/resolv.conf</code>
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2601379"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2598279"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">dig</span>(1)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>.
|
||||
</p>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
- Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
|
||||
- Copyright (C) 2000-2003 Internet Software Consortium.
|
||||
-
|
||||
- Permission to use, copy, modify, and distribute this software for any
|
||||
@@ -14,7 +14,7 @@
|
||||
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
- PERFORMANCE OF THIS SOFTWARE.
|
||||
-->
|
||||
<!-- $Id: man.named-checkconf.html,v 1.57.18.16 2008/06/04 02:51:13 tbox Exp $ -->
|
||||
<!-- $Id: man.named-checkconf.html,v 1.57 2007/11/26 01:35:18 marka Exp $ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
@@ -50,14 +50,14 @@
|
||||
<div class="cmdsynopsis"><p><code class="command">named-checkconf</code> [<code class="option">-h</code>] [<code class="option">-v</code>] [<code class="option">-j</code>] [<code class="option">-t <em class="replaceable"><code>directory</code></em></code>] {filename} [<code class="option">-z</code>]</p></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2604204"></a><h2>DESCRIPTION</h2>
|
||||
<a name="id2600220"></a><h2>DESCRIPTION</h2>
|
||||
<p><span><strong class="command">named-checkconf</strong></span>
|
||||
checks the syntax, but not the semantics, of a named
|
||||
configuration file.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2604218"></a><h2>OPTIONS</h2>
|
||||
<a name="id2600234"></a><h2>OPTIONS</h2>
|
||||
<div class="variablelist"><dl>
|
||||
<dt><span class="term">-h</span></dt>
|
||||
<dd><p>
|
||||
@@ -92,21 +92,21 @@
|
||||
</dl></div>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2604334"></a><h2>RETURN VALUES</h2>
|
||||
<a name="id2600350"></a><h2>RETURN VALUES</h2>
|
||||
<p><span><strong class="command">named-checkconf</strong></span>
|
||||
returns an exit status of 1 if
|
||||
errors were detected and 0 otherwise.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2604348"></a><h2>SEE ALSO</h2>
|
||||
<a name="id2600364"></a><h2>SEE ALSO</h2>
|
||||
<p><span class="citerefentry"><span class="refentrytitle">named</span>(8)</span>,
|
||||
<span class="citerefentry"><span class="refentrytitle">named-checkzone</span>(8)</span>,
|
||||
<em class="citetitle">BIND 9 Administrator Reference Manual</em>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="refsect1" lang="en">
|
||||
<a name="id2604378"></a><h2>AUTHOR</h2>
|
||||
<a name="id2600394"></a><h2>AUTHOR</h2>
|
||||
<p><span class="corpauthor">Internet Systems Consortium</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user