cpp-d1064d
[cross.git] / i686-linux-gnu-4.7 / usr / include / x86_64-linux-gnu / bits / types / res_state.h
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 */