ntp_intres.h revision 310419
1280849Scy/* 2280849Scy * ntp_intres.h - client interface to blocking-worker name resolution. 3280849Scy */ 4258945Sroberto#ifndef NTP_INTRES_H 5258945Sroberto#define NTP_INTRES_H 6258945Sroberto 7280849Scy#include <ntp_worker.h> 8280849Scy 9280849Scy#ifdef WORKER 10280849Scy#define INITIAL_DNS_RETRY 2 /* seconds between queries */ 11280849Scy 12310419Sdelphij/* flags for extended addrinfo version */ 13310419Sdelphij#define GAIR_F_IGNDNSERR 0x0001 /* ignore DNS errors */ 14310419Sdelphij 15258945Sroberto/* 16280849Scy * you call getaddrinfo_sometime(name, service, &hints, retry, callback_func, context); 17280849Scy * later (*callback_func)(rescode, gai_errno, context, name, service, hints, ai_result) is called. 18258945Sroberto */ 19280849Scytypedef void (*gai_sometime_callback) 20280849Scy (int, int, void *, const char *, const char *, 21280849Scy const struct addrinfo *, const struct addrinfo *); 22280849Scyextern int getaddrinfo_sometime(const char *, const char *, 23280849Scy const struct addrinfo *, int, 24280849Scy gai_sometime_callback, void *); 25310419Sdelphijextern int getaddrinfo_sometime_ex(const char *, const char *, 26310419Sdelphij const struct addrinfo *, int, 27310419Sdelphij gai_sometime_callback, void *, u_int); 28280849Scy/* 29280849Scy * In gai_sometime_callback routines, the resulting addrinfo list is 30280849Scy * only available until the callback returns. To hold on to the list 31280849Scy * of addresses after the callback returns, use copy_addrinfo_list(): 32280849Scy * 33280849Scy * struct addrinfo *copy_addrinfo_list(const struct addrinfo *); 34280849Scy */ 35258945Sroberto 36280849Scy 37280849Scy/* 38280849Scy * you call getnameinfo_sometime(sockaddr, namelen, servlen, flags, callback_func, context); 39280849Scy * later (*callback_func)(rescode, gni_errno, sockaddr, flags, name, service, context) is called. 40280849Scy */ 41280849Scytypedef void (*gni_sometime_callback) 42280849Scy (int, int, sockaddr_u *, int, const char *, 43280849Scy const char *, void *); 44280849Scyextern int getnameinfo_sometime(sockaddr_u *, size_t, size_t, int, 45280849Scy gni_sometime_callback, void *); 46280849Scy#endif /* WORKER */ 47280849Scy 48280849Scy/* intres_timeout_req() is provided by the client, ntpd or sntp. */ 49280849Scyextern void intres_timeout_req(u_int); 50280849Scy 51280849Scy#endif /* NTP_INTRES_H */ 52