diff --git a/lib/ns/include/ns/client.h b/lib/ns/include/ns/client.h index 33eff5938e..fb7b86ffbf 100644 --- a/lib/ns/include/ns/client.h +++ b/lib/ns/include/ns/client.h @@ -183,12 +183,13 @@ struct ns_client { isc_task_t * task; 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 *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 *prefetchhandle; /* Waiting for prefetch / rpzfetch */ + isc_nmhandle_t *updatehandle; /* Waiting for update callback */ unsigned char * tcpbuf; dns_message_t * message; unsigned char * sendbuf; diff --git a/lib/ns/query.c b/lib/ns/query.c index 5f8a355d96..2e1b27d78d 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -2475,7 +2475,7 @@ prefetch_done(isc_task_t *task, isc_event_t *event) { } free_devent(client, &event, &devent); - isc_nmhandle_detach(&client->fetchhandle); + isc_nmhandle_detach(&client->prefetchhandle); } static void @@ -2518,7 +2518,7 @@ query_prefetch(ns_client_t *client, dns_name_t *qname, peeraddr = NULL; } - isc_nmhandle_attach(client->handle, &client->fetchhandle); + isc_nmhandle_attach(client->handle, &client->prefetchhandle); options = client->query.fetchoptions | DNS_FETCHOPT_PREFETCH; result = dns_resolver_createfetch( client->view->resolver, qname, rdataset->type, NULL, NULL, NULL, @@ -2527,7 +2527,7 @@ query_prefetch(ns_client_t *client, dns_name_t *qname, &client->query.prefetch); if (result != ISC_R_SUCCESS) { ns_client_putrdataset(client, &tmprdataset); - isc_nmhandle_detach(&client->fetchhandle); + isc_nmhandle_detach(&client->prefetchhandle); } dns_rdataset_clearprefetch(rdataset); @@ -2732,7 +2732,7 @@ query_rpzfetch(ns_client_t *client, dns_name_t *qname, dns_rdatatype_t type) { } options = client->query.fetchoptions; - isc_nmhandle_attach(client->handle, &client->fetchhandle); + isc_nmhandle_attach(client->handle, &client->prefetchhandle); result = dns_resolver_createfetch( client->view->resolver, qname, type, NULL, NULL, NULL, peeraddr, client->message->id, options, 0, NULL, client->task, @@ -2740,7 +2740,7 @@ query_rpzfetch(ns_client_t *client, dns_name_t *qname, dns_rdatatype_t type) { &client->query.prefetch); if (result != ISC_R_SUCCESS) { ns_client_putrdataset(client, &tmprdataset); - isc_nmhandle_detach(&client->fetchhandle); + isc_nmhandle_detach(&client->prefetchhandle); } }