1 #ifndef __res_state_defined 2 #define __res_state_defined 1 3 4 #include <sys/types.h> 5 #include <netinet/in.h> 6 7 /* res_state: the global state used by the resolver stub. */ 8 #define MAXNS 3 /* max # name servers we'll track */ 9 #define MAXDFLSRCH 3 /* # default domain levels to try */ 10 #define MAXDNSRCH 6 /* max # domains in search path */ 11 #define MAXRESOLVSORT 10 /* number of net to sort on */ 12 13 struct __res_state { 14 int retrans; /* retransmition time interval */ 15 int retry; /* number of times to retransmit */ 16 unsigned long options; /* option flags - see below. */ 17 int nscount; /* number of name servers */ 18 struct sockaddr_in 19 nsaddr_list[MAXNS]; /* address of name server */ 20 unsigned short id; /* current message id */ 21 /* 2 byte hole here. */ 22 char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */ 23 char defdname[256]; /* default domain (deprecated) */ 24 unsigned long pfcode; /* RES_PRF_ flags - see below. */ 25 unsigned ndots:4; /* threshold for initial abs. query */ 26 unsigned nsort:4; /* number of elements in sort_list[] */ 27 unsigned ipv6_unavail:1; /* connecting to IPv6 server failed */ 28 unsigned unused:23; 29 struct { 30 struct in_addr addr; 31 uint32_t mask; 32 } sort_list[MAXRESOLVSORT]; 33 /* 4 byte hole here on 64-bit architectures. */ 34 void * __glibc_unused_qhook; 35 void * __glibc_unused_rhook; 36 int res_h_errno; /* last one set for this context */ 37 int _vcsock; /* PRIVATE: for res_send VC i/o */ 38 unsigned int _flags; /* PRIVATE: see below */ 39 /* 4 byte hole here on 64-bit architectures. */ 40 union { 41 char pad[52]; /* On an i386 this means 512b total. */ 42 struct { 43 uint16_t nscount; 44 uint16_t nsmap[MAXNS]; 45 int nssocks[MAXNS]; 46 uint16_t nscount6; 47 uint16_t nsinit; 48 struct sockaddr_in6 *nsaddrs[MAXNS]; 49 #ifdef _LIBC 50 unsigned long long int __glibc_extension_index 51 __attribute__((packed)); 52 #else 53 unsigned int __glibc_reserved[2]; 54 #endif 55 } _ext; 56 } _u; 57 }; 58 59 typedef struct __res_state *res_state; 60 61 #endif /* __res_state_defined */ 62