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