From: Ondřej Surý Date: Sat, 8 Nov 2025 11:09:18 +0000 (+0100) Subject: Refactor the conditions when adding new NEGATIVE header X-Git-Tag: v9.21.16~17^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d2244a74593295cbf7ecd1920446bd67d685446;p=thirdparty%2Fbind9.git Refactor the conditions when adding new NEGATIVE header Refactor the block when adding existing negative header under common block, so it is easier to understand that the two conditions inside are related. --- diff --git a/lib/dns/qpcache.c b/lib/dns/qpcache.c index fe69818f547..e7948db4d99 100644 --- a/lib/dns/qpcache.c +++ b/lib/dns/qpcache.c @@ -2681,35 +2681,32 @@ add(qpcache_t *qpdb, qpcnode_t *qpnode, dns_slabheader_t *newheader, continue; } - if (EXISTS(newheader) && NEGATIVE(newheader) && - rdtype == dns_rdatatype_any) - { - /* - * We're adding a negative cache entry which - * covers all types (NXDOMAIN, NODATA(QTYPE=ANY)). - * - * Make all other data ancient so that the only - * rdataset that can be found at this node is the - * negative cache entry. - */ - mark_ancient(header); - } - - if (EXISTS(newheader) && NEGATIVE(newheader) && - rdtype == dns_rdatatype_rrsig) - { - /* - * We're adding a proof that a signature doesn't exist. - * - * Mark all existing signatures as ancient. - */ - if (DNS_TYPEPAIR_TYPE(top->typepair) == - dns_rdatatype_rrsig) - { + if (EXISTS(newheader) && NEGATIVE(newheader)) { + if (rdtype == dns_rdatatype_any) { + /* + * We're adding a negative cache entry which + * covers all types (NXDOMAIN, + * NODATA(QTYPE=ANY)). + * + * Make all other data ancient so that the only + * rdataset that can be found at this node is + * the negative cache entry. + */ mark_ancient(header); + } else if (rdtype == dns_rdatatype_rrsig) { + /* + * We're adding a proof that a signature doesn't + * exist. + * + * Mark all existing signatures as ancient. + */ + if (DNS_TYPEPAIR_TYPE(top->typepair) == + dns_rdatatype_rrsig) + { + mark_ancient(header); + } } } - if (EXISTS(newheader) && !NEGATIVE(newheader) && NEGATIVE(header) && EXISTS(header) && ACTIVE(header, now)) {