*/
/*
* 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
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;
+ int timeout_ms;
+ struct timeval timeout_started;
time_t expires; /* Earliest expiry time of any record we used. */
qcontext ctx;
* lest we end up in recursive descent !
*/
+static inline void
+adns__timeout_set(adns_query qu, struct timeval now, long ms)
+ { qu->timeout_ms= ms; qu->timeout_started= now; }
+
+static inline void
+adns__timeout_clear(adns_query qu)
+ { qu->timeout_ms= 0; timerclear(&qu->timeout_started); }
+
+
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! */