1 /* $NetBSD: ntp_intres.h,v 1.6 2020/05/25 20:47:19 christos Exp $ */ 2 3 /* 4 * ntp_intres.h - client interface to blocking-worker name resolution. 5 */ 6 #ifndef NTP_INTRES_H 7 #define NTP_INTRES_H 8 9 #include <ntp_worker.h> 10 11 #ifdef WORKER 12 #define INITIAL_DNS_RETRY 2 /* seconds between queries */ 13 14 /* flags for extended addrinfo version */ 15 #define GAIR_F_IGNDNSERR 0x0001 /* ignore DNS errors */ 16 17 /* 18 * you call getaddrinfo_sometime(name, service, &hints, retry, callback_func, context); 19 * later (*callback_func)(rescode, gai_errno, context, name, service, hints, ai_result) is called. 20 */ 21 typedef void (*gai_sometime_callback) 22 (int, int, void *, const char *, const char *, 23 const struct addrinfo *, const struct addrinfo *); 24 extern int getaddrinfo_sometime(const char *, const char *, 25 const struct addrinfo *, int, 26 gai_sometime_callback, void *); 27 extern int getaddrinfo_sometime_ex(const char *, const char *, 28 const struct addrinfo *, int, 29 gai_sometime_callback, void *, u_int); 30 /* 31 * In gai_sometime_callback routines, the resulting addrinfo list is 32 * only available until the callback returns. To hold on to the list 33 * of addresses after the callback returns, use copy_addrinfo_list(): 34 * 35 * struct addrinfo *copy_addrinfo_list(const struct addrinfo *); 36 */ 37 38 39 /* 40 * you call getnameinfo_sometime(sockaddr, namelen, servlen, flags, callback_func, context); 41 * later (*callback_func)(rescode, gni_errno, sockaddr, flags, name, service, context) is called. 42 */ 43 typedef void (*gni_sometime_callback) 44 (int, int, sockaddr_u *, int, const char *, 45 const char *, void *); 46 extern int getnameinfo_sometime(sockaddr_u *, size_t, size_t, int, 47 gni_sometime_callback, void *); 48 #endif /* WORKER */ 49 50 /* intres_timeout_req() is provided by the client, ntpd or sntp. */ 51 extern void intres_timeout_req(u_int); 52 53 #endif /* NTP_INTRES_H */ 54