| 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 |  | 
|---|