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