aboutsummaryrefslogtreecommitdiff
path: root/services/cache/dns.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2017-02-03 13:06:34 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2017-02-03 13:06:34 +0000
commitbd51c20871bac7a49ea0adc443050f2894cfd5f3 (patch)
treec551994131aa8f3315a21aeaf4f9bc2a8b757e89 /services/cache/dns.c
parent27c2fff0f2fef695b0599fc3931cacfc16376e88 (diff)
Diffstat (limited to 'services/cache/dns.c')
-rw-r--r--services/cache/dns.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/services/cache/dns.c b/services/cache/dns.c
index 84db7a77884c..148b5cb875ab 100644
--- a/services/cache/dns.c
+++ b/services/cache/dns.c
@@ -194,6 +194,7 @@ msg_cache_lookup(struct module_env* env, uint8_t* qname, size_t qnamelen,
k.qname_len = qnamelen;
k.qtype = qtype;
k.qclass = qclass;
+ k.local_alias = NULL;
h = query_info_hash(&k, flags);
e = slabhash_lookup(env->msg_cache, h, &k, wr);
@@ -361,6 +362,7 @@ dns_msg_create(uint8_t* qname, size_t qnamelen, uint16_t qtype,
msg->qinfo.qname_len = qnamelen;
msg->qinfo.qtype = qtype;
msg->qinfo.qclass = qclass;
+ msg->qinfo.local_alias = NULL;
/* non-packed reply_info, because it needs to grow the array */
msg->rep = (struct reply_info*)regional_alloc_zero(region,
sizeof(struct reply_info)-sizeof(struct rrset_ref));
@@ -716,6 +718,7 @@ dns_cache_lookup(struct module_env* env,
k.qname_len = qnamelen;
k.qtype = qtype;
k.qclass = qclass;
+ k.local_alias = NULL;
h = query_info_hash(&k, flags);
e = slabhash_lookup(env->msg_cache, h, &k, 0);
if(e) {
@@ -795,9 +798,9 @@ dns_cache_lookup(struct module_env* env,
dname_remove_label(&k.qname, &k.qname_len);
h = query_info_hash(&k, flags);
e = slabhash_lookup(env->msg_cache, h, &k, 0);
- if(!e && k.qtype != LDNS_RR_TYPE_NS &&
+ if(!e && k.qtype != LDNS_RR_TYPE_A &&
env->cfg->qname_minimisation) {
- k.qtype = LDNS_RR_TYPE_NS;
+ k.qtype = LDNS_RR_TYPE_A;
h = query_info_hash(&k, flags);
e = slabhash_lookup(env->msg_cache, h, &k, 0);
}
@@ -817,7 +820,7 @@ dns_cache_lookup(struct module_env* env,
lock_rw_unlock(&e->lock);
}
k.qtype = qtype;
- }
+ }
/* fill common RR types for ANY response to avoid requery */
if(qtype == LDNS_RR_TYPE_ANY) {