From: ian Date: Wed, 14 Jul 1999 21:59:56 +0000 (+0000) Subject: Made adnstest.c test context pointers. X-Git-Tag: wip.base.getaddrinfo~326 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=d6b051725d0091d89de312963ad3db894ca6c343;p=adns.git Made adnstest.c test context pointers. --- diff --git a/changelog b/changelog index 2944a03..e6d664a 100644 --- a/changelog +++ b/changelog @@ -20,6 +20,7 @@ adns (0.3) unstable; urgency=low * In adnstest, don't print errno values as adns_status values. * Added TODO file. + * Made adnstest.c test context pointers. -- diff --git a/client/adnstest.c b/client/adnstest.c index a293d3b..1d99a69 100644 --- a/client/adnstest.c +++ b/client/adnstest.c @@ -98,8 +98,15 @@ static int consistsof(const char *string, const char *accept) { } int main(int argc, char *const *argv) { + struct myctx { + adns_query qu; + int doneyet; + }; + adns_state ads; - adns_query *qus, qu; + adns_query qu; + struct myctx *mcs, *mc; + void *mcr; adns_answer *ans; const char *initstring, *rrtn, *fmtn; const char *const *fdomlist, *domain; @@ -173,8 +180,8 @@ int main(int argc, char *const *argv) { for (qc=0; fdomlist[qc]; qc++); for (tc=0; types[tc] != adns_r_none; tc++); - qus= malloc(sizeof(qus)*qc*tc); - if (!qus) { perror("malloc qus"); exit(3); } + mcs= malloc(sizeof(*mcs)*qc*tc); + if (!mcs) { perror("malloc mcs"); exit(3); } if (initstring) { r= adns_init_strcfg(&ads, @@ -197,11 +204,15 @@ int main(int argc, char *const *argv) { exit(4); } for (ti=0; tidoneyet= 0; + fprintf(stdout,"%s flags %d type %d",domain,qflags,types[ti]); - r= adns_submit(ads,domain,types[ti],qflags,0,&qus[qi*tc+ti]); + r= adns_submit(ads,domain,types[ti],qflags,mc,&mc->qu); if (r == adns_s_unknownrrtype) { fprintf(stdout," not implemented\n"); - qus[qi*tc+ti]= 0; + mc->qu= 0; + mc->doneyet= 1; } else if (r) { failure_errno("submit",r); } else { @@ -215,14 +226,15 @@ int main(int argc, char *const *argv) { for (qi=0; qidoneyet) continue; + qu= mc->qu; if (strchr(owninitflags,'p')) { for (;;) { - r= adns_check(ads,&qu,&ans,0); + r= adns_check(ads,&qu,&ans,&mcr); if (r != EWOULDBLOCK) break; for (;;) { npollfds= npollfdsavail; @@ -239,10 +251,12 @@ int main(int argc, char *const *argv) { adns_afterpoll(ads,pollfds, r?npollfds:0, 0); } } else { - r= adns_wait(ads,&qu,&ans,0); + r= adns_wait(ads,&qu,&ans,&mcr); } if (r) failure_errno("wait/check",r); + assert(mcr==mc); + if (gettimeofday(&now,0)) { perror("gettimeofday"); exit(3); } ri= adns_rr_info(ans->type, &rrtn,&fmtn,&len, 0,0); @@ -270,7 +284,7 @@ int main(int argc, char *const *argv) { } } - free(qus); + free(mcs); adns_finish(ads); exit(0);