dns_resolver_t *res = NULL;
dns_rdataset_t *nsrdataset = NULL;
dns_rdataset_t nameservers;
+ dns_fixedname_t fixed;
+ dns_name_t *domain = NULL;
unsigned int n;
dns_fetch_t *fetch = NULL;
goto cleanup;
}
- /* Get nameservers from fctx->nsfetch before we destroy it. */
+ /* Get nameservers from fetch before we destroy it. */
dns_rdataset_init(&nameservers);
if (dns_rdataset_isassociated(&fetch->private->nameservers)) {
dns_rdataset_clone(&fetch->private->nameservers,
&nameservers);
nsrdataset = &nameservers;
+
+ /* Get domain from fetch before we destroy it. */
+ domain = dns_fixedname_initname(&fixed);
+ dns_name_copy(fetch->private->domain, domain);
}
n = dns_name_countlabels(fctx->nsname);
fetchctx_ref(fctx);
result = dns_resolver_createfetch(
- res, fctx->nsname, dns_rdatatype_ns,
- fetch->private->domain, nsrdataset, NULL, NULL, 0,
- fctx->options, 0, NULL, task, resume_dslookup, fctx,
- &fctx->nsrrset, NULL, &fctx->nsfetch);
+ res, fctx->nsname, dns_rdatatype_ns, domain, nsrdataset,
+ NULL, NULL, 0, fctx->options, 0, NULL, task,
+ resume_dslookup, fctx, &fctx->nsrrset, NULL,
+ &fctx->nsfetch);
if (result != ISC_R_SUCCESS) {
fetchctx_unref(fctx);
if (result == DNS_R_DUPLICATE) {