2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 14:07:59 +00:00

2144. [cleanup] Suppress logging of SERVFAIL from forwarders.

[RT #16619]
This commit is contained in:
Mark Andrews 2007-02-26 01:07:49 +00:00
parent 4098271a81
commit 2e676167cc
2 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,6 @@
2144. [cleanup] Suppress logging of SERVFAIL from forwarders.
[RT #16619]
2143. [bug] We failed to restart the IPv6 client when the 2143. [bug] We failed to restart the IPv6 client when the
kernel failed to return the destination the kernel failed to return the destination the
packet was sent to. [RT #16613] packet was sent to. [RT #16613]

View File

@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: resolver.c,v 1.343 2007/02/14 23:40:01 marka Exp $ */ /* $Id: resolver.c,v 1.344 2007/02/26 01:07:49 marka Exp $ */
/*! \file */ /*! \file */
@ -1896,7 +1896,7 @@ mark_bad(fetchctx_t *fctx) {
} }
static void static void
add_bad(fetchctx_t *fctx, isc_sockaddr_t *address, isc_result_t reason) { add_bad(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, isc_result_t reason) {
char namebuf[DNS_NAME_FORMATSIZE]; char namebuf[DNS_NAME_FORMATSIZE];
char addrbuf[ISC_SOCKADDR_FORMATSIZE]; char addrbuf[ISC_SOCKADDR_FORMATSIZE];
char classbuf[64]; char classbuf[64];
@ -1905,6 +1905,7 @@ add_bad(fetchctx_t *fctx, isc_sockaddr_t *address, isc_result_t reason) {
isc_buffer_t b; isc_buffer_t b;
isc_sockaddr_t *sa; isc_sockaddr_t *sa;
const char *sep1, *sep2; const char *sep1, *sep2;
isc_sockaddr_t *address = &addrinfo->sockaddr;
if (bad_server(fctx, address)) { if (bad_server(fctx, address)) {
/* /*
@ -1925,6 +1926,11 @@ add_bad(fetchctx_t *fctx, isc_sockaddr_t *address, isc_result_t reason) {
if (reason == DNS_R_LAME) /* already logged */ if (reason == DNS_R_LAME) /* already logged */
return; return;
if (reason == DNS_R_UNEXPECTEDRCODE &&
fctx->rmessage->opcode == dns_rcode_servfail &&
ISFORWARDER(addrinfo))
return;
if (reason == DNS_R_UNEXPECTEDRCODE) { if (reason == DNS_R_UNEXPECTEDRCODE) {
isc_buffer_init(&b, code, sizeof(code) - 1); isc_buffer_init(&b, code, sizeof(code) - 1);
dns_rcode_totext(fctx->rmessage->rcode, &b); dns_rcode_totext(fctx->rmessage->rcode, &b);
@ -3496,7 +3502,7 @@ validated(isc_task_t *task, isc_event_t *event) {
if (result == ISC_R_SUCCESS) if (result == ISC_R_SUCCESS)
dns_db_detachnode(fctx->cache, &node); dns_db_detachnode(fctx->cache, &node);
result = vevent->result; result = vevent->result;
add_bad(fctx, &addrinfo->sockaddr, result); add_bad(fctx, addrinfo, result);
isc_event_free(&event); isc_event_free(&event);
UNLOCK(&fctx->res->buckets[fctx->bucketnum].lock); UNLOCK(&fctx->res->buckets[fctx->bucketnum].lock);
if (!ISC_LIST_EMPTY(fctx->validators)) if (!ISC_LIST_EMPTY(fctx->validators))
@ -5885,7 +5891,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
* Add this server to the list of bad servers for * Add this server to the list of bad servers for
* this fctx. * this fctx.
*/ */
add_bad(fctx, &addrinfo->sockaddr, broken_server); add_bad(fctx, addrinfo, broken_server);
} }
if (get_nameservers) { if (get_nameservers) {
@ -5967,7 +5973,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
fctx_done(fctx, result); fctx_done(fctx, result);
} else if (result == DNS_R_CHASEDSSERVERS) { } else if (result == DNS_R_CHASEDSSERVERS) {
unsigned int n; unsigned int n;
add_bad(fctx, &addrinfo->sockaddr, result); add_bad(fctx, addrinfo, result);
fctx_cancelqueries(fctx, ISC_TRUE); fctx_cancelqueries(fctx, ISC_TRUE);
fctx_cleanupfinds(fctx); fctx_cleanupfinds(fctx);
fctx_cleanupforwaddrs(fctx); fctx_cleanupforwaddrs(fctx);