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:
3
CHANGES
3
CHANGES
@@ -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
|
||||
kernel failed to return the destination the
|
||||
packet was sent to. [RT #16613]
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* 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 */
|
||||
|
||||
@@ -1896,7 +1896,7 @@ mark_bad(fetchctx_t *fctx) {
|
||||
}
|
||||
|
||||
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 addrbuf[ISC_SOCKADDR_FORMATSIZE];
|
||||
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_sockaddr_t *sa;
|
||||
const char *sep1, *sep2;
|
||||
isc_sockaddr_t *address = &addrinfo->sockaddr;
|
||||
|
||||
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 */
|
||||
return;
|
||||
|
||||
if (reason == DNS_R_UNEXPECTEDRCODE &&
|
||||
fctx->rmessage->opcode == dns_rcode_servfail &&
|
||||
ISFORWARDER(addrinfo))
|
||||
return;
|
||||
|
||||
if (reason == DNS_R_UNEXPECTEDRCODE) {
|
||||
isc_buffer_init(&b, code, sizeof(code) - 1);
|
||||
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)
|
||||
dns_db_detachnode(fctx->cache, &node);
|
||||
result = vevent->result;
|
||||
add_bad(fctx, &addrinfo->sockaddr, result);
|
||||
add_bad(fctx, addrinfo, result);
|
||||
isc_event_free(&event);
|
||||
UNLOCK(&fctx->res->buckets[fctx->bucketnum].lock);
|
||||
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
|
||||
* this fctx.
|
||||
*/
|
||||
add_bad(fctx, &addrinfo->sockaddr, broken_server);
|
||||
add_bad(fctx, addrinfo, broken_server);
|
||||
}
|
||||
|
||||
if (get_nameservers) {
|
||||
@@ -5967,7 +5973,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
|
||||
fctx_done(fctx, result);
|
||||
} else if (result == DNS_R_CHASEDSSERVERS) {
|
||||
unsigned int n;
|
||||
add_bad(fctx, &addrinfo->sockaddr, result);
|
||||
add_bad(fctx, addrinfo, result);
|
||||
fctx_cancelqueries(fctx, ISC_TRUE);
|
||||
fctx_cleanupfinds(fctx);
|
||||
fctx_cleanupforwaddrs(fctx);
|
||||
|
Reference in New Issue
Block a user