diff --git a/doc/Changelog b/doc/Changelog index a389e13ee..b04cb8588 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -3,6 +3,7 @@ some zones that had correct DLV keys as insecure. - follows -rc makedist from ldns changes (no _rc). - ldns tarball updated with 1.4.1rc for DLV unit test. + - verbose prints about recursion lame detection and server selection. 17 December 2008: Wouter - follows ldns makedist.sh. -rc option. autom4te dir removed. diff --git a/iterator/iter_utils.c b/iterator/iter_utils.c index 9b29f76eb..2133be755 100644 --- a/iterator/iter_utils.c +++ b/iterator/iter_utils.c @@ -189,6 +189,11 @@ iter_filter_unsuitable(struct iter_env* iter_env, struct module_env* env, if(infra_get_lame_rtt(env->infra_cache, &a->addr, a->addrlen, name, namelen, qtype, &lame, &dnsseclame, &reclame, &rtt, now)) { + log_addr(VERB_ALGO, "servselect", &a->addr, a->addrlen); + verbose(VERB_ALGO, " rtt=%d%s%s%s", rtt, + lame?" LAME":"", + dnsseclame?" DNSSEC_LAME":"", + reclame?" REC_LAME":""); if(lame) return -1; /* server is lame */ else if(rtt >= USEFUL_SERVER_TOP_TIMEOUT) @@ -297,13 +302,17 @@ iter_server_selection(struct iter_env* iter_env, if(num == 0) return NULL; + verbose(VERB_ALGO, "selrtt %d", selrtt); if(selrtt > USEFUL_SERVER_TOP_TIMEOUT*2) { + verbose(VERB_ALGO, "chase to recursion lame server"); *chase_to_rd = 1; } if(selrtt > USEFUL_SERVER_TOP_TIMEOUT) { + verbose(VERB_ALGO, "chase to dnssec lame server"); *dnssec_expected = 0; } if(selrtt == USEFUL_SERVER_TOP_TIMEOUT) { + verbose(VERB_ALGO, "chase to blacklisted lame server"); /* the best choice is a blacklisted, unresponsive server, * we need to throttle down our traffic towards it */ if(ub_random(env->rnd) % 100 != 1) { diff --git a/iterator/iterator.c b/iterator/iterator.c index e9b1bfdb4..77d5004fb 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -1547,6 +1547,7 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq, if(qstate->reply) { /* need addr for lameness cache, but we may have * gotten this from cache, so test to be sure */ + verbose(VERB_DETAIL, "mark as REC_LAME"); if(!infra_set_lame(qstate->env->infra_cache, &qstate->reply->addr, qstate->reply->addrlen, iq->dp->name, iq->dp->namelen,