diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:28:35 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:28:35 -0800 |
commit | 1dc9e472e19acfe6dc7f41e429236e7eef7ceda1 (patch) | |
tree | 3be0c520fae17689bbf5584e1136fb820caef26f /libc/private/resolv_static.h | |
parent | 1767f908af327fa388b1c66883760ad851267013 (diff) | |
download | bionic-1dc9e472e19acfe6dc7f41e429236e7eef7ceda1.zip bionic-1dc9e472e19acfe6dc7f41e429236e7eef7ceda1.tar.gz bionic-1dc9e472e19acfe6dc7f41e429236e7eef7ceda1.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'libc/private/resolv_static.h')
-rw-r--r-- | libc/private/resolv_static.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libc/private/resolv_static.h b/libc/private/resolv_static.h new file mode 100644 index 0000000..8f2a095 --- /dev/null +++ b/libc/private/resolv_static.h @@ -0,0 +1,32 @@ +#ifndef _RESOLV_STATIC_H +#define _RESOLV_STATIC_H + +#include <netdb.h> + +/* this structure contains all the variables that were declared + * 'static' in the original NetBSD resolver code. + * + * this caused vast amounts of crashes and memory corruptions + * when the resolver was being used by multiple threads. + * + * (note: the OpenBSD/FreeBSD resolver has similar 'issues') + */ + +#define MAXALIASES 35 +#define MAXADDRS 35 + +typedef struct res_static { + char* h_addr_ptrs[MAXADDRS + 1]; + char* host_aliases[MAXALIASES]; + char hostbuf[8*1024]; + u_int32_t host_addr[16 / sizeof(u_int32_t)]; /* IPv4 or IPv6 */ + FILE* hostf; + int stayopen; + const char* servent_ptr; + struct servent servent; + struct hostent host; +} *res_static; + +extern res_static __res_get_static(void); + +#endif /* _RESOLV_STATIC_H */ |