From a089ae229591ee799b0c9b8fe8ce4b657afb255b Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 4 Oct 2022 10:56:46 +0200 Subject: [PATCH] - Do not mark a nameserver as resolved when one of A/AAAA is negative. --- iterator/iterator.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/iterator/iterator.c b/iterator/iterator.c index c8709f855..b43e67b56 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -255,9 +255,9 @@ error_supers(struct module_qstate* qstate, int id, struct module_qstate* super) log_err("out of memory adding missing"); } delegpt_mark_neg(dpns, qstate->qinfo.qtype); - dpns->resolved = 1; /* mark as failed */ if((dpns->got4 == 2 || !ie->supports_ipv4) && (dpns->got6 == 2 || !ie->supports_ipv6)) { + dpns->resolved = 1; /* mark as failed */ target_count_increase_nx(super_iq, 1); } } @@ -3563,12 +3563,13 @@ processTargetResponse(struct module_qstate* qstate, int id, } else { verbose(VERB_ALGO, "iterator TargetResponse failed"); delegpt_mark_neg(dpns, qstate->qinfo.qtype); - dpns->resolved = 1; /* fail the target */ if((dpns->got4 == 2 || !ie->supports_ipv4) && - (dpns->got6 == 2 || !ie->supports_ipv6) && + (dpns->got6 == 2 || !ie->supports_ipv6)) { + dpns->resolved = 1; /* fail the target */ /* do not count cached answers */ - (qstate->reply_origin && qstate->reply_origin->len != 0)) { - target_count_increase_nx(foriq, 1); + if(qstate->reply_origin && qstate->reply_origin->len != 0) { + target_count_increase_nx(foriq, 1); + } } } }