mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
- Fix to fetch data as last resort more tenaciously. When cycle
targets cause the server selection to believe there are more options when they really are not there, the server selection is reinitiated. - Fix fetch from blacklisted dnssec lame servers as last resort. The servers IP address is then given in validator errors as well. git-svn-id: file:///svn/unbound/trunk@2089 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
109fbe2350
commit
35f3d4ecb1
3 changed files with 21 additions and 1 deletions
|
|
@ -1,6 +1,11 @@
|
|||
23 April 2010: Wouter
|
||||
- Squelch log message: sendto failed permission denied for
|
||||
255.255.255.255, it is visible in VERB_DETAIL (verbosity 2).
|
||||
- Fix to fetch data as last resort more tenaciously. When cycle
|
||||
targets cause the server selection to believe there are more options
|
||||
when they really are not there, the server selection is reinitiated.
|
||||
- Fix fetch from blacklisted dnssec lame servers as last resort. The
|
||||
servers IP address is then given in validator errors as well.
|
||||
|
||||
22 April 2010: Wouter
|
||||
- tag 1.4.4.
|
||||
|
|
|
|||
|
|
@ -322,9 +322,15 @@ iter_server_selection(struct iter_env* iter_env,
|
|||
verbose(VERB_ALGO, "selrtt %d", selrtt);
|
||||
if(selrtt > BLACKLIST_PENALTY) {
|
||||
if(selrtt-BLACKLIST_PENALTY > USEFUL_SERVER_TOP_TIMEOUT*2) {
|
||||
verbose(VERB_ALGO, "chase to recursion lame server");
|
||||
verbose(VERB_ALGO, "chase to "
|
||||
"blacklisted recursion lame server");
|
||||
*chase_to_rd = 1;
|
||||
}
|
||||
if(selrtt-BLACKLIST_PENALTY > USEFUL_SERVER_TOP_TIMEOUT) {
|
||||
verbose(VERB_ALGO, "chase to "
|
||||
"blacklisted dnssec lame server");
|
||||
*dnssec_expected = 0;
|
||||
}
|
||||
} else {
|
||||
if(selrtt > USEFUL_SERVER_TOP_TIMEOUT*2) {
|
||||
verbose(VERB_ALGO, "chase to recursion lame server");
|
||||
|
|
|
|||
|
|
@ -1469,6 +1469,15 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
|||
return error_response(qstate, id,
|
||||
LDNS_RCODE_SERVFAIL);
|
||||
}
|
||||
if(qs == 0 &&
|
||||
delegpt_count_missing_targets(iq->dp) == 0){
|
||||
/* it looked like there were missing
|
||||
* targets, but they did not turn up.
|
||||
* Try the bad choices again (if any),
|
||||
* when we get back here missing==0,
|
||||
* so this is not a loop. */
|
||||
return 1;
|
||||
}
|
||||
iq->num_target_queries += qs;
|
||||
}
|
||||
/* Since a target query might have been made, we
|
||||
|
|
|
|||
Loading…
Reference in a new issue