unsigned int attributes;
dns_view_t *view;
dns_dispatch_t *dispatch;
- isc_nmhandle_t *handle; /* Permanent pointer to handle */
- isc_nmhandle_t *sendhandle; /* Waiting for send callback */
- isc_nmhandle_t *reqhandle; /* Waiting for request callback
- (query, update, notify) */
- isc_nmhandle_t *fetchhandle; /* Waiting for recursive fetch */
- isc_nmhandle_t *prefetchhandle; /* Waiting for prefetch / rpzfetch */
- isc_nmhandle_t *updatehandle; /* Waiting for update callback */
+ isc_nmhandle_t *handle; /* Permanent pointer to handle */
+ isc_nmhandle_t *sendhandle; /* Waiting for send callback */
+ isc_nmhandle_t *reqhandle; /* Waiting for request callback
+ (query, update, notify) */
+ isc_nmhandle_t *fetchhandle; /* Waiting for recursive fetch */
+ isc_nmhandle_t *updatehandle; /* Waiting for update callback */
unsigned char *tcpbuf;
dns_message_t *message;
unsigned char *sendbuf;
CTRACE(ISC_LOG_DEBUG(3), "prefetch_done");
LOCK(&client->query.fetchlock);
- if (client->query.prefetch != NULL) {
- INSIST(devent->fetch == client->query.prefetch);
- client->query.prefetch = NULL;
+ if (FETCH_RECTYPE_PREFETCH(client) != NULL) {
+ INSIST(devent->fetch == FETCH_RECTYPE_PREFETCH(client));
+ FETCH_RECTYPE_PREFETCH(client) = NULL;
}
UNLOCK(&client->query.fetchlock);
recursionquota_detach(client);
free_devent(client, &event, &devent);
- isc_nmhandle_detach(&client->prefetchhandle);
+ isc_nmhandle_detach(&HANDLE_RECTYPE_PREFETCH(client));
}
/*
peeraddr = NULL;
}
- isc_nmhandle_attach(client->handle, &client->prefetchhandle);
+ isc_nmhandle_attach(client->handle, &HANDLE_RECTYPE_PREFETCH(client));
options = client->query.fetchoptions | extra_fetch_options;
result = dns_resolver_createfetch(
client->view->resolver, qname, qtype, NULL, NULL, NULL,
peeraddr, client->message->id, options, 0, NULL,
client->manager->task, prefetch_done, client, tmprdataset, NULL,
- &client->query.prefetch);
+ &FETCH_RECTYPE_PREFETCH(client));
if (result != ISC_R_SUCCESS) {
ns_client_putrdataset(client, &tmprdataset);
- isc_nmhandle_detach(&client->prefetchhandle);
+ isc_nmhandle_detach(&HANDLE_RECTYPE_PREFETCH(client));
}
}
dns_rdataset_t *rdataset) {
CTRACE(ISC_LOG_DEBUG(3), "query_prefetch");
- if (client->query.prefetch != NULL ||
+ if (FETCH_RECTYPE_PREFETCH(client) != NULL ||
client->view->prefetch_trigger == 0U ||
rdataset->ttl > client->view->prefetch_trigger ||
(rdataset->attributes & DNS_RDATASETATTR_PREFETCH) == 0)
query_rpzfetch(ns_client_t *client, dns_name_t *qname, dns_rdatatype_t type) {
CTRACE(ISC_LOG_DEBUG(3), "query_rpzfetch");
- if (client->query.prefetch != NULL) {
+ if (FETCH_RECTYPE_PREFETCH(client) != NULL) {
return;
}