* Any other recursion.
*/
dns_delegset_t *delegset = NULL;
+ dns_fixedname_t ffname;
+ dns_name_t *fname = dns_fixedname_initname(&ffname);
+ isc_result_t tresult;
+
+ tresult = dns_view_bestzonecut(qctx->view, qname, fname, NULL,
+ qctx->client->inner.now, 0, true,
+ true, &delegset);
+ if (tresult != ISC_R_SUCCESS) {
+ dns_delegset_fromrdataset(qctx->rdataset, &delegset);
+ fname = qctx->fname;
+ }
- dns_deleg_fromrdataset(qctx->rdataset, &delegset);
result = ns_query_recurse(qctx->client, qctx->qtype, qname,
- qctx->fname, delegset,
- qctx->resuming);
+ fname, delegset, qctx->resuming);
+
if (delegset != NULL) {
dns_delegset_detach(&delegset);
}