1
/* Copyright (c) 1983, 1989
2
* The Regents of the University of California. All rights reserved.
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
7
* 1. Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* 2. Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
* 4. Neither the name of the University nor the names of its contributors
13
* may be used to endorse or promote products derived from this software
14
* without specific prior written permission.
16
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
* from nameser.h 8.1 (Berkeley) 6/2/93
31
* $BINDId: nameser_compat.h,v 8.11 1999/01/02 08:00:58 vixie Exp $
34
#ifndef _ARPA_NAMESER_COMPAT_
35
#define _ARPA_NAMESER_COMPAT_
37
#define __BIND 19950621 /*%< (DEAD) interface version stamp. */
42
* Structure for query header. The order of the fields is machine- and
43
* compiler-dependent, depending on the byte/bit order and the layout
44
* of bit fields. We use bit fields only in int variables, as this
45
* is all ANSI requires. This requires a somewhat confusing rearrangement.
49
unsigned id :16; /*%< query identification number */
50
#if BYTE_ORDER == BIG_ENDIAN
51
/* fields in third byte */
52
unsigned qr: 1; /*%< response flag */
53
unsigned opcode: 4; /*%< purpose of message */
54
unsigned aa: 1; /*%< authoritive answer */
55
unsigned tc: 1; /*%< truncated message */
56
unsigned rd: 1; /*%< recursion desired */
57
/* fields in fourth byte */
58
unsigned ra: 1; /*%< recursion available */
59
unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */
60
unsigned ad: 1; /*%< authentic data from named */
61
unsigned cd: 1; /*%< checking disabled by resolver */
62
unsigned rcode :4; /*%< response code */
64
#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
65
/* fields in third byte */
66
unsigned rd :1; /*%< recursion desired */
67
unsigned tc :1; /*%< truncated message */
68
unsigned aa :1; /*%< authoritive answer */
69
unsigned opcode :4; /*%< purpose of message */
70
unsigned qr :1; /*%< response flag */
71
/* fields in fourth byte */
72
unsigned rcode :4; /*%< response code */
73
unsigned cd: 1; /*%< checking disabled by resolver */
74
unsigned ad: 1; /*%< authentic data from named */
75
unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */
76
unsigned ra :1; /*%< recursion available */
79
unsigned qdcount :16; /*%< number of question entries */
80
unsigned ancount :16; /*%< number of answer entries */
81
unsigned nscount :16; /*%< number of authority entries */
82
unsigned arcount :16; /*%< number of resource entries */
85
#define PACKETSZ NS_PACKETSZ
86
#define MAXDNAME NS_MAXDNAME
87
#define MAXCDNAME NS_MAXCDNAME
88
#define MAXLABEL NS_MAXLABEL
89
#define HFIXEDSZ NS_HFIXEDSZ
90
#define QFIXEDSZ NS_QFIXEDSZ
91
#define RRFIXEDSZ NS_RRFIXEDSZ
92
#define INT32SZ NS_INT32SZ
93
#define INT16SZ NS_INT16SZ
94
#define INT8SZ NS_INT8SZ
95
#define INADDRSZ NS_INADDRSZ
96
#define IN6ADDRSZ NS_IN6ADDRSZ
97
#define INDIR_MASK NS_CMPRSFLGS
98
#define NAMESERVER_PORT NS_DEFAULTPORT
100
#define S_ZONE ns_s_zn
101
#define S_PREREQ ns_s_pr
102
#define S_UPDATE ns_s_ud
103
#define S_ADDT ns_s_ar
105
#define QUERY ns_o_query
106
#define IQUERY ns_o_iquery
107
#define STATUS ns_o_status
108
#define NS_NOTIFY_OP ns_o_notify
109
#define NS_UPDATE_OP ns_o_update
111
#define NOERROR ns_r_noerror
112
#define FORMERR ns_r_formerr
113
#define SERVFAIL ns_r_servfail
114
#define NXDOMAIN ns_r_nxdomain
115
#define NOTIMP ns_r_notimpl
116
#define REFUSED ns_r_refused
117
#define YXDOMAIN ns_r_yxdomain
118
#define YXRRSET ns_r_yxrrset
119
#define NXRRSET ns_r_nxrrset
120
#define NOTAUTH ns_r_notauth
121
#define NOTZONE ns_r_notzone
122
/*#define BADSIG ns_r_badsig*/
123
/*#define BADKEY ns_r_badkey*/
124
/*#define BADTIME ns_r_badtime*/
127
#define DELETE ns_uop_delete
128
#define ADD ns_uop_add
134
#define T_CNAME ns_t_cname
135
#define T_SOA ns_t_soa
139
#define T_NULL ns_t_null
140
#define T_WKS ns_t_wks
141
#define T_PTR ns_t_ptr
142
#define T_HINFO ns_t_hinfo
143
#define T_MINFO ns_t_minfo
145
#define T_TXT ns_t_txt
147
#define T_AFSDB ns_t_afsdb
148
#define T_X25 ns_t_x25
149
#define T_ISDN ns_t_isdn
151
#define T_NSAP ns_t_nsap
152
#define T_NSAP_PTR ns_t_nsap_ptr
153
#define T_SIG ns_t_sig
154
#define T_KEY ns_t_key
156
#define T_GPOS ns_t_gpos
157
#define T_AAAA ns_t_aaaa
158
#define T_LOC ns_t_loc
159
#define T_NXT ns_t_nxt
160
#define T_EID ns_t_eid
161
#define T_NIMLOC ns_t_nimloc
162
#define T_SRV ns_t_srv
163
#define T_ATMA ns_t_atma
164
#define T_NAPTR ns_t_naptr
166
#define T_DNAME ns_t_dname
167
#define T_TSIG ns_t_tsig
168
#define T_IXFR ns_t_ixfr
169
#define T_AXFR ns_t_axfr
170
#define T_MAILB ns_t_mailb
171
#define T_MAILA ns_t_maila
172
#define T_ANY ns_t_any
175
#define C_CHAOS ns_c_chaos
178
#define C_NONE ns_c_none
179
#define C_ANY ns_c_any
181
#define GETSHORT NS_GET16
182
#define GETLONG NS_GET32
183
#define PUTSHORT NS_PUT16
184
#define PUTLONG NS_PUT32
186
#endif /* _ARPA_NAMESER_COMPAT_ */