Back to index

glibc  2.9
nameser_compat.h
Go to the documentation of this file.
00001 /* Copyright (c) 1983, 1989
00002  *    The Regents of the University of California.  All rights reserved.
00003  *
00004  * Redistribution and use in source and binary forms, with or without
00005  * modification, are permitted provided that the following conditions
00006  * are met:
00007  * 1. Redistributions of source code must retain the above copyright
00008  *    notice, this list of conditions and the following disclaimer.
00009  * 2. Redistributions in binary form must reproduce the above copyright
00010  *    notice, this list of conditions and the following disclaimer in the
00011  *    documentation and/or other materials provided with the distribution.
00012  * 4. Neither the name of the University nor the names of its contributors
00013  *    may be used to endorse or promote products derived from this software
00014  *    without specific prior written permission.
00015  *
00016  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
00017  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00018  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00019  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
00020  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00021  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00022  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00023  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00024  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00025  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00026  * SUCH DAMAGE.
00027  */
00028 
00029 /*%
00030  *      from nameser.h      8.1 (Berkeley) 6/2/93
00031  *     $BINDId: nameser_compat.h,v 8.11 1999/01/02 08:00:58 vixie Exp $
00032  */
00033 
00034 #ifndef _ARPA_NAMESER_COMPAT_
00035 #define       _ARPA_NAMESER_COMPAT_
00036 
00037 #define       __BIND        19950621      /*%< (DEAD) interface version stamp. */
00038 
00039 #include <endian.h>
00040 
00041 /*%
00042  * Structure for query header.  The order of the fields is machine- and
00043  * compiler-dependent, depending on the byte/bit order and the layout
00044  * of bit fields.  We use bit fields only in int variables, as this
00045  * is all ANSI requires.  This requires a somewhat confusing rearrangement.
00046  */
00047 
00048 typedef struct {
00049        unsigned      id :16;              /*%< query identification number */
00050 #if BYTE_ORDER == BIG_ENDIAN
00051                      /* fields in third byte */
00052        unsigned      qr: 1;        /*%< response flag */
00053        unsigned      opcode: 4;    /*%< purpose of message */
00054        unsigned      aa: 1;        /*%< authoritive answer */
00055        unsigned      tc: 1;        /*%< truncated message */
00056        unsigned      rd: 1;        /*%< recursion desired */
00057                      /* fields in fourth byte */
00058        unsigned      ra: 1;        /*%< recursion available */
00059        unsigned      unused :1;    /*%< unused bits (MBZ as of 4.9.3a3) */
00060        unsigned      ad: 1;        /*%< authentic data from named */
00061        unsigned      cd: 1;        /*%< checking disabled by resolver */
00062        unsigned      rcode :4;     /*%< response code */
00063 #endif
00064 #if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
00065                      /* fields in third byte */
00066        unsigned      rd :1;        /*%< recursion desired */
00067        unsigned      tc :1;        /*%< truncated message */
00068        unsigned      aa :1;        /*%< authoritive answer */
00069        unsigned      opcode :4;    /*%< purpose of message */
00070        unsigned      qr :1;        /*%< response flag */
00071                      /* fields in fourth byte */
00072        unsigned      rcode :4;     /*%< response code */
00073        unsigned      cd: 1;        /*%< checking disabled by resolver */
00074        unsigned      ad: 1;        /*%< authentic data from named */
00075        unsigned      unused :1;    /*%< unused bits (MBZ as of 4.9.3a3) */
00076        unsigned      ra :1;        /*%< recursion available */
00077 #endif
00078                      /* remaining bytes */
00079        unsigned      qdcount :16;  /*%< number of question entries */
00080        unsigned      ancount :16;  /*%< number of answer entries */
00081        unsigned      nscount :16;  /*%< number of authority entries */
00082        unsigned      arcount :16;  /*%< number of resource entries */
00083 } HEADER;
00084 
00085 #define PACKETSZ     NS_PACKETSZ
00086 #define MAXDNAME     NS_MAXDNAME
00087 #define MAXCDNAME    NS_MAXCDNAME
00088 #define MAXLABEL     NS_MAXLABEL
00089 #define       HFIXEDSZ      NS_HFIXEDSZ
00090 #define QFIXEDSZ     NS_QFIXEDSZ
00091 #define RRFIXEDSZ    NS_RRFIXEDSZ
00092 #define       INT32SZ              NS_INT32SZ
00093 #define       INT16SZ              NS_INT16SZ
00094 #define INT8SZ              NS_INT8SZ
00095 #define       INADDRSZ      NS_INADDRSZ
00096 #define       IN6ADDRSZ     NS_IN6ADDRSZ
00097 #define       INDIR_MASK    NS_CMPRSFLGS
00098 #define NAMESERVER_PORT     NS_DEFAULTPORT
00099 
00100 #define S_ZONE              ns_s_zn
00101 #define S_PREREQ     ns_s_pr
00102 #define S_UPDATE     ns_s_ud
00103 #define S_ADDT              ns_s_ar
00104 
00105 #define QUERY        ns_o_query
00106 #define IQUERY              ns_o_iquery
00107 #define STATUS              ns_o_status
00108 #define       NS_NOTIFY_OP  ns_o_notify
00109 #define       NS_UPDATE_OP  ns_o_update
00110 
00111 #define NOERROR             ns_r_noerror
00112 #define FORMERR             ns_r_formerr
00113 #define SERVFAIL     ns_r_servfail
00114 #define NXDOMAIN     ns_r_nxdomain
00115 #define NOTIMP              ns_r_notimpl
00116 #define REFUSED             ns_r_refused
00117 #define YXDOMAIN     ns_r_yxdomain
00118 #define YXRRSET             ns_r_yxrrset
00119 #define NXRRSET             ns_r_nxrrset
00120 #define NOTAUTH             ns_r_notauth
00121 #define NOTZONE             ns_r_notzone
00122 /*#define BADSIG            ns_r_badsig*/
00123 /*#define BADKEY            ns_r_badkey*/
00124 /*#define BADTIME           ns_r_badtime*/
00125 
00126 
00127 #define DELETE              ns_uop_delete
00128 #define ADD          ns_uop_add
00129 
00130 #define T_A          ns_t_a
00131 #define T_NS         ns_t_ns
00132 #define T_MD         ns_t_md
00133 #define T_MF         ns_t_mf
00134 #define T_CNAME             ns_t_cname
00135 #define T_SOA        ns_t_soa
00136 #define T_MB         ns_t_mb
00137 #define T_MG         ns_t_mg
00138 #define T_MR         ns_t_mr
00139 #define T_NULL              ns_t_null
00140 #define T_WKS        ns_t_wks
00141 #define T_PTR        ns_t_ptr
00142 #define T_HINFO             ns_t_hinfo
00143 #define T_MINFO             ns_t_minfo
00144 #define T_MX         ns_t_mx
00145 #define T_TXT        ns_t_txt
00146 #define       T_RP          ns_t_rp
00147 #define T_AFSDB             ns_t_afsdb
00148 #define T_X25        ns_t_x25
00149 #define T_ISDN              ns_t_isdn
00150 #define T_RT         ns_t_rt
00151 #define T_NSAP              ns_t_nsap
00152 #define T_NSAP_PTR   ns_t_nsap_ptr
00153 #define       T_SIG         ns_t_sig
00154 #define       T_KEY         ns_t_key
00155 #define       T_PX          ns_t_px
00156 #define       T_GPOS        ns_t_gpos
00157 #define       T_AAAA        ns_t_aaaa
00158 #define       T_LOC         ns_t_loc
00159 #define       T_NXT         ns_t_nxt
00160 #define       T_EID         ns_t_eid
00161 #define       T_NIMLOC      ns_t_nimloc
00162 #define       T_SRV         ns_t_srv
00163 #define T_ATMA              ns_t_atma
00164 #define T_NAPTR             ns_t_naptr
00165 #define T_A6         ns_t_a6
00166 #define T_DNAME             ns_t_dname
00167 #define       T_TSIG        ns_t_tsig
00168 #define       T_IXFR        ns_t_ixfr
00169 #define T_AXFR              ns_t_axfr
00170 #define T_MAILB             ns_t_mailb
00171 #define T_MAILA             ns_t_maila
00172 #define T_ANY        ns_t_any
00173 
00174 #define C_IN         ns_c_in
00175 #define C_CHAOS             ns_c_chaos
00176 #define C_HS         ns_c_hs
00177 /* BIND_UPDATE */
00178 #define C_NONE              ns_c_none
00179 #define C_ANY        ns_c_any
00180 
00181 #define       GETSHORT             NS_GET16
00182 #define       GETLONG                     NS_GET32
00183 #define       PUTSHORT             NS_PUT16
00184 #define       PUTLONG                     NS_PUT32
00185 
00186 #endif /* _ARPA_NAMESER_COMPAT_ */
00187