xref: /netbsd-src/external/bsd/ntp/dist/include/ntp_intres.h (revision 6a493d6bc668897c91594964a732d38505b70cbb)
1 /*	$NetBSD: ntp_intres.h,v 1.1.1.2 2013/12/27 23:30:45 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 /*
15  * you call getaddrinfo_sometime(name, service, &hints, retry, callback_func, context);
16  * later (*callback_func)(rescode, gai_errno, context, name, service, hints, ai_result) is called.
17  */
18 typedef void	(*gai_sometime_callback)
19 		    (int, int, void *, const char *, const char *,
20 		     const struct addrinfo *, const struct addrinfo *);
21 extern int	getaddrinfo_sometime(const char *, const char *,
22 				     const struct addrinfo *, int,
23 				     gai_sometime_callback, void *);
24 /*
25  * In gai_sometime_callback routines, the resulting addrinfo list is
26  * only available until the callback returns.  To hold on to the list
27  * of addresses after the callback returns, use copy_addrinfo_list():
28  *
29  * struct addrinfo *copy_addrinfo_list(const struct addrinfo *);
30  */
31 
32 
33 /*
34  * you call getnameinfo_sometime(sockaddr, namelen, servlen, flags, callback_func, context);
35  * later (*callback_func)(rescode, gni_errno, sockaddr, flags, name, service, context) is called.
36  */
37 typedef void	(*gni_sometime_callback)
38 		    (int, int, sockaddr_u *, int, const char *,
39 		     const char *, void *);
40 extern int getnameinfo_sometime(sockaddr_u *, size_t, size_t, int,
41 				gni_sometime_callback, void *);
42 #endif	/* WORKER */
43 
44 /* intres_timeout_req() is provided by the client, ntpd or sntp. */
45 extern void intres_timeout_req(u_int);
46 
47 #endif	/* NTP_INTRES_H */
48