X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fquery.c;h=82adbddb1562e0925646f9dd03d6ef4a3a796f44;hb=HEAD;hp=a462bbc0e31fefeb78a045852fa0ac5aea51f63e;hpb=0a214048761384524d2bfc48e792315e6a2e187d;p=adns.git diff --git a/src/query.c b/src/query.c index a462bbc..7d537d5 100644 --- a/src/query.c +++ b/src/query.c @@ -5,12 +5,8 @@ * - query submission and cancellation (user-visible and internal) */ /* - * This file is part of adns, which is - * Copyright (C) 1997-2000,2003,2006,2014-2016 Ian Jackson - * Copyright (C) 2014 Mark Wooding - * Copyright (C) 1999-2000,2003,2006 Tony Finch - * Copyright (C) 1991 Massachusetts Institute of Technology - * (See the file INSTALL for full details.) + * This file is part of adns, which is Copyright Ian Jackson + * and contributors (see the file INSTALL for full details). * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -72,7 +68,7 @@ static adns_query query_alloc(adns_state ads, qu->retries= 0; qu->udpnextserver= 0; qu->udpsent= 0; - timerclear(&qu->timeout); + adns__timeout_clear(qu); qu->expires= now.tv_sec + MAXTTLBELIEVE; memset(&qu->ctx,0,sizeof(qu->ctx)); @@ -273,7 +269,7 @@ int adns_submit(adns_state ads, adns_query qu; const char *p; - adns__consistency(ads,0,cc_entex); + adns__consistency(ads,0,cc_enter); if (flags & ~(adns_queryflags)0x4009ffff) /* 0x40080000 are reserved for `harmless' future expansion @@ -284,7 +280,7 @@ int adns_submit(adns_state ads, typei= adns__findtype(type); if (!typei) return ENOSYS; - r= gettimeofday(&now,0); if (r) goto x_errno; + r= adns__gettimeofday(ads,&now); if (r) goto x_errno; qu= query_alloc(ads,typei,type,flags,now); if (!qu) goto x_errno; qu->ctx.ext= context; @@ -504,7 +500,7 @@ static void free_query_allocs(adns_query qu) { qu->query_dgram= 0; } -void adns__returning(adns_state ads, adns_query qu_for_caller) { +void adns__intdone_process(adns_state ads) { while (ads->intdone.head) { adns_query iq= ads->intdone.head; adns_query parent= iq->parent; @@ -516,7 +512,11 @@ void adns__returning(adns_state ads, adns_query qu_for_caller) { free(iq->answer); free(iq); } - adns__consistency(ads,qu_for_caller,cc_entex); +} + +void adns__returning(adns_state ads, adns_query qu_for_caller) { + adns__intdone_process(ads); + adns__consistency(ads,qu_for_caller,cc_exit); } void adns__cancel(adns_query qu) { @@ -554,7 +554,7 @@ void adns_cancel(adns_query qu) { assert(!qu->parent); ads= qu->ads; - adns__consistency(ads,qu,cc_entex); + adns__consistency(ads,qu,cc_enter); adns__cancel(qu); adns__returning(ads,0); }