val->attributes |= VALATTR_COMPLETE;
val->result = result;
+ dns_ede_copy(val->cb_edectx, &val->edectx);
+
isc_async_run(val->loop, val->cb, val);
}
result = dns_resolver_createfetch(
val->view->resolver, name, type, NULL, NULL, NULL, NULL, 0,
fopts, 0, val->qc, val->gqc, val->loop, callback, val,
- val->edectx, &val->frdataset, &val->fsigrdataset, &val->fetch);
+ &val->edectx, &val->frdataset, &val->fsigrdataset, &val->fetch);
if (result != ISC_R_SUCCESS) {
dns_validator_detach(&val);
}
result = dns_validator_create(
val->view, name, type, rdataset, sig, NULL, vopts, val->loop,
cb, val, val->nvalidations, val->nfails, val->qc, val->gqc,
- val->edectx, &val->subvalidator);
+ &val->edectx, &val->subvalidator);
if (result == ISC_R_SUCCESS) {
dns_validator_attach(val, &val->subvalidator->parent);
val->subvalidator->depth = val->depth + 1;
REQUIRE(rdataset != NULL ||
(rdataset == NULL && sigrdataset == NULL && message != NULL));
REQUIRE(validatorp != NULL && *validatorp == NULL);
+ REQUIRE(edectx != NULL);
result = dns_view_getsecroots(view, &kt);
if (result != ISC_R_SUCCESS) {
.cb = cb,
.arg = arg,
.rdata = DNS_RDATA_INIT,
- .edectx = edectx,
+ .cb_edectx = edectx,
};
+ dns_ede_init(view->mctx, &val->edectx);
+
isc_refcount_init(&val->references, 1);
dns_view_attach(view, &val->view);
if (message != NULL) {
isc_counter_detach(&val->gqc);
}
+ dns_ede_invalidate(&val->edectx);
+
dns_view_detach(&val->view);
isc_loop_detach(&val->loop);
dns_rdatatype_totext(val->type, &b);
isc_buffer_putuint8(&b, '\0');
- dns_ede_add(val->edectx, code, bdata);
+ dns_ede_add(&val->edectx, code, bdata);
}
static void