chiark / gitweb /
Cleanups.
authorian <ian>
Sun, 27 Sep 1998 17:56:52 +0000 (17:56 +0000)
committerian <ian>
Sun, 27 Sep 1998 17:56:52 +0000 (17:56 +0000)
src/adns.c
src/adns.h

index 43a0dac..cea597e 100644 (file)
@@ -327,7 +327,7 @@ int adns_check(adns_state ads,
 int adns_synchronous(adns_state ads,
                     const char *owner,
                     adns_rrtype type,
-                    int flags,
+                    adns_queryflags flags,
                     adns_answer *answer) {
   adns_query qu;
   int r;
@@ -335,7 +335,9 @@ int adns_synchronous(adns_state ads,
   r= adns_submit(ads,owner,type,flags,0,&qu);
   if (r) return r;
 
-  r= adns_wait(ads,&qu,answer,0);
+  do {
+    r= adns_wait(ads,&qu,answer,0);
+  } while (r==EINTR);
   if (r) adns_cancel(ads,qu);
   return r;
 }
@@ -343,7 +345,7 @@ int adns_synchronous(adns_state ads,
 int adns_submit(adns_state ads,
                const char *owner,
                adns_rrtype type,
-               int flags,
+               adns_queryflags flags,
                void *context,
                adns_query *query_r) {
   adns_query qu;
index 69425ae..553c320 100644 (file)
@@ -123,8 +123,9 @@ int adns_init(adns_state *newstate_r, adns_initflags flags);
 int adns_synchronous(adns_state ads,
                     const char *owner,
                     adns_rrtype type,
-                    int flags,
+                    adns_queryflags flags,
                     adns_answer *answer);
+/* Will not return EINTR. */
 
 /* NB: if you set adns_if_noautosys then _submit and _check do not
  * make any system calls; you must use adns_callback (possibly after
@@ -134,7 +135,7 @@ int adns_synchronous(adns_state ads,
 int adns_submit(adns_state ads,
                const char *owner,
                adns_rrtype type,
-               int flags,
+               adns_queryflags flags,
                void *context,
                adns_query *query_r);
 
@@ -147,6 +148,7 @@ int adns_wait(adns_state ads,
              adns_query *query_io,
              adns_answer *answer,
              void *context_r);
+/* Might return EINTR - if so, try again */
 
 void adns_cancel(adns_state ads, adns_query query);