/* From query.c: */
adns_status adns__internal_submit(adns_state ads, adns_query *query_r,
+ adns_query parent,
const typeinfo *typei, adns_rrtype type,
vbuf *qumsg_vb, int id,
adns_queryflags flags, struct timeval now,
}
adns_status adns__internal_submit(adns_state ads, adns_query *query_r,
+ adns_query parent,
const typeinfo *typei, adns_rrtype type,
vbuf *qumsg_vb, int id,
adns_queryflags flags, struct timeval now,
if (!qu) { err = adns_s_nomemory; goto x_err; }
*query_r= qu;
+ qu->parent= parent;
+ LIST_LINK_TAIL_PART(parent->children,qu,siblings.);
memcpy(&qu->ctx,ctx,sizeof(qu->ctx));
query_submit(ads,qu, typei,qumsg_vb,id,flags,now);
nflags= adns_qf_quoteok_query;
if (!(pai->qu->flags & adns_qf_cname_loose)) nflags |= adns_qf_cname_forbid;
- st= adns__internal_submit(pai->ads, &nqu, adns__findtype(adns_r_addr),
+ st= adns__internal_submit(pai->ads, &nqu, pai->qu,
+ adns__findtype(adns_r_addr),
((adns_r_addr & adns_rrt_reprmask) |
(pai->qu->answer->type & ~adns_rrt_reprmask)),
&pai->qu->vb, id, nflags, pai->now, &ctx);
if (st) return st;
- nqu->parent= pai->qu;
- LIST_LINK_TAIL_PART(pai->qu->children,nqu,siblings.);
-
return adns_s_ok;
}
ctx.callback= icb_ptr;
memset(&ctx.pinfo,0,sizeof(ctx.pinfo));
memset(&ctx.tinfo,0,sizeof(ctx.tinfo));
- st= adns__internal_submit(pai->ads, &nqu, adns__findtype(rrtype),
+ st= adns__internal_submit(pai->ads, &nqu, pai->qu,
+ adns__findtype(rrtype),
rrtype, &pai->qu->vb, id,
adns_qf_quoteok_query, pai->now, &ctx);
if (st) return st;
- nqu->parent= pai->qu;
- LIST_LINK_TAIL_PART(pai->qu->children,nqu,siblings.);
return adns_s_ok;
}