]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Refactor incrementing query counters
authorColin Vidal <colin@isc.org>
Tue, 7 Apr 2026 20:18:10 +0000 (22:18 +0200)
committerMichał Kępień <michal@isc.org>
Thu, 7 May 2026 11:32:15 +0000 (13:32 +0200)
Move the logic incrementing the query counter and the global query
counter into a dedicated helper function.

lib/dns/resolver.c

index 19c4c29f0d044cdb08386f5a7749ae8d7e812695..5fed2760decab4919148c4e913c307655594bfbb 100644 (file)
@@ -4285,6 +4285,39 @@ fctx_nextaddress(fetchctx_t *fctx) {
        return addrinfo;
 }
 
+static isc_result_t
+incr_query_counters(fetchctx_t *fctx) {
+       isc_result_t result;
+
+       result = isc_counter_increment(fctx->qc);
+#if WANT_QUERYTRACE
+       FCTXTRACE5("query", "max-recursion-queries, querycount=",
+                  isc_counter_used(fctx->qc));
+#endif
+       if (result != ISC_R_SUCCESS) {
+               isc_log_write(DNS_LOGCATEGORY_RESOLVER, DNS_LOGMODULE_RESOLVER,
+                             ISC_LOG_DEBUG(3),
+                             "exceeded max queries resolving '%s' "
+                             "(max-recursion-queries, querycount=%u)",
+                             fctx->info, isc_counter_used(fctx->qc));
+       } else if (fctx->gqc != NULL) {
+               result = isc_counter_increment(fctx->gqc);
+#if WANT_QUERYTRACE
+               FCTXTRACE5("query", "max-query-count, querycount=",
+                          isc_counter_used(fctx->gqc));
+#endif
+               if (result != ISC_R_SUCCESS) {
+                       isc_log_write(DNS_LOGCATEGORY_RESOLVER,
+                                     DNS_LOGMODULE_RESOLVER, ISC_LOG_DEBUG(3),
+                                     "exceeded global max queries resolving "
+                                     "'%s' (max-query-count, querycount=%u)",
+                                     fctx->info, isc_counter_used(fctx->gqc));
+               }
+       }
+
+       return result;
+}
+
 static void
 fctx_try(fetchctx_t *fctx, bool retrying) {
        isc_result_t result;
@@ -4425,36 +4458,11 @@ fctx_try(fetchctx_t *fctx, bool retrying) {
                return;
        }
 
-       result = isc_counter_increment(fctx->qc);
-#if WANT_QUERYTRACE
-       FCTXTRACE5("query", "max-recursion-queries, querycount=",
-                  isc_counter_used(fctx->qc));
-#endif
+       result = incr_query_counters(fctx);
        if (result != ISC_R_SUCCESS) {
-               isc_log_write(DNS_LOGCATEGORY_RESOLVER, DNS_LOGMODULE_RESOLVER,
-                             ISC_LOG_DEBUG(3),
-                             "exceeded max queries resolving '%s' "
-                             "(max-recursion-queries, querycount=%u)",
-                             fctx->info, isc_counter_used(fctx->qc));
                goto done;
        }
 
-       if (fctx->gqc != NULL) {
-               result = isc_counter_increment(fctx->gqc);
-#if WANT_QUERYTRACE
-               FCTXTRACE5("query", "max-query-count, querycount=",
-                          isc_counter_used(fctx->gqc));
-#endif
-               if (result != ISC_R_SUCCESS) {
-                       isc_log_write(DNS_LOGCATEGORY_RESOLVER,
-                                     DNS_LOGMODULE_RESOLVER, ISC_LOG_DEBUG(3),
-                                     "exceeded global max queries resolving "
-                                     "'%s' (max-query-count, querycount=%u)",
-                                     fctx->info, isc_counter_used(fctx->gqc));
-                       goto done;
-               }
-       }
-
        result = fctx_query(fctx, addrinfo, fctx->options);
        if (result != ISC_R_SUCCESS) {
                goto done;