ISC DHCP
4.4.3-P1
A reference DHCPv4 and DHCPv6 implementation
Loading...
Searching...
No Matches
nameser_compat.h
Go to the documentation of this file.
1
/* Copyright (c) 1983, 1989
2
* The Regents of the University of California. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
6
* are met:
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
* 3. 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.
15
*
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
26
* SUCH DAMAGE.
27
*/
28
29
/*
30
* from nameser.h 8.1 (Berkeley) 6/2/93
31
* $Id: nameser_compat.h,v 1.2 2000/01/27 23:28:08 mellon Exp $
32
*/
33
34
#ifndef _ARPA_NAMESER_COMPAT_
35
#define _ARPA_NAMESER_COMPAT_
36
37
/*
38
* Structure for query header. The order of the fields is machine- and
39
* compiler-dependent, depending on the byte/bit order and the layout
40
* of bit fields. We use bit fields only in int variables, as this
41
* is all ANSI requires. This requires a somewhat confusing rearrangement.
42
*/
43
44
typedef
struct
{
45
unsigned
id
:16;
/* query identification number */
46
#if BYTE_ORDER == BIG_ENDIAN
47
/* fields in third byte */
48
unsigned
qr
: 1;
/* response flag */
49
unsigned
opcode
: 4;
/* purpose of message */
50
unsigned
aa
: 1;
/* authoritive answer */
51
unsigned
tc
: 1;
/* truncated message */
52
unsigned
rd
: 1;
/* recursion desired */
53
/* fields in fourth byte */
54
unsigned
ra
: 1;
/* recursion available */
55
unsigned
unused
:1;
/* unused bits (MBZ as of 4.9.3a3) */
56
unsigned
ad
: 1;
/* authentic data from named */
57
unsigned
cd
: 1;
/* checking disabled by resolver */
58
unsigned
rcode
:4;
/* response code */
59
#endif
60
#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
61
/* fields in third byte */
62
unsigned
rd
:1;
/* recursion desired */
63
unsigned
tc
:1;
/* truncated message */
64
unsigned
aa
:1;
/* authoritive answer */
65
unsigned
opcode
:4;
/* purpose of message */
66
unsigned
qr
:1;
/* response flag */
67
/* fields in fourth byte */
68
unsigned
rcode
:4;
/* response code */
69
unsigned
cd
: 1;
/* checking disabled by resolver */
70
unsigned
ad
: 1;
/* authentic data from named */
71
unsigned
unused
:1;
/* unused bits (MBZ as of 4.9.3a3) */
72
unsigned
ra
:1;
/* recursion available */
73
#endif
74
/* remaining bytes */
75
unsigned
qdcount
:16;
/* number of question entries */
76
unsigned
ancount
:16;
/* number of answer entries */
77
unsigned
nscount
:16;
/* number of authority entries */
78
unsigned
arcount
:16;
/* number of resource entries */
79
}
HEADER
;
80
81
#define PACKETSZ NS_PACKETSZ
82
#define MAXDNAME NS_MAXDNAME
83
#define MAXCDNAME NS_MAXCDNAME
84
#define MAXLABEL NS_MAXLABEL
85
#define HFIXEDSZ NS_HFIXEDSZ
86
#define QFIXEDSZ NS_QFIXEDSZ
87
#define RRFIXEDSZ NS_RRFIXEDSZ
88
#define INT32SZ NS_INT32SZ
89
#define INT16SZ NS_INT16SZ
90
#define INADDRSZ NS_INADDRSZ
91
#define IN6ADDRSZ NS_IN6ADDRSZ
92
#define INDIR_MASK NS_CMPRSFLGS
93
#define NAMESERVER_PORT NS_DEFAULTPORT
94
95
#define S_ZONE ns_s_zn
96
#define S_PREREQ ns_s_pr
97
#define S_UPDATE ns_s_ud
98
#define S_ADDT ns_s_ar
99
100
#define QUERY ns_o_query
101
#define IQUERY ns_o_iquery
102
#define STATUS ns_o_status
103
#define NS_NOTIFY_OP ns_o_notify
104
#define NS_UPDATE_OP ns_o_update
105
106
#define NOERROR ns_r_noerror
107
#define FORMERR ns_r_formerr
108
#define SERVFAIL ns_r_servfail
109
#define NXDOMAIN ns_r_nxdomain
110
#define NOTIMP ns_r_notimpl
111
#define REFUSED ns_r_refused
112
#define YXDOMAIN ns_r_yxdomain
113
#define YXRRSET ns_r_yxrrset
114
#define NXRRSET ns_r_nxrrset
115
#define NOTAUTH ns_r_notauth
116
#define NOTZONE ns_r_notzone
117
/*#define BADSIG ns_r_badsig*/
118
/*#define BADKEY ns_r_badkey*/
119
/*#define BADTIME ns_r_badtime*/
120
121
122
#define DELETE ns_uop_delete
123
#define ADD ns_uop_add
124
125
#define T_A ns_t_a
126
#define T_NS ns_t_ns
127
#define T_MD ns_t_md
128
#define T_MF ns_t_mf
129
#define T_CNAME ns_t_cname
130
#define T_SOA ns_t_soa
131
#define T_MB ns_t_mb
132
#define T_MG ns_t_mg
133
#define T_MR ns_t_mr
134
#define T_NULL ns_t_null
135
#define T_WKS ns_t_wks
136
#define T_PTR ns_t_ptr
137
#define T_HINFO ns_t_hinfo
138
#define T_MINFO ns_t_minfo
139
#define T_MX ns_t_mx
140
#define T_TXT ns_t_txt
141
#define T_RP ns_t_rp
142
#define T_AFSDB ns_t_afsdb
143
#define T_X25 ns_t_x25
144
#define T_ISDN ns_t_isdn
145
#define T_RT ns_t_rt
146
#define T_NSAP ns_t_nsap
147
#define T_NSAP_PTR ns_t_nsap_ptr
148
#define T_SIG ns_t_sig
149
#define T_KEY ns_t_key
150
#define T_PX ns_t_px
151
#define T_GPOS ns_t_gpos
152
#define T_AAAA ns_t_aaaa
153
#define T_LOC ns_t_loc
154
#define T_NXT ns_t_nxt
155
#define T_EID ns_t_eid
156
#define T_NIMLOC ns_t_nimloc
157
#define T_SRV ns_t_srv
158
#define T_ATMA ns_t_atma
159
#define T_NAPTR ns_t_naptr
160
#define T_TSIG ns_t_tsig
161
#define T_IXFR ns_t_ixfr
162
#define T_AXFR ns_t_axfr
163
#define T_MAILB ns_t_mailb
164
#define T_MAILA ns_t_maila
165
#define T_ANY ns_t_any
166
167
#define C_IN ns_c_in
168
#define C_CHAOS ns_c_chaos
169
#define C_HS ns_c_hs
170
/* BIND_UPDATE */
171
#define C_NONE ns_c_none
172
#define C_ANY ns_c_any
173
174
#define GETSHORT NS_GET16
175
#define GETLONG NS_GET32
176
#define PUTSHORT NS_PUT16
177
#define PUTLONG NS_PUT32
178
179
#endif
/* _ARPA_NAMESER_COMPAT_ */
HEADER
Definition
nameser_compat.h:44
HEADER::rd
unsigned rd
Definition
nameser_compat.h:52
HEADER::nscount
unsigned nscount
Definition
nameser_compat.h:77
HEADER::qdcount
unsigned qdcount
Definition
nameser_compat.h:75
HEADER::ad
unsigned ad
Definition
nameser_compat.h:56
HEADER::unused
unsigned unused
Definition
nameser_compat.h:55
HEADER::opcode
unsigned opcode
Definition
nameser_compat.h:49
HEADER::rcode
unsigned rcode
Definition
nameser_compat.h:58
HEADER::arcount
unsigned arcount
Definition
nameser_compat.h:78
HEADER::ancount
unsigned ancount
Definition
nameser_compat.h:76
HEADER::tc
unsigned tc
Definition
nameser_compat.h:51
HEADER::ra
unsigned ra
Definition
nameser_compat.h:54
HEADER::aa
unsigned aa
Definition
nameser_compat.h:50
HEADER::qr
unsigned qr
Definition
nameser_compat.h:48
HEADER::id
unsigned id
Definition
nameser_compat.h:45
HEADER::cd
unsigned cd
Definition
nameser_compat.h:57
includes
arpa
nameser_compat.h
Generated on Sun Mar 2 2025 00:00:00 for ISC DHCP by
1.13.2