1*8d67ca89SAndroid Build Coastguard Worker #pragma once 2*8d67ca89SAndroid Build Coastguard Worker 3*8d67ca89SAndroid Build Coastguard Worker #include <netdb.h> 4*8d67ca89SAndroid Build Coastguard Worker #include <sys/cdefs.h> 5*8d67ca89SAndroid Build Coastguard Worker 6*8d67ca89SAndroid Build Coastguard Worker /* this structure contains all the variables that were declared 7*8d67ca89SAndroid Build Coastguard Worker * 'static' in the original NetBSD resolver code. 8*8d67ca89SAndroid Build Coastguard Worker * 9*8d67ca89SAndroid Build Coastguard Worker * this caused vast amounts of crashes and memory corruptions 10*8d67ca89SAndroid Build Coastguard Worker * when the resolver was being used by multiple threads. 11*8d67ca89SAndroid Build Coastguard Worker * 12*8d67ca89SAndroid Build Coastguard Worker * (note: the OpenBSD/FreeBSD resolver has similar 'issues') 13*8d67ca89SAndroid Build Coastguard Worker */ 14*8d67ca89SAndroid Build Coastguard Worker 15*8d67ca89SAndroid Build Coastguard Worker #define MAXALIASES 35 16*8d67ca89SAndroid Build Coastguard Worker #define MAXADDRS 35 17*8d67ca89SAndroid Build Coastguard Worker 18*8d67ca89SAndroid Build Coastguard Worker __BEGIN_DECLS 19*8d67ca89SAndroid Build Coastguard Worker 20*8d67ca89SAndroid Build Coastguard Worker struct res_static { 21*8d67ca89SAndroid Build Coastguard Worker char* h_addr_ptrs[MAXADDRS + 1]; 22*8d67ca89SAndroid Build Coastguard Worker char* host_aliases[MAXALIASES]; 23*8d67ca89SAndroid Build Coastguard Worker char hostbuf[8 * 1024]; 24*8d67ca89SAndroid Build Coastguard Worker u_int32_t host_addr[16 / sizeof(u_int32_t)]; /* IPv4 or IPv6 */ 25*8d67ca89SAndroid Build Coastguard Worker FILE* hostf; 26*8d67ca89SAndroid Build Coastguard Worker int stayopen; 27*8d67ca89SAndroid Build Coastguard Worker const char* servent_ptr; 28*8d67ca89SAndroid Build Coastguard Worker struct servent servent; 29*8d67ca89SAndroid Build Coastguard Worker struct hostent host; 30*8d67ca89SAndroid Build Coastguard Worker }; 31*8d67ca89SAndroid Build Coastguard Worker 32*8d67ca89SAndroid Build Coastguard Worker struct res_static* __res_get_static(void); 33*8d67ca89SAndroid Build Coastguard Worker 34*8d67ca89SAndroid Build Coastguard Worker __END_DECLS 35