chiark / gitweb /
+ * bug_if_query_done feature for debugging (SHOULD BE TAKEN OUT FOR RELEASE) privaterel-1999-03-26-head
authorian <ian>
Sun, 26 Mar 2000 15:26:17 +0000 (15:26 +0000)
committerian <ian>
Sun, 26 Mar 2000 15:26:17 +0000 (15:26 +0000)
@@ -1,5 +1,7 @@
 uadns (0.8) BETA; urgency=low

+  * bug_if_query_done feature for debugging (SHOULD BE TAKEN OUT FOR RELEASE)
+
   Bugfixes:
   * Spurious `server failure on unidentifiable query' warning suppressed.
   * adnslogres: cast chars to unsigned char before using ctype.h macros.

changelog
src/event.c
src/internal.h
src/query.c
src/setup.c

index d7868bbbea5d261d4bc6aa9b0351d3507243df40..aed8a56c3ffe84480d80bf958f622069def35e93 100644 (file)
--- a/changelog
+++ b/changelog
@@ -1,5 +1,7 @@
 uadns (0.8) BETA; urgency=low
 
+  * bug_if_query_done feature for debugging (SHOULD BE TAKEN OUT FOR RELEASE) 
+
   Bugfixes:
   * Spurious `server failure on unidentifiable query' warning suppressed.
   * adnslogres: cast chars to unsigned char before using ctype.h macros.
index 1b679e60760bff8bdf2c5b5e5b85f8c8a795db09..b82b5de397d9a9e7eeb9f007cc01c41a0d7fe33d 100644 (file)
@@ -673,7 +673,9 @@ int adns_wait(adns_state ads,
     if (r != EAGAIN) break;
     maxfd= 0; tvp= 0;
     FD_ZERO(&readfds); FD_ZERO(&writefds); FD_ZERO(&exceptfds);
+    ads->bug_if_query_done_now= 1;
     adns_beforeselect(ads,&maxfd,&readfds,&writefds,&exceptfds,&tvp,&tvbuf,0);
+    ads->bug_if_query_done_now= 0;
     assert(tvp);
     rsel= select(maxfd,&readfds,&writefds,&exceptfds,tvp);
     if (rsel==-1) {
index c7667382babd3adfec53dfde1e92e641c387c5d8..719a592255c3c0a0f7002b88257bfc73ce5b0845 100644 (file)
@@ -282,6 +282,7 @@ struct adns__state {
   struct query_queue udpw, tcpw, childw, output;
   adns_query forallnext;
   int nextid, udpsocket, tcpsocket;
+  int bug_if_query_done_now;
   vbuf tcpsend, tcprecv;
   int nservers, nsortlist, nsearchlist, searchndots, tcpserver, tcprecv_skip;
   enum adns__tcpstate {
index aaadb219e8868134d2882fb36e5f99872949b2e4..1fa26f87cbf673868a0b1421ba336fcbfdb1ec8b 100644 (file)
@@ -501,6 +501,7 @@ void adns__query_done(adns_query qu) {
   adns_answer *ans;
   adns_query parent;
 
+  assert(!qu->ads->bug_if_query_done_now);
   cancel_children(qu);
 
   qu->id= -1;
@@ -542,6 +543,7 @@ void adns__query_done(adns_query qu) {
 }
 
 void adns__query_fail(adns_query qu, adns_status stat) {
+  assert(!qu->ads->bug_if_query_done_now);
   adns__reset_preserved(qu);
   qu->answer->status= stat;
   adns__query_done(qu);
index ac88c33f6f79d15528102895013033cebdb3b99d..211f4257a1e72e9c1bd72eada67cd8d14953ba8c 100644 (file)
@@ -474,6 +474,7 @@ static int init_begin(adns_state *ads_r, adns_initflags flags, FILE *diagfile) {
   ads->forallnext= 0;
   ads->nextid= 0x311f;
   ads->udpsocket= ads->tcpsocket= -1;
+  ads->bug_if_query_done_now= 0;
   adns__vbuf_init(&ads->tcpsend);
   adns__vbuf_init(&ads->tcprecv);
   ads->tcprecv_skip= 0;