From 3d2244a74593295cbf7ecd1920446bd67d685446 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Sat, 8 Nov 2025 12:09:18 +0100 Subject: [PATCH] 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. --- lib/dns/qpcache.c | 49 ++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/lib/dns/qpcache.c b/lib/dns/qpcache.c index fe69818f54..e7948db4d9 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)) {