mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
- Fix that qname minimisation does not skip a label when missing
nameserver targets need to be fetched. git-svn-id: file:///svn/unbound/trunk@5107 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
20d57ec58b
commit
429e130768
2 changed files with 20 additions and 0 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
7 February 2019: Wouter
|
7 February 2019: Wouter
|
||||||
- Fix #4206: OpenSSL 1.0.2 hostname verification for FreeBSD 11.2.
|
- Fix #4206: OpenSSL 1.0.2 hostname verification for FreeBSD 11.2.
|
||||||
|
- Fix that qname minimisation does not skip a label when missing
|
||||||
|
nameserver targets need to be fetched.
|
||||||
|
|
||||||
4 February 2019: Wouter
|
4 February 2019: Wouter
|
||||||
- Fix that log-replies prints the correct name for local-alias
|
- Fix that log-replies prints the correct name for local-alias
|
||||||
|
|
|
||||||
|
|
@ -2105,6 +2105,8 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
struct delegpt_addr* target;
|
struct delegpt_addr* target;
|
||||||
struct outbound_entry* outq;
|
struct outbound_entry* outq;
|
||||||
int auth_fallback = 0;
|
int auth_fallback = 0;
|
||||||
|
uint8_t* qout_orig = NULL;
|
||||||
|
size_t qout_orig_len = 0;
|
||||||
|
|
||||||
/* NOTE: a request will encounter this state for each target it
|
/* NOTE: a request will encounter this state for each target it
|
||||||
* needs to send a query to. That is, at least one per referral,
|
* needs to send a query to. That is, at least one per referral,
|
||||||
|
|
@ -2178,6 +2180,8 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
int labdiff = qchaselabs -
|
int labdiff = qchaselabs -
|
||||||
dname_count_labels(iq->qinfo_out.qname);
|
dname_count_labels(iq->qinfo_out.qname);
|
||||||
|
|
||||||
|
qout_orig = iq->qinfo_out.qname;
|
||||||
|
qout_orig_len = iq->qinfo_out.qname_len;
|
||||||
iq->qinfo_out.qname = iq->qchase.qname;
|
iq->qinfo_out.qname = iq->qchase.qname;
|
||||||
iq->qinfo_out.qname_len = iq->qchase.qname_len;
|
iq->qinfo_out.qname_len = iq->qchase.qname_len;
|
||||||
iq->minimise_count++;
|
iq->minimise_count++;
|
||||||
|
|
@ -2330,6 +2334,13 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
/* wait to get all targets, we want to try em */
|
/* wait to get all targets, we want to try em */
|
||||||
verbose(VERB_ALGO, "wait for all targets for fallback");
|
verbose(VERB_ALGO, "wait for all targets for fallback");
|
||||||
qstate->ext_state[id] = module_wait_reply;
|
qstate->ext_state[id] = module_wait_reply;
|
||||||
|
/* undo qname minimise step because we'll get back here
|
||||||
|
* to do it again */
|
||||||
|
if(qout_orig && iq->minimise_count > 0) {
|
||||||
|
iq->minimise_count--;
|
||||||
|
iq->qinfo_out.qname = qout_orig;
|
||||||
|
iq->qinfo_out.qname_len = qout_orig_len;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* did we do enough fallback queries already? */
|
/* did we do enough fallback queries already? */
|
||||||
|
|
@ -2463,6 +2474,13 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
iq->num_current_queries);
|
iq->num_current_queries);
|
||||||
qstate->ext_state[id] = module_wait_reply;
|
qstate->ext_state[id] = module_wait_reply;
|
||||||
}
|
}
|
||||||
|
/* undo qname minimise step because we'll get back here
|
||||||
|
* to do it again */
|
||||||
|
if(qout_orig && iq->minimise_count > 0) {
|
||||||
|
iq->minimise_count--;
|
||||||
|
iq->qinfo_out.qname = qout_orig;
|
||||||
|
iq->qinfo_out.qname_len = qout_orig_len;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue