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
76 #define NS_MAXLABEL 63
77 #define NS_HFIXEDSZ 12
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)
236 #define NS_TSIG_FUDGE 300
237 #define NS_TSIG_TCP_COUNT 100
238 #define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"
240 #define NS_TSIG_ERROR_NO_TSIG -10
241 #define NS_TSIG_ERROR_NO_SPACE -11
242 #define NS_TSIG_ERROR_FORMERR -12
301 #define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \
302 (t) == ns_t_mailb || (t) == ns_t_maila)
304 #define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)
306 #define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))
307 #define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)
308 #define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \
344 #define NS_KEY_TYPEMASK 0xC000
345 #define NS_KEY_TYPE_AUTH_CONF 0x0000
346 #define NS_KEY_TYPE_CONF_ONLY 0x8000
347 #define NS_KEY_TYPE_AUTH_ONLY 0x4000
348 #define NS_KEY_TYPE_NO_KEY 0xC000
350 #define NS_KEY_NO_AUTH 0x8000
351 #define NS_KEY_NO_CONF 0x4000
352 #define NS_KEY_RESERVED2 0x2000
353 #define NS_KEY_EXTENDED_FLAGS 0x1000
354 #define NS_KEY_RESERVED4 0x0800
355 #define NS_KEY_RESERVED5 0x0400
356 #define NS_KEY_NAME_TYPE 0x0300
357 #define NS_KEY_NAME_USER 0x0000
358 #define NS_KEY_NAME_ENTITY 0x0200
359 #define NS_KEY_NAME_ZONE 0x0100
360 #define NS_KEY_NAME_RESERVED 0x0300
361 #define NS_KEY_RESERVED8 0x0080
362 #define NS_KEY_RESERVED9 0x0040
363 #define NS_KEY_RESERVED10 0x0020
364 #define NS_KEY_RESERVED11 0x0010
365 #define NS_KEY_SIGNATORYMASK 0x000F
366 #define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \
371 NS_KEY_RESERVED10 | \
373 #define NS_KEY_RESERVED_BITMASK2 0xFFFF
376 #define NS_ALG_MD5RSA 1
379 #define NS_ALG_DSS NS_ALG_DSA
380 #define NS_ALG_EXPIRE_ONLY 253
381 #define NS_ALG_PRIVATE_OID 254
385 #define NS_KEY_PROT_TLS 1
386 #define NS_KEY_PROT_EMAIL 2
387 #define NS_KEY_PROT_DNSSEC 3
388 #define NS_KEY_PROT_IPSEC 4
389 #define NS_KEY_PROT_ANY 255
392 #define NS_MD5RSA_MIN_BITS 512
393 #define NS_MD5RSA_MAX_BITS 2552
395 #define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)
397 #define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)
398 #define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)
399 #define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)
401 #define NS_DSA_SIG_SIZE 41
402 #define NS_DSA_MIN_SIZE 213
403 #define NS_DSA_MAX_BYTES 405
406 #define NS_SIG_TYPE 0
408 #define NS_SIG_LABELS 3
409 #define NS_SIG_OTTL 4
410 #define NS_SIG_EXPIR 8
411 #define NS_SIG_SIGNED 12
412 #define NS_SIG_FOOT 16
413 #define NS_SIG_SIGNER 18
416 #define NS_NXT_BITS 8
417 #define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))
418 #define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))
419 #define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))
420 #define NS_NXT_MAX 127
425 #define NS_GET16(s, cp) do { \
426 register u_int8_t *t_cp = (u_int8_t *)(cp); \
427 (s) = ((u_int16_t)t_cp[0] << 8) \
428 | ((u_int16_t)t_cp[1]) \
430 (cp) += NS_INT16SZ; \
433 #define NS_GET32(l, cp) do { \
434 register u_int8_t *t_cp = (u_int8_t *)(cp); \
435 (l) = ((u_int32_t)t_cp[0] << 24) \
436 | ((u_int32_t)t_cp[1] << 16) \
437 | ((u_int32_t)t_cp[2] << 8) \
438 | ((u_int32_t)t_cp[3]) \
440 (cp) += NS_INT32SZ; \
443 #define NS_PUT16(s, cp) do { \
444 register u_int16_t t_s = (u_int16_t)(s); \
445 register u_int8_t *t_cp = (u_int8_t *)(cp); \
446 *t_cp++ = t_s >> 8; \
448 (cp) += NS_INT16SZ; \
451 #define NS_PUT32(l, cp) do { \
452 register u_int32_t t_l = (u_int32_t)(l); \
453 register u_int8_t *t_cp = (u_int8_t *)(cp); \
454 *t_cp++ = t_l >> 24; \
455 *t_cp++ = t_l >> 16; \
456 *t_cp++ = t_l >> 8; \
458 (cp) += NS_INT32SZ; \
enum __ns_key_types ns_key_types
u_int16_t _counts[ns_s_max]
unsigned char sig[NS_PACKETSZ]
enum __ns_opcode ns_opcode
enum __ns_cert_types ns_cert_types
const u_int8_t * _sections[ns_s_max]
enum __ns_update_operation ns_update_operation