#include "internal.h"
-static adns_query query_alloc(adns_state ads, const typeinfo *typei,
+static adns_query query_alloc(adns_state ads,
+ const typeinfo *typei, adns_rrtype type,
adns_queryflags flags, struct timeval now) {
/* Allocate a virgin query and return it. */
adns_query qu;
qu->answer->status= adns_s_ok;
qu->answer->cname= qu->answer->owner= 0;
- qu->answer->type= typei->type;
+ qu->answer->type= type;
qu->answer->expires= -1;
qu->answer->nrrs= 0;
qu->answer->rrs.untyped= 0;
const qcontext *ctx) {
adns_query qu;
- qu= query_alloc(ads,typei,flags,now);
+ qu= query_alloc(ads,typei,typei->typekey,flags,now);
if (!qu) { adns__vbuf_free(qumsg_vb); return adns_s_nomemory; }
*query_r= qu;
int id;
adns_status stat;
- stat= adns__mkquery(ads,&qu->vb,&id, owner,ol, typei,flags);
+ stat= adns__mkquery(ads,&qu->vb,&id, owner,ol,
+ typei,qu->answer->type, flags);
if (stat) {
if (stat == adns_s_querydomaintoolong && (flags & adns_qf_search)) {
adns__search_next(ads,qu,now);
if (!typei) return ENOSYS;
r= gettimeofday(&now,0); if (r) goto x_errno;
- qu= query_alloc(ads,typei,flags,now); if (!qu) goto x_errno;
+ qu= query_alloc(ads,typei,type,flags,now); if (!qu) goto x_errno;
qu->ctx.ext= context;
qu->ctx.callback= 0;