From ce6c0c26a0263b98a88b7c7a1520a69b1f056ecc Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 28 Aug 2024 11:37:05 +1000 Subject: [PATCH] Use an accessor fuction to access find->status find->status is marked as private and access is controlled by find->lock. (cherry picked from commit c900300f21878de894c1d2f67b5662563aed9500) --- lib/dns/adb.c | 12 ++++++++++++ lib/dns/include/dns/adb.h | 10 ++++++++++ lib/dns/resolver.c | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/dns/adb.c b/lib/dns/adb.c index a8214c9d39..51521ad892 100644 --- a/lib/dns/adb.c +++ b/lib/dns/adb.c @@ -2324,6 +2324,18 @@ dns_adb_cancelfind(dns_adbfind_t *find) { } } +unsigned int +dns_adb_findstatus(dns_adbfind_t *find) { + unsigned int status; + REQUIRE(DNS_ADBFIND_VALID(find)); + + UNLOCK(&find->lock); + status = find->status; + UNLOCK(&find->lock); + + return (status); +} + void dns_adb_dump(dns_adb_t *adb, FILE *f) { isc_stdtime_t now = isc_stdtime_now(); diff --git a/lib/dns/include/dns/adb.h b/lib/dns/include/dns/adb.h index 65acb09ccf..9b40ab8f26 100644 --- a/lib/dns/include/dns/adb.h +++ b/lib/dns/include/dns/adb.h @@ -387,6 +387,16 @@ dns_adbfind_done(dns_adbfind_t find); *\li 'find' != NULL and *find be valid dns_adbfind_t pointer. */ +unsigned int +dns_adb_findstatus(dns_adbfind_t *); +/*%< + * Returns the status field of the find. + * + * Requires: + * + *\li 'find' be a valid dns_adbfind_t pointer. + */ + void dns_adb_destroyfind(dns_adbfind_t **find); /*%< diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index b557b5ac60..9957663c2d 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -2910,7 +2910,7 @@ fctx_finddone(void *arg) { * The fetch is waiting for a name to be found. */ INSIST(!SHUTTINGDOWN(fctx)); - if (find->status == DNS_ADB_MOREADDRESSES) { + if (dns_adb_findstatus(find) == DNS_ADB_MOREADDRESSES) { FCTX_ATTR_CLR(fctx, FCTX_ATTR_ADDRWAIT); want_try = true; } else {