summaryrefslogtreecommitdiff
path: root/daemon/remote.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2015-01-02 17:35:29 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2015-01-02 17:35:29 +0000
commit7954be7fa5ea70de36aacebb8bcca2a70af709f4 (patch)
treeb839bbb75392ad4c301a0393b3ca49fe155c5740 /daemon/remote.c
parent7f563e614fb9a8ce7c8904a3ad346b7e38238339 (diff)
downloadsrc-test2-7954be7fa5ea70de36aacebb8bcca2a70af709f4.tar.gz
src-test2-7954be7fa5ea70de36aacebb8bcca2a70af709f4.zip
Notes
Diffstat (limited to 'daemon/remote.c')
-rw-r--r--daemon/remote.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/daemon/remote.c b/daemon/remote.c
index 88ea063f21f8..ff3d769d4e54 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -854,7 +854,8 @@ print_ext(SSL* ssl, struct stats_info* s)
/* RCODE */
for(i=0; i<STATS_RCODE_NUM; i++) {
- if(inhibit_zero && s->svr.ans_rcode[i] == 0)
+ /* Always include RCODEs 0-5 */
+ if(inhibit_zero && i > LDNS_RCODE_REFUSED && s->svr.ans_rcode[i] == 0)
continue;
lt = sldns_lookup_by_id(sldns_rcodes, i);
if(lt && lt->name) {
@@ -1094,8 +1095,13 @@ do_cache_remove(struct worker* worker, uint8_t* nm, size_t nmlen,
k.qname_len = nmlen;
k.qtype = t;
k.qclass = c;
- h = query_info_hash(&k);
+ h = query_info_hash(&k, 0);
slabhash_remove(worker->env.msg_cache, h, &k);
+ if(t == LDNS_RR_TYPE_AAAA) {
+ /* for AAAA also flush dns64 bit_cd packet */
+ h = query_info_hash(&k, BIT_CD);
+ slabhash_remove(worker->env.msg_cache, h, &k);
+ }
}
/** flush a type */