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;
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;
}
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;
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
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 *query_io,
adns_answer *answer,
void *context_r);
+/* Might return EINTR - if so, try again */
void adns_cancel(adns_state ads, adns_query query);