X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcheck.c;fp=src%2Fcheck.c;h=c773508d722d63d4fb6a4e2d371cb2b0210132d3;hb=ccf05d0f258c7f158b0436f11137702ee78d4ddb;hp=fcf1995e31db188566c90d22e5791907f2fe4485;hpb=51d963e7dbd34c579a242161ad1eecccd7fdc529;p=adns.git diff --git a/src/check.c b/src/check.c index fcf1995..c773508 100644 --- a/src/check.c +++ b/src/check.c @@ -136,14 +136,19 @@ static void checkc_queue_tcpw(adns_state ads) { } static void checkc_queue_childw(adns_state ads) { - adns_query parent, child; + adns_query parent, child, search; DLIST_CHECK(ads->childw, parent, , { assert(parent->state == query_childw); assert(parent->children.head); DLIST_CHECK(parent->children, child, siblings., { assert(child->parent == parent); - assert(child->state != query_done); + if (child->state == query_done) { + for (search= ads->intdone.head; search; search= search->next) + if (search==child) goto child_done_ok; + assert(!"done child not on intdone"); + child_done_ok:; + } }); checkc_query(ads,parent); checkc_query_alloc(ads,parent);