void async_ns_resolution(knot_dname_t *name, enum knot_rr_type type) {
struct kr_qflags flags;
memset(&flags, 0, sizeof(struct kr_qflags));
+ flags.IS_ASYNC_NS = true;
knot_pkt_t* pkt = worker_resolve_mk_pkt_dname(name, type, KNOT_CLASS_IN, &flags);
- worker_resolve_start(pkt, flags);
+ struct qr_task *task = worker_resolve_start(pkt, flags);
+ if (task) {
+ task->ctx->req.options.IS_ASYNC_NS = true;
+ worker_resolve_exec(task, pkt);
+ }
free(pkt);
}
bool NO_NS_FOUND : 1; /**< No valid NS found during last PRODUCE stage. */
bool PKT_IS_SANE : 1; /**< Set by iterator in consume phase to indicate whether
* some basic aspects of the packet are OK, e.g. QNAME. */
+ bool IS_ASYNC_NS : 1; /**< Request is a async NS resolution for server selection */
};
/** Combine flags together. This means set union for simple flags. */