mirror of https://github.com/IoTcat/vlmcsd.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
898 B
32 lines
898 B
#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 */
|
|
|