mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-12 13:49:59 -04:00
parent
c64ca8ce71
commit
164d30e3a1
1 changed files with 10 additions and 9 deletions
|
|
@ -7202,28 +7202,29 @@ resume_dslookup(isc_task_t *task, isc_event_t *event) {
|
|||
|
||||
bucketnum = fctx->bucketnum;
|
||||
if (fevent->result == ISC_R_CANCELED) {
|
||||
|
||||
if (dns_rdataset_isassociated(fevent->rdataset))
|
||||
if (dns_rdataset_isassociated(fevent->rdataset)) {
|
||||
dns_rdataset_disassociate(fevent->rdataset);
|
||||
}
|
||||
fevent = NULL;
|
||||
isc_event_free(&event);
|
||||
|
||||
dns_resolver_destroyfetch(&fctx->nsfetch);
|
||||
fctx_done(fctx, ISC_R_CANCELED, __LINE__);
|
||||
} else if (fevent->result == ISC_R_SUCCESS) {
|
||||
|
||||
FCTXTRACE("resuming DS lookup");
|
||||
|
||||
dns_resolver_destroyfetch(&fctx->nsfetch);
|
||||
if (dns_rdataset_isassociated(&fctx->nameservers))
|
||||
if (dns_rdataset_isassociated(&fctx->nameservers)) {
|
||||
dns_rdataset_disassociate(&fctx->nameservers);
|
||||
}
|
||||
dns_rdataset_clone(fevent->rdataset, &fctx->nameservers);
|
||||
fctx->ns_ttl = fctx->nameservers.ttl;
|
||||
fctx->ns_ttl_ok = ISC_TRUE;
|
||||
log_ns_ttl(fctx, "resume_dslookup");
|
||||
|
||||
if (dns_rdataset_isassociated(fevent->rdataset))
|
||||
if (dns_rdataset_isassociated(fevent->rdataset)) {
|
||||
dns_rdataset_disassociate(fevent->rdataset);
|
||||
}
|
||||
fevent = NULL;
|
||||
isc_event_free(&event);
|
||||
|
||||
|
|
@ -7262,9 +7263,9 @@ resume_dslookup(isc_task_t *task, isc_event_t *event) {
|
|||
domain = dns_fixedname_name(&fixed);
|
||||
dns_name_copy(&fctx->nsfetch->private->domain, domain, NULL);
|
||||
if (dns_name_equal(&fctx->nsname, domain)) {
|
||||
|
||||
if (dns_rdataset_isassociated(fevent->rdataset))
|
||||
if (dns_rdataset_isassociated(fevent->rdataset)) {
|
||||
dns_rdataset_disassociate(fevent->rdataset);
|
||||
}
|
||||
fevent = NULL;
|
||||
isc_event_free(&event);
|
||||
|
||||
|
|
@ -7304,9 +7305,9 @@ resume_dslookup(isc_task_t *task, isc_event_t *event) {
|
|||
* accessed below this point to prevent races with
|
||||
* another thread concurrently processing the fetch.
|
||||
*/
|
||||
if (result != ISC_R_SUCCESS)
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
fctx_done(fctx, result, __LINE__);
|
||||
else {
|
||||
} else {
|
||||
LOCK(&res->buckets[bucketnum].lock);
|
||||
locked = ISC_TRUE;
|
||||
fctx->references++;
|
||||
|
|
|
|||
Loading…
Reference in a new issue