blob: 8f2a095c56644c6d6bf02b506876115984c9fb20 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001#ifndef _RESOLV_STATIC_H
2#define _RESOLV_STATIC_H
3
4#include <netdb.h>
5
6/* this structure contains all the variables that were declared
7 * 'static' in the original NetBSD resolver code.
8 *
9 * this caused vast amounts of crashes and memory corruptions
10 * when the resolver was being used by multiple threads.
11 *
12 * (note: the OpenBSD/FreeBSD resolver has similar 'issues')
13 */
14
15#define MAXALIASES 35
16#define MAXADDRS 35
17
18typedef struct res_static {
19 char* h_addr_ptrs[MAXADDRS + 1];
20 char* host_aliases[MAXALIASES];
21 char hostbuf[8*1024];
22 u_int32_t host_addr[16 / sizeof(u_int32_t)]; /* IPv4 or IPv6 */
23 FILE* hostf;
24 int stayopen;
25 const char* servent_ptr;
26 struct servent servent;
27 struct hostent host;
28} *res_static;
29
30extern res_static __res_get_static(void);
31
32#endif /* _RESOLV_STATIC_H */