X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/7def4935e643180b1f085781da85db7c3a9f6dad..0872e2895aa60a446cc7d2b2b2b71e0784ade074:/src/setup.c 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)); +}