]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
remove validator link form fetchctx
authorColin Vidal <colin@isc.org>
Thu, 9 Jan 2025 11:01:28 +0000 (12:01 +0100)
committerColin Vidal <colin@isc.org>
Wed, 22 Jan 2025 09:56:09 +0000 (09:56 +0000)
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.

lib/dns/include/dns/resolver.h
lib/dns/resolver.c

index 93a215598cbecc34be54767095f6cd27808b51b7..62ffb9885ff1adea4dc53b776e07a242ac73d5f5 100644 (file)
@@ -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
index 70900c4cc0c56a007575c5da3eb0a6ef54f5b276..5a1be00835d5022d5b686e03042841df16db9bcf 100644 (file)
@@ -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