chiark / gitweb /
First record and playback works.
[adns.git] / src / event.c
index a61b8dd61893c7136cad52243f23dd2bea1ab61a..d42afbd15df2e9be1e806759f94063ef662cb1b1 100644 (file)
@@ -374,7 +374,7 @@ static int internal_check(adns_state ads,
   }
   LIST_UNLINK(ads->output,qu);
   *answer= qu->answer;
-  if (context_r) *context_r= qu->context.ext;
+  if (context_r) *context_r= qu->ctx.ext;
   free(qu);
   return 0;
 }
@@ -394,7 +394,10 @@ int adns_wait(adns_state ads,
     FD_ZERO(&readfds); FD_ZERO(&writefds); FD_ZERO(&exceptfds);
     adns_interest(ads,&maxfd,&readfds,&writefds,&exceptfds,&tvp,&tvbuf);
     rsel= select(maxfd,&readfds,&writefds,&exceptfds,tvp);
-    if (rsel==-1) return r;
+    if (rsel==-1) {
+      if (errno == EINTR && !(ads->iflags & adns_if_eintr)) continue;
+      return errno;
+    }
     rcb= adns_callback(ads,maxfd,&readfds,&writefds,&exceptfds);
     assert(rcb==rsel);
   }