X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftypes.c;h=e494ab36554fadb88d70dc557b393cd80705fcce;hb=7da210700fbdd45a273d6735f6a2a55ae3838633;hp=21b321c5e768638f1f0a3fa45169f585fdc21966;hpb=eb81d633c04379d99f087155ae7bf06ba0e65982;p=adns.git diff --git a/src/types.c b/src/types.c index 21b321c..e494ab3 100644 --- a/src/types.c +++ b/src/types.c @@ -353,6 +353,9 @@ static adns_status pap_hostaddr(const parseinfo *pai, int *cbyte_io, int max, adns_rr_hostaddr *rrp) { adns_status st; int dmstart, cbyte; + qcontext ctx; + int id; + adns_query nqu; dmstart= cbyte= *cbyte_io; st= pap_domain(pai, &cbyte, max, &rrp->host, @@ -374,8 +377,19 @@ static adns_status pap_hostaddr(const parseinfo *pai, int *cbyte_io, if (st) return st; if (rrp->naddrs != -1) return adns_s_ok; - rrp->naddrs= 0; /* fixme additional section didn't have required data */ - rrp->astatus= adns_s_notimplemented; + st= adns__mkquery_frdgram(pai->ads, &pai->qu->vb, &id, + pai->dgram, pai->dglen, dmstart, + adns_r_addr, adns_qf_quoteok_query); + if (st) return st; + + ctx.hostaddr= rrp; + st= adns__internal_submit(pai->ads, &nqu, adns__findtype(adns_r_addr), + &pai->qu->vb, id, + adns_qf_quoteok_query, pai->now, 0, &ctx); + if (st) return st; + + nqu->parent= pai->qu; + LIST_LINK_TAIL_PART(pai->qu->children,nqu,siblings.); return adns_s_ok; }