query_reset(client, false);
}
+static void
+maybe_init_fetch_counter(ns_client_t *client) {
+ if (client->query.qc == NULL) {
+ /*
+ * Start global outgoing query count.
+ */
+ isc_counter_create(client->manager->mctx,
+ client->inner.view->max_queries,
+ &client->query.qc);
+ }
+}
+
void
ns_query_free(ns_client_t *client) {
REQUIRE(NS_CLIENT_VALID(client));
fetchp = &client->query.recursions[recursion_type].fetch;
isc_nmhandle_attach(client->inner.handle, handlep);
+ maybe_init_fetch_counter(client);
result = dns_resolver_createfetch(
client->inner.view->resolver, qname, qtype, NULL, NULL, NULL,
peeraddr, client->message->id, options, 0, NULL,
isc_nmhandle_attach(client->inner.handle,
&HANDLE_RECTYPE_NORMAL(client));
+ maybe_init_fetch_counter(client);
result = dns_resolver_createfetch(
client->inner.view->resolver, qname, qtype, qdomain,
nameservers, NULL, peeraddr, client->message->id,
}
/*
- * Start global outgoing query count.
+ * Query counter will be started lazily, as it is unneeded for auth
+ * queries.
*/
- isc_counter_create(client->manager->mctx,
- client->inner.view->max_queries, &client->query.qc);
+ client->query.qc = NULL;
query_setup(client, qtype);
}