Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 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 1 2 3 4 5 6


nameser_compat.h
001: /* Copyright (c) 1983, 1989
002:  *    The Regents of the University of California.  All rights reserved.
003:  *
004:  * Redistribution and use in source and binary forms, with or without
005:  * modification, are permitted provided that the following conditions
006:  * are met:
007:  * 1. Redistributions of source code must retain the above copyright
008:  *    notice, this list of conditions and the following disclaimer.
009:  * 2. Redistributions in binary form must reproduce the above copyright
010:  *    notice, this list of conditions and the following disclaimer in the
011:  *    documentation and/or other materials provided with the distribution.
012:  * 4. Neither the name of the University nor the names of its contributors
013:  *    may be used to endorse or promote products derived from this software
014:  *    without specific prior written permission.
015:  *
016:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
017:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
018:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
019:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
020:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
021:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
022:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
023:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
024:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
025:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
026:  * SUCH DAMAGE.
027:  */
028: 
029: /*%
030:  *      from nameser.h  8.1 (Berkeley) 6/2/93
031:  *      $BINDId: nameser_compat.h,v 8.11 1999/01/02 08:00:58 vixie Exp $
032:  */
033: 
034: #ifndef _ARPA_NAMESER_COMPAT_
035: #define _ARPA_NAMESER_COMPAT_
036: 
037: #define __BIND          19950621        /*%< (DEAD) interface version stamp. */
038: 
039: #include <endian.h>
040: 
041: /*%
042:  * Structure for query header.  The order of the fields is machine- and
043:  * compiler-dependent, depending on the byte/bit order and the layout
044:  * of bit fields.  We use bit fields only in int variables, as this
045:  * is all ANSI requires.  This requires a somewhat confusing rearrangement.
046:  */
047: 
048: typedef struct {
049:         unsigned        id :16;         /*%< query identification number */
050: #if BYTE_ORDER == BIG_ENDIAN
051:                         /* fields in third byte */
052:         unsigned        qr: 1;          /*%< response flag */
053:         unsigned        opcode: 4;      /*%< purpose of message */
054:         unsigned        aa: 1;          /*%< authoritive answer */
055:         unsigned        tc: 1;          /*%< truncated message */
056:         unsigned        rd: 1;          /*%< recursion desired */
057:                         /* fields in fourth byte */
058:         unsigned        ra: 1;          /*%< recursion available */
059:         unsigned        unused :1;      /*%< unused bits (MBZ as of 4.9.3a3) */
060:         unsigned        ad: 1;          /*%< authentic data from named */
061:         unsigned        cd: 1;          /*%< checking disabled by resolver */
062:         unsigned        rcode :4;       /*%< response code */
063: #endif
064: #if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
065:                         /* fields in third byte */
066:         unsigned        rd :1;          /*%< recursion desired */
067:         unsigned        tc :1;          /*%< truncated message */
068:         unsigned        aa :1;          /*%< authoritive answer */
069:         unsigned        opcode :4;      /*%< purpose of message */
070:         unsigned        qr :1;          /*%< response flag */
071:                         /* fields in fourth byte */
072:         unsigned        rcode :4;       /*%< response code */
073:         unsigned        cd: 1;          /*%< checking disabled by resolver */
074:         unsigned        ad: 1;          /*%< authentic data from named */
075:         unsigned        unused :1;      /*%< unused bits (MBZ as of 4.9.3a3) */
076:         unsigned        ra :1;          /*%< recursion available */
077: #endif
078:                         /* remaining bytes */
079:         unsigned        qdcount :16;    /*%< number of question entries */
080:         unsigned        ancount :16;    /*%< number of answer entries */
081:         unsigned        nscount :16;    /*%< number of authority entries */
082:         unsigned        arcount :16;    /*%< number of resource entries */
083: } HEADER;
084: 
085: #define PACKETSZ        NS_PACKETSZ
086: #define MAXDNAME        NS_MAXDNAME
087: #define MAXCDNAME       NS_MAXCDNAME
088: #define MAXLABEL        NS_MAXLABEL
089: #define HFIXEDSZ        NS_HFIXEDSZ
090: #define QFIXEDSZ        NS_QFIXEDSZ
091: #define RRFIXEDSZ       NS_RRFIXEDSZ
092: #define INT32SZ         NS_INT32SZ
093: #define INT16SZ         NS_INT16SZ
094: #define INT8SZ          NS_INT8SZ
095: #define INADDRSZ        NS_INADDRSZ
096: #define IN6ADDRSZ       NS_IN6ADDRSZ
097: #define INDIR_MASK      NS_CMPRSFLGS
098: #define NAMESERVER_PORT NS_DEFAULTPORT
099: 
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
104: 
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
110: 
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*/
125: 
126: 
127: #define DELETE          ns_uop_delete
128: #define ADD             ns_uop_add
129: 
130: #define T_A             ns_t_a
131: #define T_NS            ns_t_ns
132: #define T_MD            ns_t_md
133: #define T_MF            ns_t_mf
134: #define T_CNAME         ns_t_cname
135: #define T_SOA           ns_t_soa
136: #define T_MB            ns_t_mb
137: #define T_MG            ns_t_mg
138: #define T_MR            ns_t_mr
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
144: #define T_MX            ns_t_mx
145: #define T_TXT           ns_t_txt
146: #define T_RP            ns_t_rp
147: #define T_AFSDB         ns_t_afsdb
148: #define T_X25           ns_t_x25
149: #define T_ISDN          ns_t_isdn
150: #define T_RT            ns_t_rt
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
155: #define T_PX            ns_t_px
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
165: #define T_A6            ns_t_a6
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
173: 
174: #define C_IN            ns_c_in
175: #define C_CHAOS         ns_c_chaos
176: #define C_HS            ns_c_hs
177: /* BIND_UPDATE */
178: #define C_NONE          ns_c_none
179: #define C_ANY           ns_c_any
180: 
181: #define GETSHORT                NS_GET16
182: #define GETLONG                 NS_GET32
183: #define PUTSHORT                NS_PUT16
184: #define PUTLONG                 NS_PUT32
185: 
186: #endif /* _ARPA_NAMESER_COMPAT_ */
187: /*! \file */
188: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/