57#ifndef _ARPA_NAMESER_H_
58#define _ARPA_NAMESER_H_
68#define __NAMESER 19991006
73#define NS_PACKETSZ 512
74#define NS_MAXDNAME 1025
75#define NS_MAXCDNAME 255
79#define NS_RRFIXEDSZ 10
84#define NS_IN6ADDRSZ 16
85#define NS_CMPRSFLGS 0xc0
86#define NS_DEFAULTPORT 53
122#define ns_msg_getflag(handle, flag) ( \
123 ((handle)._flags & _ns_flagdata[flag].mask) \
124 >> _ns_flagdata[flag].shift \
126#define ns_msg_id(handle) ((handle)._id + 0)
127#define ns_msg_base(handle) ((handle)._msg + 0)
128#define ns_msg_end(handle) ((handle)._eom + 0)
129#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)
130#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)
145#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")
146#define ns_rr_type(rr) ((ns_type)((rr).type + 0))
147#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))
148#define ns_rr_ttl(rr) ((rr).ttl + 0)
149#define ns_rr_rdlen(rr) ((rr).rdlength + 0)
150#define ns_rr_rdata(rr) ((rr).rdata + 0)
214#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
273#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
274 (t) == ns_t_mailb || (t) == ns_t_maila)
276#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
278#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
279#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
280#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
316#define NS_KEY_TYPEMASK 0xC000
317#define NS_KEY_TYPE_AUTH_CONF 0x0000
318#define NS_KEY_TYPE_CONF_ONLY 0x8000
319#define NS_KEY_TYPE_AUTH_ONLY 0x4000
320#define NS_KEY_TYPE_NO_KEY 0xC000
322#define NS_KEY_NO_AUTH 0x8000
323#define NS_KEY_NO_CONF 0x4000
324#define NS_KEY_RESERVED2 0x2000
325#define NS_KEY_EXTENDED_FLAGS 0x1000
326#define NS_KEY_RESERVED4 0x0800
327#define NS_KEY_RESERVED5 0x0400
328#define NS_KEY_NAME_TYPE 0x0300
329#define NS_KEY_NAME_USER 0x0000
330#define NS_KEY_NAME_ENTITY 0x0200
331#define NS_KEY_NAME_ZONE 0x0100
332#define NS_KEY_NAME_RESERVED 0x0300
333#define NS_KEY_RESERVED8 0x0080
334#define NS_KEY_RESERVED9 0x0040
335#define NS_KEY_RESERVED10 0x0020
336#define NS_KEY_RESERVED11 0x0010
337#define NS_KEY_SIGNATORYMASK 0x000F
338#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
343 NS_KEY_RESERVED10 | \
345#define NS_KEY_RESERVED_BITMASK2 0xFFFF
348#define NS_ALG_MD5RSA 1
351#define NS_ALG_DSS NS_ALG_DSA
352#define NS_ALG_EXPIRE_ONLY 253
353#define NS_ALG_PRIVATE_OID 254
357#define NS_KEY_PROT_TLS 1
358#define NS_KEY_PROT_EMAIL 2
359#define NS_KEY_PROT_DNSSEC 3
360#define NS_KEY_PROT_IPSEC 4
361#define NS_KEY_PROT_ANY 255
364#define NS_MD5RSA_MIN_BITS 512
365#define NS_MD5RSA_MAX_BITS 2552
367#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
369#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
370#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)
371#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)
373#define NS_DSA_SIG_SIZE 41
374#define NS_DSA_MIN_SIZE 213
375#define NS_DSA_MAX_BYTES 405
380#define NS_SIG_LABELS 3
382#define NS_SIG_EXPIR 8
383#define NS_SIG_SIGNED 12
384#define NS_SIG_FOOT 16
385#define NS_SIG_SIGNER 18
389#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))
390#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
391#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))
392#define NS_NXT_MAX 127
397#define NS_GET16(s, cp) do { \
398 register u_int8_t *t_cp = (u_int8_t *)(cp); \
399 (s) = ((u_int16_t)t_cp[0] << 8) \
400 | ((u_int16_t)t_cp[1]) \
402 (cp) += NS_INT16SZ; \
405#define NS_GET32(l, cp) do { \
406 register u_int8_t *t_cp = (u_int8_t *)(cp); \
407 (l) = ((u_int32_t)t_cp[0] << 24) \
408 | ((u_int32_t)t_cp[1] << 16) \
409 | ((u_int32_t)t_cp[2] << 8) \
410 | ((u_int32_t)t_cp[3]) \
412 (cp) += NS_INT32SZ; \
415#define NS_PUT16(s, cp) do { \
416 register u_int16_t t_s = (u_int16_t)(s); \
417 register u_int8_t *t_cp = (u_int8_t *)(cp); \
418 *t_cp++ = t_s >> 8; \
420 (cp) += NS_INT16SZ; \
423#define NS_PUT32(l, cp) do { \
424 register u_int32_t t_l = (u_int32_t)(l); \
425 register u_int8_t *t_cp = (u_int8_t *)(cp); \
426 *t_cp++ = t_l >> 24; \
427 *t_cp++ = t_l >> 16; \
428 *t_cp++ = t_l >> 8; \
430 (cp) += NS_INT32SZ; \
enum __ns_cert_types ns_cert_types
enum __ns_update_operation ns_update_operation
enum __ns_key_types ns_key_types
enum __ns_opcode ns_opcode
const u_int8_t * _sections[ns_s_max]
u_int16_t _counts[ns_s_max]