chiark
/
gitweb
/
~mdw
/
adns
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
958ad1f
)
Made adnstest.c test context pointers.
author
ian
<ian>
Wed, 14 Jul 1999 21:59:56 +0000
(21:59 +0000)
committer
ian
<ian>
Wed, 14 Jul 1999 21:59:56 +0000
(21:59 +0000)
changelog
patch
|
blob
|
blame
|
history
client/adnstest.c
patch
|
blob
|
blame
|
history
diff --git
a/changelog
b/changelog
index 2944a038f7b4f58b500acf1cddf187521daee155..e6d664af79e366f7f0b9eb9ca3485269d9b1f13e 100644
(file)
--- 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.
* 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 a293d3b1eb6e6102c3af028c352f242f2f3fd550..1d99a6954758648d3240c065c6b1230e98f0f45a 100644
(file)
--- 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) {
}
int main(int argc, char *const *argv) {
+ struct myctx {
+ adns_query qu;
+ int doneyet;
+ };
+
adns_state ads;
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;
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++);
for (qc=0; fdomlist[qc]; qc++);
for (tc=0; types[tc] != adns_r_none; tc++);
-
qus= malloc(sizeof(qu
s)*qc*tc);
- if (!
qus) { perror("malloc qu
s"); exit(3); }
+
mcs= malloc(sizeof(*mc
s)*qc*tc);
+ if (!
mcs) { perror("malloc mc
s"); exit(3); }
if (initstring) {
r= adns_init_strcfg(&ads,
if (initstring) {
r= adns_init_strcfg(&ads,
@@
-197,11
+204,15
@@
int main(int argc, char *const *argv) {
exit(4);
}
for (ti=0; ti<tc; ti++) {
exit(4);
}
for (ti=0; ti<tc; ti++) {
+ mc= &mcs[qi*tc+ti];
+ mc->doneyet= 0;
+
fprintf(stdout,"%s flags %d type %d",domain,qflags,types[ti]);
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");
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 {
} else if (r) {
failure_errno("submit",r);
} else {
@@
-215,14
+226,15
@@
int main(int argc, char *const *argv) {
for (qi=0; qi<qc; qi++) {
fdom_split(fdomlist[qi],&domain,&qflags,ownflags,sizeof(ownflags));
for (qi=0; qi<qc; qi++) {
fdom_split(fdomlist[qi],&domain,&qflags,ownflags,sizeof(ownflags));
-
+
for (ti=0; ti<tc; ti++) {
for (ti=0; ti<tc; ti++) {
- qu= qus[qi*tc+ti];
- if (!qu) continue;
+ mc= &mcs[qi*tc+ti];
+ if (mc->doneyet) continue;
+ qu= mc->qu;
if (strchr(owninitflags,'p')) {
for (;;) {
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;
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 {
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);
}
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);
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(
qu
s);
+ free(
mc
s);
adns_finish(ads);
exit(0);
adns_finish(ads);
exit(0);