1 /* 2 * res.h for referencing functions in res.c, reslib.c 3 * 4 * Originally from Charybdis (before that, hybrid), but very little of the 5 * original remains, so... 6 */ 7 8 #ifndef __MOWGLI_DNS_RES_H__ 9 #define __MOWGLI_DNS_RES_H__ 10 11 /* Maximum number of nameservers we track */ 12 #define MOWGLI_DNS_MAXNS 10 13 14 typedef struct 15 { 16 mowgli_vio_sockaddr_t nsaddr_list[MOWGLI_DNS_MAXNS]; 17 int nscount; 18 19 int retrycnt; 20 21 int timeout_count[MOWGLI_DNS_MAXNS]; 22 23 mowgli_vio_t *vio; 24 mowgli_eventloop_t *eventloop; 25 mowgli_eventloop_timer_t *timeout_resolver_timer; 26 27 mowgli_list_t request_list; 28 29 mowgli_random_t *rand; 30 31 const char *resolvconf; 32 bool dns_init; 33 34 char domain[MOWGLI_DNS_RES_HOSTLEN]; 35 } mowgli_dns_evloop_t; 36 37 extern int mowgli_dns_evloop_init(mowgli_dns_t *dns, mowgli_eventloop_t *eventloop); 38 extern int mowgli_dns_evloop_restart(mowgli_dns_t *dns); 39 extern void mowgli_dns_evloop_destroy(mowgli_dns_t *dns); 40 extern void mowgli_dns_evloop_delete_queries(mowgli_dns_t *dns, const mowgli_dns_query_t *); 41 extern void mowgli_dns_evloop_gethost_byname(mowgli_dns_t *dns, const char *, mowgli_dns_query_t *, int); 42 extern void mowgli_dns_evloop_gethost_byaddr(mowgli_dns_t *dns, const struct sockaddr_storage *, mowgli_dns_query_t *); 43 44 extern void mowgli_dns_evloop_add_local_domain(mowgli_dns_t * dns, char *, size_t); 45 extern int mowgli_dns_evloop_set_resolvconf(mowgli_dns_t *dns, const char *respath); 46 47 extern const mowgli_dns_ops_t mowgli_dns_evloop_resolver; 48 49 #endif 50