From: Colin Vidal Date: Thu, 9 Jan 2025 11:01:28 +0000 (+0100) Subject: remove validator link form fetchctx X-Git-Tag: v9.21.5~45^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93e6e72eb6db29afa8a110cab5db78d0533682b8;p=thirdparty%2Fbind9.git remove validator link form fetchctx struct fetchctx does have a list of pending validators as well as a pointer to the HEAD validator. Remove the validator pointer to avoid confusion, as there is no perticular reasons to have it directly accessible outside of the list. --- diff --git a/lib/dns/include/dns/resolver.h b/lib/dns/include/dns/resolver.h index 93a215598cb..62ffb9885ff 100644 --- a/lib/dns/include/dns/resolver.h +++ b/lib/dns/include/dns/resolver.h @@ -633,4 +633,4 @@ dns_resolver_freefresp(dns_fetchresponse_t **frespp); * * Requires: * \li 'frespp' is valid. No-op if *frespp == NULL - */ + */ \ No newline at end of file diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 70900c4cc0c..5a1be00835d 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -381,7 +381,6 @@ struct fetchctx { isc_sockaddrlist_t bad; ISC_LIST(struct tried) edns; isc_sockaddrlist_t bad_edns; - dns_validator_t *validator; ISC_LIST(dns_validator_t) validators; dns_db_t *cache; dns_adb_t *adb; @@ -983,10 +982,6 @@ valcreate(fetchctx_t *fctx, dns_message_t *message, dns_adbaddrinfo_t *addrinfo, &fctx->nfails, fctx->qc, fctx->gqc, &validator); RUNTIME_CHECK(result == ISC_R_SUCCESS); inc_stats(fctx->res, dns_resstatscounter_val); - if ((valoptions & DNS_VALIDATOR_DEFER) == 0) { - INSIST(fctx->validator == NULL); - fctx->validator = validator; - } ISC_LIST_APPEND(fctx->validators, validator, link); return ISC_R_SUCCESS; } @@ -5174,6 +5169,7 @@ has_000_label(dns_rdataset_t *nsecset) { static void validated(void *arg) { dns_validator_t *val = (dns_validator_t *)arg; + dns_validator_t *nextval = NULL; dns_adbaddrinfo_t *addrinfo = NULL; dns_dbnode_t *node = NULL; dns_dbnode_t *nsnode = NULL; @@ -5219,7 +5215,6 @@ validated(void *arg) { LOCK(&fctx->lock); ISC_LIST_UNLINK(fctx->validators, val, link); - fctx->validator = NULL; UNLOCK(&fctx->lock); /* @@ -5346,11 +5341,9 @@ validated(void *arg) { UNLOCK(&fctx->lock); - INSIST(fctx->validator == NULL); - - fctx->validator = ISC_LIST_HEAD(fctx->validators); - if (fctx->validator != NULL) { - dns_validator_send(fctx->validator); + nextval = ISC_LIST_HEAD(fctx->validators); + if (nextval != NULL) { + dns_validator_send(nextval); goto cleanup_fetchctx; } else if (sentresponse) { done = true; @@ -11078,4 +11071,4 @@ dns_resolver_freefresp(dns_fetchresponse_t **frespp) { *frespp = NULL; dns_ede_unlinkall(fresp->mctx, &fresp->edelist); isc_mem_putanddetach(&fresp->mctx, fresp, sizeof(*fresp)); -} +} \ No newline at end of file