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