add acct syscall source file, omitted in last syscalls commit
[musl] / include / resolv.h
1 #ifndef _RESOLV_H
2 #define _RESOLV_H
3
4 #include <stdint.h>
5 #include <arpa/nameser.h>
6 #include <netinet/in.h>
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 #define MAXNS                   3
13 #define MAXDFLSRCH              3
14 #define MAXDNSRCH               6
15 #define LOCALDOMAINPARTS        2
16
17 #define RES_TIMEOUT             5
18 #define MAXRESOLVSORT           10
19 #define RES_MAXNDOTS            15
20 #define RES_MAXRETRANS          30
21 #define RES_MAXRETRY            5
22 #define RES_DFLRETRY            2
23 #define RES_MAXTIME             65535
24
25 /* unused; purely for broken apps */
26 typedef struct __res_state {
27         int retrans;
28         int retry;
29         unsigned long options;
30         int nscount;
31         struct sockaddr_in nsaddr_list[MAXNS];
32 # define nsaddr nsaddr_list[0]
33         unsigned short id;
34         char *dnsrch[MAXDNSRCH+1];
35         char defdname[256];
36         unsigned long pfcode;
37         unsigned ndots:4;
38         unsigned nsort:4;
39         unsigned ipv6_unavail:1;
40         unsigned unused:23;
41         struct {
42                 struct in_addr addr;
43                 uint32_t mask;
44         } sort_list[MAXRESOLVSORT];
45         void *qhook;
46         void *rhook;
47         int res_h_errno;
48         int _vcsock;
49         unsigned _flags;
50         union {
51                 char pad[52];
52                 struct {
53                         uint16_t                nscount;
54                         uint16_t                nsmap[MAXNS];
55                         int                     nssocks[MAXNS];
56                         uint16_t                nscount6;
57                         uint16_t                nsinit;
58                         struct sockaddr_in6     *nsaddrs[MAXNS];
59                         unsigned int            _initstamp[2];
60                 } _ext;
61         } _u;
62 } *res_state;
63
64 #define __RES   19991006
65
66 #ifndef _PATH_RESCONF
67 #define _PATH_RESCONF        "/etc/resolv.conf"
68 #endif
69
70 struct res_sym {
71         int number;
72         char *name;
73         char *humanname;
74 };
75
76 #define RES_F_VC        0x00000001
77 #define RES_F_CONN      0x00000002
78 #define RES_F_EDNS0ERR  0x00000004
79
80 #define RES_EXHAUSTIVE  0x00000001
81
82 #define RES_INIT        0x00000001
83 #define RES_DEBUG       0x00000002
84 #define RES_AAONLY      0x00000004
85 #define RES_USEVC       0x00000008
86 #define RES_PRIMARY     0x00000010
87 #define RES_IGNTC       0x00000020
88 #define RES_RECURSE     0x00000040
89 #define RES_DEFNAMES    0x00000080
90 #define RES_STAYOPEN    0x00000100
91 #define RES_DNSRCH      0x00000200
92 #define RES_INSECURE1   0x00000400
93 #define RES_INSECURE2   0x00000800
94 #define RES_NOALIASES   0x00001000
95 #define RES_USE_INET6   0x00002000
96 #define RES_ROTATE      0x00004000
97 #define RES_NOCHECKNAME 0x00008000
98 #define RES_KEEPTSIG    0x00010000
99 #define RES_BLAST       0x00020000
100 #define RES_USEBSTRING  0x00040000
101 #define RES_NOIP6DOTINT 0x00080000
102 #define RES_USE_EDNS0   0x00100000
103 #define RES_SNGLKUP     0x00200000
104 #define RES_SNGLKUPREOP 0x00400000
105 #define RES_USE_DNSSEC  0x00800000
106
107 #define RES_DEFAULT     (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH|RES_NOIP6DOTINT)
108
109 #define RES_PRF_STATS   0x00000001
110 #define RES_PRF_UPDATE  0x00000002
111 #define RES_PRF_CLASS   0x00000004
112 #define RES_PRF_CMD     0x00000008
113 #define RES_PRF_QUES    0x00000010
114 #define RES_PRF_ANS     0x00000020
115 #define RES_PRF_AUTH    0x00000040
116 #define RES_PRF_ADD     0x00000080
117 #define RES_PRF_HEAD1   0x00000100
118 #define RES_PRF_HEAD2   0x00000200
119 #define RES_PRF_TTLID   0x00000400
120 #define RES_PRF_HEADX   0x00000800
121 #define RES_PRF_QUERY   0x00001000
122 #define RES_PRF_REPLY   0x00002000
123 #define RES_PRF_INIT    0x00004000
124
125 struct __res_state *__res_state(void);
126 #define _res (*__res_state())
127
128 struct rrec;
129
130 int res_init(void);
131 int res_query(const char *, int, int, unsigned char *, int);
132 int res_querydomain(const char *, const char *, int, int, unsigned char *, int);
133 int res_search(const char *, int, int, unsigned char *, int);
134 int res_mkquery(int, const char *, int, int, char *, int, struct rrec *, char *, int);
135 int res_send(const char *, int, char *, int);
136 int dn_comp(unsigned char *, unsigned char *, int, unsigned char **, unsigned char *, unsigned char **);
137 int dn_expand(unsigned char *, unsigned char *, unsigned char *, unsigned char *, int);
138
139 #ifdef __cplusplus
140 }
141 #endif
142
143 #endif