*/
/*
* This file is part of adns, which is
- * Copyright (C) 1997-2000,2003,2006,2014-2016 Ian Jackson
+ * Copyright (C) 1997-2000,2003,2006,2014-2016,2020 Ian Jackson
* Copyright (C) 2014 Mark Wooding
* Copyright (C) 1999-2000,2003,2006 Tony Finch
* Copyright (C) 1991 Massachusetts Institute of Technology
typedef enum {
cc_user,
- cc_entex,
+ cc_enter,
+ cc_exit,
cc_freq
} consistency_checks;
void *p;
void (*fp)(void);
union maxalign *up;
-} data;
+};
struct adns__query {
adns_state ads;
int id, flags, retries;
int udpnextserver;
unsigned long udpsent; /* bitmap indexed by server */
- struct timeval timeout;
+ struct timeval timeout_expires;
time_t expires; /* Earliest expiry time of any record we used. */
qcontext ctx;
* lest we end up in recursive descent !
*/
+void adns__timeout_set(adns_query qu, struct timeval now, int ms);
+static inline void adns__timeout_clear(adns_query qu)
+ { timerclear(&qu->timeout_expires); }
+
+
void adns__must_gettimeofday(adns_state ads, const struct timeval **now_io,
struct timeval *tv_buf);
/* Call with care - might reentrantly cause queries to be completed! */