Move the formulaic queue management from the call sites to
adns__internal_submit. The requirement to do this wasn't mentioned in
adns__internal_submit's comment, and now that it's not there it
probably isn't worth remarking on.
No ultimate functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Conflicts:
src/types.c
/* From query.c: */
adns_status adns__internal_submit(adns_state ads, adns_query *query_r,
/* From query.c: */
adns_status adns__internal_submit(adns_state ads, adns_query *query_r,
const typeinfo *typei, adns_rrtype type,
vbuf *qumsg_vb, int id,
adns_queryflags flags, struct timeval now,
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_status adns__internal_submit(adns_state ads, adns_query *query_r,
const typeinfo *typei, adns_rrtype type,
vbuf *qumsg_vb, int id,
adns_queryflags flags, struct timeval now,
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;
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);
memcpy(&qu->ctx,ctx,sizeof(qu->ctx));
query_submit(ads,qu, typei,qumsg_vb,id,flags,now);
err= adns__mkquery_frdgram(qu->ads, &qu->vb, &id, qd_dgram,qd_dglen,
DNS_HDRSIZE, addr_all_rrtypes[i], qf);
if (err) goto x_error;
err= adns__mkquery_frdgram(qu->ads, &qu->vb, &id, qd_dgram,qd_dglen,
DNS_HDRSIZE, addr_all_rrtypes[i], qf);
if (err) goto x_error;
- err= adns__internal_submit(qu->ads, &cqu, &tinfo_addrsub,
+ err= adns__internal_submit(qu->ads, &cqu, qu, &tinfo_addrsub,
addr_all_rrtypes[i] | qtf,
&qu->vb, id, qf, now, &ctx);
if (err) goto x_error;
cqu->answer->rrsz= qu->answer->rrsz;
addr_all_rrtypes[i] | qtf,
&qu->vb, id, qf, now, &ctx);
if (err) goto x_error;
cqu->answer->rrsz= qu->answer->rrsz;
- cqu->parent= qu;
- LIST_LINK_TAIL_PART(qu->children, cqu,siblings.);
}
qu->state= query_childw;
LIST_LINK_TAIL(qu->ads->childw, qu);
}
qu->state= query_childw;
LIST_LINK_TAIL(qu->ads->childw, qu);
ctx->tinfo.addr.want= want;
ctx->tinfo.addr.have= 0;
ctx->tinfo.addr.want= want;
ctx->tinfo.addr.have= 0;
- err= adns__internal_submit(ads, &qu, adns__findtype(adns_r_addr),
+ err= adns__internal_submit(ads, &qu, parent, adns__findtype(adns_r_addr),
type, qumsg_vb, id, flags, now, ctx);
if (err) return err;
type, qumsg_vb, id, flags, now, ctx);
if (err) return err;
- qu->parent= parent;
- LIST_LINK_TAIL_PART(parent->children, qu, siblings.);
*query_r= qu;
return adns_s_ok;
}
*query_r= qu;
return adns_s_ok;
}
ctx.callback= icb_ptr;
memset(&ctx.pinfo,0,sizeof(ctx.pinfo));
memset(&ctx.tinfo,0,sizeof(ctx.tinfo));
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;
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.);