1570af302Sopenharmony_ci#ifndef _ARPA_NAMESER_H 2570af302Sopenharmony_ci#define _ARPA_NAMESER_H 3570af302Sopenharmony_ci 4570af302Sopenharmony_ci#ifdef __cplusplus 5570af302Sopenharmony_ciextern "C" { 6570af302Sopenharmony_ci#endif 7570af302Sopenharmony_ci 8570af302Sopenharmony_ci#include <stddef.h> 9570af302Sopenharmony_ci#include <stdint.h> 10570af302Sopenharmony_ci 11570af302Sopenharmony_ci#define __NAMESER 19991006 12570af302Sopenharmony_ci#define NS_PACKETSZ 512 13570af302Sopenharmony_ci#define NS_MAXDNAME 1025 14570af302Sopenharmony_ci#define NS_MAXMSG 65535 15570af302Sopenharmony_ci#define NS_MAXCDNAME 255 16570af302Sopenharmony_ci#define NS_MAXLABEL 63 17570af302Sopenharmony_ci#define NS_HFIXEDSZ 12 18570af302Sopenharmony_ci#define NS_QFIXEDSZ 4 19570af302Sopenharmony_ci#define NS_RRFIXEDSZ 10 20570af302Sopenharmony_ci#define NS_INT32SZ 4 21570af302Sopenharmony_ci#define NS_INT16SZ 2 22570af302Sopenharmony_ci#define NS_INT8SZ 1 23570af302Sopenharmony_ci#define NS_INADDRSZ 4 24570af302Sopenharmony_ci#define NS_IN6ADDRSZ 16 25570af302Sopenharmony_ci#define NS_CMPRSFLGS 0xc0 26570af302Sopenharmony_ci#define NS_DEFAULTPORT 53 27570af302Sopenharmony_ci 28570af302Sopenharmony_citypedef enum __ns_sect { 29570af302Sopenharmony_ci ns_s_qd = 0, 30570af302Sopenharmony_ci ns_s_zn = 0, 31570af302Sopenharmony_ci ns_s_an = 1, 32570af302Sopenharmony_ci ns_s_pr = 1, 33570af302Sopenharmony_ci ns_s_ns = 2, 34570af302Sopenharmony_ci ns_s_ud = 2, 35570af302Sopenharmony_ci ns_s_ar = 3, 36570af302Sopenharmony_ci ns_s_max = 4 37570af302Sopenharmony_ci} ns_sect; 38570af302Sopenharmony_ci 39570af302Sopenharmony_citypedef struct __ns_msg { 40570af302Sopenharmony_ci const unsigned char *_msg, *_eom; 41570af302Sopenharmony_ci uint16_t _id, _flags, _counts[ns_s_max]; 42570af302Sopenharmony_ci const unsigned char *_sections[ns_s_max]; 43570af302Sopenharmony_ci ns_sect _sect; 44570af302Sopenharmony_ci int _rrnum; 45570af302Sopenharmony_ci const unsigned char *_msg_ptr; 46570af302Sopenharmony_ci} ns_msg; 47570af302Sopenharmony_ci 48570af302Sopenharmony_cistruct _ns_flagdata { int mask, shift; }; 49570af302Sopenharmony_ciextern const struct _ns_flagdata _ns_flagdata[]; 50570af302Sopenharmony_ci 51570af302Sopenharmony_ci#define ns_msg_id(handle) ((handle)._id + 0) 52570af302Sopenharmony_ci#define ns_msg_base(handle) ((handle)._msg + 0) 53570af302Sopenharmony_ci#define ns_msg_end(handle) ((handle)._eom + 0) 54570af302Sopenharmony_ci#define ns_msg_size(handle) ((handle)._eom - (handle)._msg) 55570af302Sopenharmony_ci#define ns_msg_count(handle, section) ((handle)._counts[section] + 0) 56570af302Sopenharmony_ci#define ns_msg_getflag(handle, flag) \ 57570af302Sopenharmony_ci (((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift) 58570af302Sopenharmony_ci 59570af302Sopenharmony_citypedef struct __ns_rr { 60570af302Sopenharmony_ci char name[NS_MAXDNAME]; 61570af302Sopenharmony_ci uint16_t type; 62570af302Sopenharmony_ci uint16_t rr_class; 63570af302Sopenharmony_ci uint32_t ttl; 64570af302Sopenharmony_ci uint16_t rdlength; 65570af302Sopenharmony_ci const unsigned char *rdata; 66570af302Sopenharmony_ci} ns_rr; 67570af302Sopenharmony_ci 68570af302Sopenharmony_ci#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".") 69570af302Sopenharmony_ci#define ns_rr_type(rr) ((ns_type)((rr).type + 0)) 70570af302Sopenharmony_ci#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0)) 71570af302Sopenharmony_ci#define ns_rr_ttl(rr) ((rr).ttl + 0) 72570af302Sopenharmony_ci#define ns_rr_rdlen(rr) ((rr).rdlength + 0) 73570af302Sopenharmony_ci#define ns_rr_rdata(rr) ((rr).rdata + 0) 74570af302Sopenharmony_ci 75570af302Sopenharmony_citypedef enum __ns_flag { 76570af302Sopenharmony_ci ns_f_qr, 77570af302Sopenharmony_ci ns_f_opcode, 78570af302Sopenharmony_ci ns_f_aa, 79570af302Sopenharmony_ci ns_f_tc, 80570af302Sopenharmony_ci ns_f_rd, 81570af302Sopenharmony_ci ns_f_ra, 82570af302Sopenharmony_ci ns_f_z, 83570af302Sopenharmony_ci ns_f_ad, 84570af302Sopenharmony_ci ns_f_cd, 85570af302Sopenharmony_ci ns_f_rcode, 86570af302Sopenharmony_ci ns_f_max 87570af302Sopenharmony_ci} ns_flag; 88570af302Sopenharmony_ci 89570af302Sopenharmony_citypedef enum __ns_opcode { 90570af302Sopenharmony_ci ns_o_query = 0, 91570af302Sopenharmony_ci ns_o_iquery = 1, 92570af302Sopenharmony_ci ns_o_status = 2, 93570af302Sopenharmony_ci ns_o_notify = 4, 94570af302Sopenharmony_ci ns_o_update = 5, 95570af302Sopenharmony_ci ns_o_max = 6 96570af302Sopenharmony_ci} ns_opcode; 97570af302Sopenharmony_ci 98570af302Sopenharmony_citypedef enum __ns_rcode { 99570af302Sopenharmony_ci ns_r_noerror = 0, 100570af302Sopenharmony_ci ns_r_formerr = 1, 101570af302Sopenharmony_ci ns_r_servfail = 2, 102570af302Sopenharmony_ci ns_r_nxdomain = 3, 103570af302Sopenharmony_ci ns_r_notimpl = 4, 104570af302Sopenharmony_ci ns_r_refused = 5, 105570af302Sopenharmony_ci ns_r_yxdomain = 6, 106570af302Sopenharmony_ci ns_r_yxrrset = 7, 107570af302Sopenharmony_ci ns_r_nxrrset = 8, 108570af302Sopenharmony_ci ns_r_notauth = 9, 109570af302Sopenharmony_ci ns_r_notzone = 10, 110570af302Sopenharmony_ci ns_r_max = 11, 111570af302Sopenharmony_ci ns_r_badvers = 16, 112570af302Sopenharmony_ci ns_r_badsig = 16, 113570af302Sopenharmony_ci ns_r_badkey = 17, 114570af302Sopenharmony_ci ns_r_badtime = 18 115570af302Sopenharmony_ci} ns_rcode; 116570af302Sopenharmony_ci 117570af302Sopenharmony_citypedef enum __ns_update_operation { 118570af302Sopenharmony_ci ns_uop_delete = 0, 119570af302Sopenharmony_ci ns_uop_add = 1, 120570af302Sopenharmony_ci ns_uop_max = 2 121570af302Sopenharmony_ci} ns_update_operation; 122570af302Sopenharmony_ci 123570af302Sopenharmony_cistruct ns_tsig_key { 124570af302Sopenharmony_ci char name[NS_MAXDNAME], alg[NS_MAXDNAME]; 125570af302Sopenharmony_ci unsigned char *data; 126570af302Sopenharmony_ci int len; 127570af302Sopenharmony_ci}; 128570af302Sopenharmony_citypedef struct ns_tsig_key ns_tsig_key; 129570af302Sopenharmony_ci 130570af302Sopenharmony_cistruct ns_tcp_tsig_state { 131570af302Sopenharmony_ci int counter; 132570af302Sopenharmony_ci struct dst_key *key; 133570af302Sopenharmony_ci void *ctx; 134570af302Sopenharmony_ci unsigned char sig[NS_PACKETSZ]; 135570af302Sopenharmony_ci int siglen; 136570af302Sopenharmony_ci}; 137570af302Sopenharmony_citypedef struct ns_tcp_tsig_state ns_tcp_tsig_state; 138570af302Sopenharmony_ci 139570af302Sopenharmony_ci#define NS_TSIG_FUDGE 300 140570af302Sopenharmony_ci#define NS_TSIG_TCP_COUNT 100 141570af302Sopenharmony_ci#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT" 142570af302Sopenharmony_ci 143570af302Sopenharmony_ci#define NS_TSIG_ERROR_NO_TSIG -10 144570af302Sopenharmony_ci#define NS_TSIG_ERROR_NO_SPACE -11 145570af302Sopenharmony_ci#define NS_TSIG_ERROR_FORMERR -12 146570af302Sopenharmony_ci 147570af302Sopenharmony_citypedef enum __ns_type { 148570af302Sopenharmony_ci ns_t_invalid = 0, 149570af302Sopenharmony_ci ns_t_a = 1, 150570af302Sopenharmony_ci ns_t_ns = 2, 151570af302Sopenharmony_ci ns_t_md = 3, 152570af302Sopenharmony_ci ns_t_mf = 4, 153570af302Sopenharmony_ci ns_t_cname = 5, 154570af302Sopenharmony_ci ns_t_soa = 6, 155570af302Sopenharmony_ci ns_t_mb = 7, 156570af302Sopenharmony_ci ns_t_mg = 8, 157570af302Sopenharmony_ci ns_t_mr = 9, 158570af302Sopenharmony_ci ns_t_null = 10, 159570af302Sopenharmony_ci ns_t_wks = 11, 160570af302Sopenharmony_ci ns_t_ptr = 12, 161570af302Sopenharmony_ci ns_t_hinfo = 13, 162570af302Sopenharmony_ci ns_t_minfo = 14, 163570af302Sopenharmony_ci ns_t_mx = 15, 164570af302Sopenharmony_ci ns_t_txt = 16, 165570af302Sopenharmony_ci ns_t_rp = 17, 166570af302Sopenharmony_ci ns_t_afsdb = 18, 167570af302Sopenharmony_ci ns_t_x25 = 19, 168570af302Sopenharmony_ci ns_t_isdn = 20, 169570af302Sopenharmony_ci ns_t_rt = 21, 170570af302Sopenharmony_ci ns_t_nsap = 22, 171570af302Sopenharmony_ci ns_t_nsap_ptr = 23, 172570af302Sopenharmony_ci ns_t_sig = 24, 173570af302Sopenharmony_ci ns_t_key = 25, 174570af302Sopenharmony_ci ns_t_px = 26, 175570af302Sopenharmony_ci ns_t_gpos = 27, 176570af302Sopenharmony_ci ns_t_aaaa = 28, 177570af302Sopenharmony_ci ns_t_loc = 29, 178570af302Sopenharmony_ci ns_t_nxt = 30, 179570af302Sopenharmony_ci ns_t_eid = 31, 180570af302Sopenharmony_ci ns_t_nimloc = 32, 181570af302Sopenharmony_ci ns_t_srv = 33, 182570af302Sopenharmony_ci ns_t_atma = 34, 183570af302Sopenharmony_ci ns_t_naptr = 35, 184570af302Sopenharmony_ci ns_t_kx = 36, 185570af302Sopenharmony_ci ns_t_cert = 37, 186570af302Sopenharmony_ci ns_t_a6 = 38, 187570af302Sopenharmony_ci ns_t_dname = 39, 188570af302Sopenharmony_ci ns_t_sink = 40, 189570af302Sopenharmony_ci ns_t_opt = 41, 190570af302Sopenharmony_ci ns_t_apl = 42, 191570af302Sopenharmony_ci ns_t_tkey = 249, 192570af302Sopenharmony_ci ns_t_tsig = 250, 193570af302Sopenharmony_ci ns_t_ixfr = 251, 194570af302Sopenharmony_ci ns_t_axfr = 252, 195570af302Sopenharmony_ci ns_t_mailb = 253, 196570af302Sopenharmony_ci ns_t_maila = 254, 197570af302Sopenharmony_ci ns_t_any = 255, 198570af302Sopenharmony_ci ns_t_zxfr = 256, 199570af302Sopenharmony_ci ns_t_max = 65536 200570af302Sopenharmony_ci} ns_type; 201570af302Sopenharmony_ci 202570af302Sopenharmony_ci#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \ 203570af302Sopenharmony_ci (t) == ns_t_mailb || (t) == ns_t_maila) 204570af302Sopenharmony_ci#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt) 205570af302Sopenharmony_ci#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t)) 206570af302Sopenharmony_ci#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr) 207570af302Sopenharmony_ci#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \ 208570af302Sopenharmony_ci (t) == ns_t_zxfr) 209570af302Sopenharmony_ci 210570af302Sopenharmony_citypedef enum __ns_class { 211570af302Sopenharmony_ci ns_c_invalid = 0, 212570af302Sopenharmony_ci ns_c_in = 1, 213570af302Sopenharmony_ci ns_c_2 = 2, 214570af302Sopenharmony_ci ns_c_chaos = 3, 215570af302Sopenharmony_ci ns_c_hs = 4, 216570af302Sopenharmony_ci ns_c_none = 254, 217570af302Sopenharmony_ci ns_c_any = 255, 218570af302Sopenharmony_ci ns_c_max = 65536 219570af302Sopenharmony_ci} ns_class; 220570af302Sopenharmony_ci 221570af302Sopenharmony_citypedef enum __ns_key_types { 222570af302Sopenharmony_ci ns_kt_rsa = 1, 223570af302Sopenharmony_ci ns_kt_dh = 2, 224570af302Sopenharmony_ci ns_kt_dsa = 3, 225570af302Sopenharmony_ci ns_kt_private = 254 226570af302Sopenharmony_ci} ns_key_types; 227570af302Sopenharmony_ci 228570af302Sopenharmony_citypedef enum __ns_cert_types { 229570af302Sopenharmony_ci cert_t_pkix = 1, 230570af302Sopenharmony_ci cert_t_spki = 2, 231570af302Sopenharmony_ci cert_t_pgp = 3, 232570af302Sopenharmony_ci cert_t_url = 253, 233570af302Sopenharmony_ci cert_t_oid = 254 234570af302Sopenharmony_ci} ns_cert_types; 235570af302Sopenharmony_ci 236570af302Sopenharmony_ci#define NS_KEY_TYPEMASK 0xC000 237570af302Sopenharmony_ci#define NS_KEY_TYPE_AUTH_CONF 0x0000 238570af302Sopenharmony_ci#define NS_KEY_TYPE_CONF_ONLY 0x8000 239570af302Sopenharmony_ci#define NS_KEY_TYPE_AUTH_ONLY 0x4000 240570af302Sopenharmony_ci#define NS_KEY_TYPE_NO_KEY 0xC000 241570af302Sopenharmony_ci#define NS_KEY_NO_AUTH 0x8000 242570af302Sopenharmony_ci#define NS_KEY_NO_CONF 0x4000 243570af302Sopenharmony_ci#define NS_KEY_RESERVED2 0x2000 244570af302Sopenharmony_ci#define NS_KEY_EXTENDED_FLAGS 0x1000 245570af302Sopenharmony_ci#define NS_KEY_RESERVED4 0x0800 246570af302Sopenharmony_ci#define NS_KEY_RESERVED5 0x0400 247570af302Sopenharmony_ci#define NS_KEY_NAME_TYPE 0x0300 248570af302Sopenharmony_ci#define NS_KEY_NAME_USER 0x0000 249570af302Sopenharmony_ci#define NS_KEY_NAME_ENTITY 0x0200 250570af302Sopenharmony_ci#define NS_KEY_NAME_ZONE 0x0100 251570af302Sopenharmony_ci#define NS_KEY_NAME_RESERVED 0x0300 252570af302Sopenharmony_ci#define NS_KEY_RESERVED8 0x0080 253570af302Sopenharmony_ci#define NS_KEY_RESERVED9 0x0040 254570af302Sopenharmony_ci#define NS_KEY_RESERVED10 0x0020 255570af302Sopenharmony_ci#define NS_KEY_RESERVED11 0x0010 256570af302Sopenharmony_ci#define NS_KEY_SIGNATORYMASK 0x000F 257570af302Sopenharmony_ci#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \ 258570af302Sopenharmony_ci NS_KEY_RESERVED4 | \ 259570af302Sopenharmony_ci NS_KEY_RESERVED5 | \ 260570af302Sopenharmony_ci NS_KEY_RESERVED8 | \ 261570af302Sopenharmony_ci NS_KEY_RESERVED9 | \ 262570af302Sopenharmony_ci NS_KEY_RESERVED10 | \ 263570af302Sopenharmony_ci NS_KEY_RESERVED11 ) 264570af302Sopenharmony_ci#define NS_KEY_RESERVED_BITMASK2 0xFFFF 265570af302Sopenharmony_ci#define NS_ALG_MD5RSA 1 266570af302Sopenharmony_ci#define NS_ALG_DH 2 267570af302Sopenharmony_ci#define NS_ALG_DSA 3 268570af302Sopenharmony_ci#define NS_ALG_DSS NS_ALG_DSA 269570af302Sopenharmony_ci#define NS_ALG_EXPIRE_ONLY 253 270570af302Sopenharmony_ci#define NS_ALG_PRIVATE_OID 254 271570af302Sopenharmony_ci 272570af302Sopenharmony_ci#define NS_KEY_PROT_TLS 1 273570af302Sopenharmony_ci#define NS_KEY_PROT_EMAIL 2 274570af302Sopenharmony_ci#define NS_KEY_PROT_DNSSEC 3 275570af302Sopenharmony_ci#define NS_KEY_PROT_IPSEC 4 276570af302Sopenharmony_ci#define NS_KEY_PROT_ANY 255 277570af302Sopenharmony_ci 278570af302Sopenharmony_ci#define NS_MD5RSA_MIN_BITS 512 279570af302Sopenharmony_ci#define NS_MD5RSA_MAX_BITS 4096 280570af302Sopenharmony_ci#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3) 281570af302Sopenharmony_ci#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4) 282570af302Sopenharmony_ci#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8) 283570af302Sopenharmony_ci#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8) 284570af302Sopenharmony_ci 285570af302Sopenharmony_ci#define NS_DSA_SIG_SIZE 41 286570af302Sopenharmony_ci#define NS_DSA_MIN_SIZE 213 287570af302Sopenharmony_ci#define NS_DSA_MAX_BYTES 405 288570af302Sopenharmony_ci 289570af302Sopenharmony_ci#define NS_SIG_TYPE 0 290570af302Sopenharmony_ci#define NS_SIG_ALG 2 291570af302Sopenharmony_ci#define NS_SIG_LABELS 3 292570af302Sopenharmony_ci#define NS_SIG_OTTL 4 293570af302Sopenharmony_ci#define NS_SIG_EXPIR 8 294570af302Sopenharmony_ci#define NS_SIG_SIGNED 12 295570af302Sopenharmony_ci#define NS_SIG_FOOT 16 296570af302Sopenharmony_ci#define NS_SIG_SIGNER 18 297570af302Sopenharmony_ci#define NS_NXT_BITS 8 298570af302Sopenharmony_ci#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS))) 299570af302Sopenharmony_ci#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS))) 300570af302Sopenharmony_ci#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS))) 301570af302Sopenharmony_ci#define NS_NXT_MAX 127 302570af302Sopenharmony_ci 303570af302Sopenharmony_ci#define NS_OPT_DNSSEC_OK 0x8000U 304570af302Sopenharmony_ci#define NS_OPT_NSID 3 305570af302Sopenharmony_ci 306570af302Sopenharmony_ci#define NS_GET16(s, cp) (void)((s) = ns_get16(((cp)+=2)-2)) 307570af302Sopenharmony_ci#define NS_GET32(l, cp) (void)((l) = ns_get32(((cp)+=4)-4)) 308570af302Sopenharmony_ci#define NS_PUT16(s, cp) ns_put16((s), ((cp)+=2)-2) 309570af302Sopenharmony_ci#define NS_PUT32(l, cp) ns_put32((l), ((cp)+=4)-4) 310570af302Sopenharmony_ci 311570af302Sopenharmony_ciunsigned ns_get16(const unsigned char *); 312570af302Sopenharmony_ciunsigned long ns_get32(const unsigned char *); 313570af302Sopenharmony_civoid ns_put16(unsigned, unsigned char *); 314570af302Sopenharmony_civoid ns_put32(unsigned long, unsigned char *); 315570af302Sopenharmony_ci 316570af302Sopenharmony_ciint ns_initparse(const unsigned char *, int, ns_msg *); 317570af302Sopenharmony_ciint ns_parserr(ns_msg *, ns_sect, int, ns_rr *); 318570af302Sopenharmony_ciint ns_skiprr(const unsigned char *, const unsigned char *, ns_sect, int); 319570af302Sopenharmony_ciint ns_name_uncompress(const unsigned char *, const unsigned char *, const unsigned char *, char *, size_t); 320570af302Sopenharmony_ci 321570af302Sopenharmony_ci 322570af302Sopenharmony_ci#define __BIND 19950621 323570af302Sopenharmony_ci 324570af302Sopenharmony_citypedef struct { 325570af302Sopenharmony_ci unsigned id :16; 326570af302Sopenharmony_ci#if __BYTE_ORDER == __BIG_ENDIAN 327570af302Sopenharmony_ci unsigned qr: 1; 328570af302Sopenharmony_ci unsigned opcode: 4; 329570af302Sopenharmony_ci unsigned aa: 1; 330570af302Sopenharmony_ci unsigned tc: 1; 331570af302Sopenharmony_ci unsigned rd: 1; 332570af302Sopenharmony_ci unsigned ra: 1; 333570af302Sopenharmony_ci unsigned unused :1; 334570af302Sopenharmony_ci unsigned ad: 1; 335570af302Sopenharmony_ci unsigned cd: 1; 336570af302Sopenharmony_ci unsigned rcode :4; 337570af302Sopenharmony_ci#else 338570af302Sopenharmony_ci unsigned rd :1; 339570af302Sopenharmony_ci unsigned tc :1; 340570af302Sopenharmony_ci unsigned aa :1; 341570af302Sopenharmony_ci unsigned opcode :4; 342570af302Sopenharmony_ci unsigned qr :1; 343570af302Sopenharmony_ci unsigned rcode :4; 344570af302Sopenharmony_ci unsigned cd: 1; 345570af302Sopenharmony_ci unsigned ad: 1; 346570af302Sopenharmony_ci unsigned unused :1; 347570af302Sopenharmony_ci unsigned ra :1; 348570af302Sopenharmony_ci#endif 349570af302Sopenharmony_ci unsigned qdcount :16; 350570af302Sopenharmony_ci unsigned ancount :16; 351570af302Sopenharmony_ci unsigned nscount :16; 352570af302Sopenharmony_ci unsigned arcount :16; 353570af302Sopenharmony_ci} HEADER; 354570af302Sopenharmony_ci 355570af302Sopenharmony_ci#define PACKETSZ NS_PACKETSZ 356570af302Sopenharmony_ci#define MAXDNAME NS_MAXDNAME 357570af302Sopenharmony_ci#define MAXCDNAME NS_MAXCDNAME 358570af302Sopenharmony_ci#define MAXLABEL NS_MAXLABEL 359570af302Sopenharmony_ci#define HFIXEDSZ NS_HFIXEDSZ 360570af302Sopenharmony_ci#define QFIXEDSZ NS_QFIXEDSZ 361570af302Sopenharmony_ci#define RRFIXEDSZ NS_RRFIXEDSZ 362570af302Sopenharmony_ci#define INT32SZ NS_INT32SZ 363570af302Sopenharmony_ci#define INT16SZ NS_INT16SZ 364570af302Sopenharmony_ci#define INT8SZ NS_INT8SZ 365570af302Sopenharmony_ci#define INADDRSZ NS_INADDRSZ 366570af302Sopenharmony_ci#define IN6ADDRSZ NS_IN6ADDRSZ 367570af302Sopenharmony_ci#define INDIR_MASK NS_CMPRSFLGS 368570af302Sopenharmony_ci#define NAMESERVER_PORT NS_DEFAULTPORT 369570af302Sopenharmony_ci 370570af302Sopenharmony_ci#define S_ZONE ns_s_zn 371570af302Sopenharmony_ci#define S_PREREQ ns_s_pr 372570af302Sopenharmony_ci#define S_UPDATE ns_s_ud 373570af302Sopenharmony_ci#define S_ADDT ns_s_ar 374570af302Sopenharmony_ci 375570af302Sopenharmony_ci#define QUERY ns_o_query 376570af302Sopenharmony_ci#define IQUERY ns_o_iquery 377570af302Sopenharmony_ci#define STATUS ns_o_status 378570af302Sopenharmony_ci#define NS_NOTIFY_OP ns_o_notify 379570af302Sopenharmony_ci#define NS_UPDATE_OP ns_o_update 380570af302Sopenharmony_ci 381570af302Sopenharmony_ci#define NOERROR ns_r_noerror 382570af302Sopenharmony_ci#define FORMERR ns_r_formerr 383570af302Sopenharmony_ci#define SERVFAIL ns_r_servfail 384570af302Sopenharmony_ci#define NXDOMAIN ns_r_nxdomain 385570af302Sopenharmony_ci#define NOTIMP ns_r_notimpl 386570af302Sopenharmony_ci#define REFUSED ns_r_refused 387570af302Sopenharmony_ci#define YXDOMAIN ns_r_yxdomain 388570af302Sopenharmony_ci#define YXRRSET ns_r_yxrrset 389570af302Sopenharmony_ci#define NXRRSET ns_r_nxrrset 390570af302Sopenharmony_ci#define NOTAUTH ns_r_notauth 391570af302Sopenharmony_ci#define NOTZONE ns_r_notzone 392570af302Sopenharmony_ci 393570af302Sopenharmony_ci#define DELETE ns_uop_delete 394570af302Sopenharmony_ci#define ADD ns_uop_add 395570af302Sopenharmony_ci 396570af302Sopenharmony_ci#define T_A ns_t_a 397570af302Sopenharmony_ci#define T_NS ns_t_ns 398570af302Sopenharmony_ci#define T_MD ns_t_md 399570af302Sopenharmony_ci#define T_MF ns_t_mf 400570af302Sopenharmony_ci#define T_CNAME ns_t_cname 401570af302Sopenharmony_ci#define T_SOA ns_t_soa 402570af302Sopenharmony_ci#define T_MB ns_t_mb 403570af302Sopenharmony_ci#define T_MG ns_t_mg 404570af302Sopenharmony_ci#define T_MR ns_t_mr 405570af302Sopenharmony_ci#define T_NULL ns_t_null 406570af302Sopenharmony_ci#define T_WKS ns_t_wks 407570af302Sopenharmony_ci#define T_PTR ns_t_ptr 408570af302Sopenharmony_ci#define T_HINFO ns_t_hinfo 409570af302Sopenharmony_ci#define T_MINFO ns_t_minfo 410570af302Sopenharmony_ci#define T_MX ns_t_mx 411570af302Sopenharmony_ci#define T_TXT ns_t_txt 412570af302Sopenharmony_ci#define T_RP ns_t_rp 413570af302Sopenharmony_ci#define T_AFSDB ns_t_afsdb 414570af302Sopenharmony_ci#define T_X25 ns_t_x25 415570af302Sopenharmony_ci#define T_ISDN ns_t_isdn 416570af302Sopenharmony_ci#define T_RT ns_t_rt 417570af302Sopenharmony_ci#define T_NSAP ns_t_nsap 418570af302Sopenharmony_ci#define T_NSAP_PTR ns_t_nsap_ptr 419570af302Sopenharmony_ci#define T_SIG ns_t_sig 420570af302Sopenharmony_ci#define T_KEY ns_t_key 421570af302Sopenharmony_ci#define T_PX ns_t_px 422570af302Sopenharmony_ci#define T_GPOS ns_t_gpos 423570af302Sopenharmony_ci#define T_AAAA ns_t_aaaa 424570af302Sopenharmony_ci#define T_LOC ns_t_loc 425570af302Sopenharmony_ci#define T_NXT ns_t_nxt 426570af302Sopenharmony_ci#define T_EID ns_t_eid 427570af302Sopenharmony_ci#define T_NIMLOC ns_t_nimloc 428570af302Sopenharmony_ci#define T_SRV ns_t_srv 429570af302Sopenharmony_ci#define T_ATMA ns_t_atma 430570af302Sopenharmony_ci#define T_NAPTR ns_t_naptr 431570af302Sopenharmony_ci#define T_A6 ns_t_a6 432570af302Sopenharmony_ci#define T_DNAME ns_t_dname 433570af302Sopenharmony_ci#define T_TSIG ns_t_tsig 434570af302Sopenharmony_ci#define T_IXFR ns_t_ixfr 435570af302Sopenharmony_ci#define T_AXFR ns_t_axfr 436570af302Sopenharmony_ci#define T_MAILB ns_t_mailb 437570af302Sopenharmony_ci#define T_MAILA ns_t_maila 438570af302Sopenharmony_ci#define T_ANY ns_t_any 439570af302Sopenharmony_ci 440570af302Sopenharmony_ci#define C_IN ns_c_in 441570af302Sopenharmony_ci#define C_CHAOS ns_c_chaos 442570af302Sopenharmony_ci#define C_HS ns_c_hs 443570af302Sopenharmony_ci#define C_NONE ns_c_none 444570af302Sopenharmony_ci#define C_ANY ns_c_any 445570af302Sopenharmony_ci 446570af302Sopenharmony_ci#define GETSHORT NS_GET16 447570af302Sopenharmony_ci#define GETLONG NS_GET32 448570af302Sopenharmony_ci#define PUTSHORT NS_PUT16 449570af302Sopenharmony_ci#define PUTLONG NS_PUT32 450570af302Sopenharmony_ci 451570af302Sopenharmony_ci#ifdef __cplusplus 452570af302Sopenharmony_ci} 453570af302Sopenharmony_ci#endif 454570af302Sopenharmony_ci 455570af302Sopenharmony_ci#endif 456