From: Colin Vidal Date: Mon, 30 Mar 2026 09:49:29 +0000 (+0200) Subject: Cleans up `mark_related()` X-Git-Tag: v9.21.21~4^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc8f0b3a798863b811103c3de42401728941eadf;p=thirdparty%2Fbind9.git Cleans up `mark_related()` Cleans up mark_related(): since the FCTX_ATTR_GLUING flag is never set anymore, the code that handled it has been removed. --- diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 84da407be50..29bf22389e4 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -510,18 +510,17 @@ struct fetchctx { #define FCTX_MAGIC ISC_MAGIC('F', '!', '!', '!') #define VALID_FCTX(fctx) ISC_MAGIC_VALID(fctx, FCTX_MAGIC) -#define FCTX_ATTR_HAVEANSWER 0x0001 -#define FCTX_ATTR_GLUING 0x0002 -#define FCTX_ATTR_ADDRWAIT 0x0004 -#define FCTX_ATTR_WANTCACHE 0x0010 -#define FCTX_ATTR_WANTNCACHE 0x0020 -#define FCTX_ATTR_TRIEDFIND 0x0080 -#define FCTX_ATTR_TRIEDALT 0x0100 +enum { + FCTX_ATTR_HAVEANSWER = 1 << 0, + FCTX_ATTR_ADDRWAIT = 1 << 1, + FCTX_ATTR_WANTCACHE = 1 << 2, + FCTX_ATTR_WANTNCACHE = 1 << 3, + FCTX_ATTR_TRIEDFIND = 1 << 4, + FCTX_ATTR_TRIEDALT = 1 << 5, +}; #define HAVE_ANSWER(f) \ ((atomic_load_acquire(&(f)->attributes) & FCTX_ATTR_HAVEANSWER) != 0) -#define GLUING(f) \ - ((atomic_load_acquire(&(f)->attributes) & FCTX_ATTR_GLUING) != 0) #define ADDRWAIT(f) \ ((atomic_load_acquire(&(f)->attributes) & FCTX_ATTR_ADDRWAIT) != 0) #define SHUTTINGDOWN(f) ((f)->state == fetchstate_done) @@ -6517,21 +6516,9 @@ done: } static void -mark_related(dns_name_t *name, dns_rdataset_t *rdataset, bool external, - bool gluing) { +mark_related(dns_name_t *name, dns_rdataset_t *rdataset, bool external) { name->attributes.cache = true; - if (gluing) { - rdataset->trust = dns_trust_glue; - /* - * Glue with 0 TTL causes problems. We force the TTL to - * 1 second to prevent this. - */ - if (rdataset->ttl == 0) { - rdataset->ttl = 1; - } - } else { - rdataset->trust = dns_trust_additional; - } + rdataset->trust = dns_trust_additional; /* * Avoid infinite loops by only marking new rdatasets. @@ -6765,13 +6752,9 @@ check_section(void *arg, const dns_name_t *addname, dns_rdatatype_t type, dns_name_t *name = NULL; bool external; dns_rdatatype_t rtype; - bool gluing; REQUIRE(VALID_FCTX(fctx)); - gluing = (GLUING(fctx) || (fctx->type == dns_rdatatype_ns && - dns_name_equal(fctx->name, dns_rootname))); - result = dns_message_findname(rctx->query->rmessage, section, addname, dns_rdatatype_any, 0, &name, NULL); if (result == ISC_R_SUCCESS) { @@ -6784,15 +6767,14 @@ check_section(void *arg, const dns_name_t *addname, dns_rdatatype_t type, rtype = rdataset->type; } if (dns_rdatatype_isaddr(rtype)) { - mark_related(name, rdataset, external, - gluing); + mark_related(name, rdataset, external); } } } else { dns_rdataset_t *rdataset = NULL; result = dns_message_findtype(name, type, 0, &rdataset); if (result == ISC_R_SUCCESS) { - mark_related(name, rdataset, external, gluing); + mark_related(name, rdataset, external); if (found != NULL) { dns_rdataset_clone(rdataset, found); } @@ -6804,8 +6786,7 @@ check_section(void *arg, const dns_name_t *addname, dns_rdatatype_t type, name, dns_rdatatype_rrsig, type, &rdataset); if (result == ISC_R_SUCCESS) { - mark_related(name, rdataset, external, - gluing); + mark_related(name, rdataset, external); } } }