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