6a10c08a32c0da59ca8354273c25b265b6daa7e1
[ircu2.10.12-pk.git] / include / res.h
1 /*
2  * irc2.7.2/ircd/res.h (C)opyright 1992 Darren Reed.
3  *
4  * $Id$
5  */
6 #ifndef INCLUDED_res_h
7 #define INCLUDED_res_h
8
9 #ifndef INCLUDED_sys_types_h
10 #include <sys/types.h>       /* time_t */
11 #define INCLUDED_sys_types_h
12 #endif
13
14 struct Client;
15 struct hostent;
16
17 struct DNSQuery {
18   void* vptr;               /* pointer used by callback to identify request */
19   void (*callback)(void* vptr, struct hostent* he); /* callback to call */
20 };
21
22 extern int ResolverFileDescriptor;  /* GLOBAL - file descriptor (s_bsd.c) */
23
24 extern void get_res(void);
25 extern void gethost_byname(const char* name, const struct DNSQuery* req);
26 extern void gethost_byaddr(const char* name, const struct DNSQuery* req);
27 extern int             init_resolver(void);
28 extern void            restart_resolver(void);
29 extern time_t          timeout_resolver(time_t now);
30
31 /*
32  * delete_resolver_queries - delete all outstanding queries for the
33  * pointer arg, DO NOT call this from a resolver callback function the
34  * resolver will delete the query itself for the affected client.
35  */
36 extern void     delete_resolver_queries(const void* vptr);
37 extern size_t   cres_mem(struct Client* cptr);
38 extern int      m_dns(struct Client* cptr, struct Client* sptr,
39                              int parc, char* parv[]);
40 extern int      resolver_read(void);
41 extern void     resolver_read_multiple(int count);
42 extern void     flush_resolver_cache(void);
43
44 #endif /* INCLUDED_res_h */
45