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