Compare commits

...

2 Commits

8 changed files with 5832 additions and 3109 deletions

View File

@@ -1,7 +1,3 @@
2260. [bug] Reported wrong clients-per-query when increasing the
value. [RT #17236]
2259. [placeholder]
--- 9.5.0a7 released ---

66
FAQ.xml
View File

@@ -17,7 +17,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: FAQ.xml,v 1.30 2007/11/02 00:25:41 marka Exp $ -->
<!-- $Id: FAQ.xml,v 1.28 2007/10/31 01:40:00 marka Exp $ -->
<article class="faq">
<title>Frequently Asked Questions about BIND 9</title>
@@ -1339,70 +1339,6 @@ rand_irqs="3 14 15"</programlisting>
</answer>
</qandaentry>
</qandadiv>
<qandadiv><title>Apple Mac OS X</title>
<qandaentry>
<question>
<para>
How do I run BIND 9 on Apple Mac OS X?
</para>
</question>
<answer>
<para>
If you run Tiger(Mac OS 10.4) or later then this is all you need to do:
</para>
<informalexample>
<programlisting>
% sudo rndc-confgen > /etc/rndc.conf</programlisting>
</informalexample>
<para>
Copy the key statement from /etc/rndc.conf into /etc/rndc.key, e.g.:
</para>
<informalexample>
<programlisting>
key "rndc-key" {
algorithm hmac-md5;
secret "uvceheVuqf17ZwIcTydddw==";
};</programlisting>
</informalexample>
<para>
Then start the relevant service:
</para>
<informalexample>
<programlisting>
% sudo service org.isc.named start</programlisting>
</informalexample>
<para>
This is persistent upon a reboot, so you will have to do it only once.
</para>
</answer>
<answer>
<para>
Alternatively you can just generate /etc/rndc.key by running:
</para>
<informalexample>
<programlisting>
% sudo rndc-confgen -a</programlisting>
</informalexample>
<para>
Then start the relevant service:
</para>
<informalexample>
<programlisting>
% sudo service org.isc.named start</programlisting>
</informalexample>
<para>
Named will look for /etc/rndc.key when it starts if it
doesn't have a controls section or the existing controls are
missing keys sub-clauses. This is persistent upon a
reboot, so you will have to do it only once.
</para>
</answer>
</qandaentry>
</qandadiv>
</qandadiv> <!-- Operating-System Specific Questions -->

View File

@@ -297,12 +297,10 @@ postgres_get_resultset(const char *zone, const char *record,
REQUIRE(*rs == NULL);
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d Getting DBI", dlz_thread_num);
#endif
/* get db instance / connection */
#ifdef ISC_PLATFORM_USETHREADS
@@ -320,12 +318,10 @@ postgres_get_resultset(const char *zone, const char *record,
#endif /* ISC_PLATFORM_USETHREADS */
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d Got DBI - checking query", dlz_thread_num);
#endif
/* if DBI is null, can't do anything else */
if (dbi == NULL) {
@@ -395,12 +391,10 @@ postgres_get_resultset(const char *zone, const char *record,
goto cleanup;
}
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d checked query", dlz_thread_num);
#endif
/*
* was a zone string passed? If so, make it safe for use in
@@ -416,12 +410,10 @@ postgres_get_resultset(const char *zone, const char *record,
dbi->zone = NULL;
}
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d did zone", dlz_thread_num);
#endif
/*
* was a record string passed? If so, make it safe for use in
@@ -438,12 +430,10 @@ postgres_get_resultset(const char *zone, const char *record,
}
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d did record", dlz_thread_num);
#endif
/*
* was a client string passed? If so, make it safe for use in
@@ -459,12 +449,10 @@ postgres_get_resultset(const char *zone, const char *record,
dbi->client = NULL;
}
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d did client", dlz_thread_num);
#endif
/*
* what type of query are we going to run?
@@ -498,12 +486,10 @@ postgres_get_resultset(const char *zone, const char *record,
goto cleanup;
}
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d built query", dlz_thread_num);
#endif
/* if the querystring is null, Bummer, outta RAM. UPGRADE TIME!!! */
if (querystring == NULL) {
@@ -511,12 +497,10 @@ postgres_get_resultset(const char *zone, const char *record,
goto cleanup;
}
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d query is '%s'", dlz_thread_num, querystring);
#endif
/*
* output the full query string during debug so we can see
@@ -528,13 +512,11 @@ postgres_get_resultset(const char *zone, const char *record,
/* attempt query up to 3 times. */
for (j=0; j < 3; j++) {
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d executing query for %d time",
dlz_thread_num, j);
#endif
/* try to get result set */
*rs = PQexec((PGconn *)dbi->dbconn, querystring );
result = ISC_R_SUCCESS;
@@ -543,13 +525,11 @@ postgres_get_resultset(const char *zone, const char *record,
* attempts.
*/
for (i=0; *rs == NULL && i < 3; i++) {
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d resetting connection",
dlz_thread_num);
#endif
result = ISC_R_FAILURE;
PQreset((PGconn *) dbi->dbconn);
/* connection ok, break inner loop */
@@ -558,21 +538,17 @@ postgres_get_resultset(const char *zone, const char *record,
}
/* result set ok, break outter loop */
if (PQresultStatus(*rs) == PGRES_TUPLES_OK) {
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d rs ok", dlz_thread_num);
#endif
break;
} else {
/* we got a result set object, but it's not right. */
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d clearing rs", dlz_thread_num);
#endif
PQclear(*rs); /* get rid of it */
/* in case this was the last attempt */
result = ISC_R_FAILURE;
@@ -582,12 +558,10 @@ postgres_get_resultset(const char *zone, const char *record,
cleanup:
/* it's always good to cleanup after yourself */
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d cleaning up", dlz_thread_num);
#endif
/* if we couldn't even allocate DBI, just return NULL */
if (dbi == NULL)
@@ -607,12 +581,10 @@ postgres_get_resultset(const char *zone, const char *record,
#ifdef ISC_PLATFORM_USETHREADS
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d unlocking mutex", dlz_thread_num);
#endif
/* release the lock so another thread can use this dbi */
isc_mutex_unlock(&dbi->instance_lock);
@@ -623,12 +595,10 @@ postgres_get_resultset(const char *zone, const char *record,
if (querystring != NULL)
isc_mem_free(ns_g_mctx, querystring );
#if 0
/* temporary logging message */
isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE,
DNS_LOGMODULE_DLZ, ISC_LOG_ERROR,
"%d returning", dlz_thread_num);
#endif
/* return result */
return result;

View File

@@ -1,5 +1,5 @@
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY mdash "&#8212;">]>
<!--
- Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
@@ -18,7 +18,7 @@
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- File: $Id: Bv9ARM-book.xml,v 1.340 2007/11/05 17:05:03 explorer Exp $ -->
<!-- File: $Id: Bv9ARM-book.xml,v 1.339 2007/10/19 17:15:53 explorer Exp $ -->
<book xmlns:xi="http://www.w3.org/2001/XInclude">
<title>BIND 9 Administrator Reference Manual</title>
@@ -4568,7 +4568,6 @@ category notify { null; };
<optional> disable-empty-zone <replaceable>zone_name</replaceable> ; </optional>
<optional> zero-no-soa-ttl <replaceable>yes_or_no</replaceable> ; </optional>
<optional> zero-no-soa-ttl-cache <replaceable>yes_or_no</replaceable> ; </optional>
<optional> stats-server address <replacable> ip_address </replacable> port <replacable> ip_port </replacable> ; </optional>
};
</programlisting>
@@ -6838,33 +6837,6 @@ query-source-v6 address * port *;
</sect3>
<sect3>
<title>Statistics Server</title>
<variablelist>
<varlistentry>
<term><command>stats-server</command></term>
<listitem>
<para>
Start a HTTP-based statistics server on the given IP address and port.
At this time, no client authentication is performed.
Using the IPv4 wildcard address (0.0.0.0) will cause the stats-server to listen
on all available IP addresses. Listing a single address (10.1.2.3) will listen
only on that address. Please use a caution in enabling this option and limit
connections to it via standard firewall techniques.
</para>
<para>
At this time, the stats-server can only listen on one IP address and port, or on all addresses.
</para>
<para>
This option requires that BIND 9 be compiled with libxml2.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
<sect3>
<title>Periodic Task Intervals</title>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: resolver.c,v 1.354 2007/11/01 13:00:17 shane Exp $ */
/* $Id: resolver.c,v 1.353 2007/10/19 17:15:53 explorer Exp $ */
/*! \file */
@@ -364,7 +364,7 @@ struct dns_resolver {
isc_eventlist_t whenshutdown;
unsigned int activebuckets;
isc_boolean_t priming;
unsigned int spillat; /* clients-per-query */
unsigned int spillat;
unsigned int nextdisp;
/* Locked by primelock. */
dns_fetch_t * primefetch;
@@ -825,9 +825,6 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result) {
unsigned int count = 0;
isc_interval_t i;
isc_boolean_t logit = ISC_FALSE;
unsigned int old_spillat;
unsigned int new_spillat = 0; /* initialized to silence
compiler warnings */
/*
* Caller must be holding the appropriate bucket lock.
@@ -870,27 +867,23 @@ fctx_sendevents(fetchctx_t *fctx, isc_result_t result) {
(count < fctx->res->spillatmax || fctx->res->spillatmax == 0)) {
LOCK(&fctx->res->lock);
if (count == fctx->res->spillat && !fctx->res->exiting) {
old_spillat = fctx->res->spillat;
fctx->res->spillat += 5;
if (fctx->res->spillat > fctx->res->spillatmax &&
fctx->res->spillatmax != 0)
fctx->res->spillat = fctx->res->spillatmax;
new_spillat = fctx->res->spillat;
if (new_spillat != old_spillat) {
logit = ISC_TRUE;
}
isc_interval_set(&i, 20 * 60, 0);
result = isc_timer_reset(fctx->res->spillattimer,
isc_timertype_ticker, NULL,
&i, ISC_TRUE);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
logit = ISC_TRUE;
}
UNLOCK(&fctx->res->lock);
if (logit)
isc_log_write(dns_lctx, DNS_LOGCATEGORY_RESOLVER,
DNS_LOGMODULE_RESOLVER, ISC_LOG_NOTICE,
"clients-per-query increased to %u",
new_spillat);
count + 1);
}
}

View File

@@ -903,7 +903,7 @@
./contrib/dlz/drivers/dlz_ldap_driver.c X 2005
./contrib/dlz/drivers/dlz_mysql_driver.c X 2005,2007
./contrib/dlz/drivers/dlz_odbc_driver.c X 2005
./contrib/dlz/drivers/dlz_postgres_driver.c X 2005,2007
./contrib/dlz/drivers/dlz_postgres_driver.c X 2005
./contrib/dlz/drivers/dlz_stub_driver.c X 2005
./contrib/dlz/drivers/include/dlz/dlz_bdb_driver.h X 2005
./contrib/dlz/drivers/include/dlz/dlz_bdbhpt_driver.h X 2005