Home | History | Annotate | Line # | Download | only in include
      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