X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsetup.c;h=d1bdb04306a17dd7dfd152e6ab13312c6cb17054;hb=b365d68ae5de07ef9dc4a3b92058a13edba5ad6f;hp=99d1f088ebf3f7e12d838e5e92cb4af836ed6c96;hpb=d855b532b689db96ca7f3b245ddf2b0bf149431d;p=adns.git diff --git a/src/setup.c b/src/setup.c index 99d1f08..d1bdb04 100644 --- a/src/setup.c +++ b/src/setup.c @@ -23,7 +23,6 @@ #include #include -#include #include #include #include @@ -582,14 +581,27 @@ adns_query adns_forallqueries_next(adns_state ads, void **context_r) { for (;;) { qu= nqu; if (!qu) return 0; - nqu= - qu->next ? qu->next : - qu == ads->timew.tail ? (ads->childw.head ? ads->childw.head : ads->output.head) : - qu == ads->childw.tail ? ads->output.head : - 0; + if (qu->next) { + nqu= qu->next; + } else if (qu == ads->timew.tail) { + if (ads->childw.head) { + nqu= ads->childw.head; + } else { + nqu= ads->output.head; + } + } else if (qu == ads->childw.tail) { + nqu= ads->output.head; + } else { + nqu= 0; + } if (!qu->parent) break; } ads->forallnext= nqu; if (context_r) *context_r= qu->ctx.ext; return qu; } + +void adns__checkqueues(adns_state ads) { + adns_forallqueries_begin(ads); + while (adns_forallqueries_next(ads,0)); +}