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