mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-20 02:18:53 -04:00
2957. [bug] RTT estimates were not being adjusted on ICMP errors.
[RT #20772]
This commit is contained in:
parent
b52da87328
commit
b605bbbb0f
2 changed files with 12 additions and 3 deletions
3
CHANGES
3
CHANGES
|
|
@ -1,3 +1,6 @@
|
|||
2957. [bug] RTT estimates were not being adjusted on ICMP errors.
|
||||
[RT #20772]
|
||||
|
||||
2956. [bug] named-checkconf did not fail on a bad trusted key.
|
||||
[RT #20705]
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: resolver.c,v 1.384.14.22 2010/02/25 10:56:41 tbox Exp $ */
|
||||
/* $Id: resolver.c,v 1.384.14.23 2010/03/04 06:49:41 marka Exp $ */
|
||||
|
||||
/*! \file */
|
||||
|
||||
|
|
@ -6090,6 +6090,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
|
|||
unsigned int findoptions;
|
||||
isc_result_t broken_server;
|
||||
badnstype_t broken_type = badns_response;
|
||||
isc_boolean_t no_response;
|
||||
|
||||
REQUIRE(VALID_QUERY(query));
|
||||
fctx = query->fctx;
|
||||
|
|
@ -6112,6 +6113,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
|
|||
resend = ISC_FALSE;
|
||||
truncated = ISC_FALSE;
|
||||
finish = NULL;
|
||||
no_response = ISC_FALSE;
|
||||
|
||||
if (fctx->res->exiting) {
|
||||
result = ISC_R_SHUTTINGDOWN;
|
||||
|
|
@ -6159,7 +6161,9 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
|
|||
/*
|
||||
* If this is a network error on an exclusive query
|
||||
* socket, mark the server as bad so that we won't try
|
||||
* it for this fetch again.
|
||||
* it for this fetch again. Also adjust finish and
|
||||
* no_response so that we penalize this address in SRTT
|
||||
* adjustment later.
|
||||
*/
|
||||
if (query->exclusivesocket &&
|
||||
(devent->result == ISC_R_HOSTUNREACH ||
|
||||
|
|
@ -6168,6 +6172,8 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
|
|||
devent->result == ISC_R_CANCELED)) {
|
||||
broken_server = devent->result;
|
||||
broken_type = badns_unreachable;
|
||||
finish = NULL;
|
||||
no_response = ISC_TRUE;
|
||||
}
|
||||
}
|
||||
goto done;
|
||||
|
|
@ -6641,7 +6647,7 @@ resquery_response(isc_task_t *task, isc_event_t *event) {
|
|||
*
|
||||
* XXXRTH Don't cancel the query if waiting for validation?
|
||||
*/
|
||||
fctx_cancelquery(&query, &devent, finish, ISC_FALSE);
|
||||
fctx_cancelquery(&query, &devent, finish, no_response);
|
||||
|
||||
if (keep_trying) {
|
||||
if (result == DNS_R_FORMERR)
|
||||
|
|
|
|||
Loading…
Reference in a new issue