📄 nameser.h
字号:
u_char * r_data; /* rdata fields as text string */ u_int16_t r_size; /* size of r_data field */ int r_opcode; /* type of operation */ /* following fields for private use by the resolver/server routines */ struct ns_updrec *r_grpnext; /* next record when grouped */ struct databuf *r_dp; /* databuf to process */ struct databuf *r_deldp; /* databuf's deleted/overwritten */ u_int16_t r_zone; /* zone number on server */};typedef struct ns_updrec ns_updrec;/* * Currently defined type values for resources and queries. */typedef enum __ns_type { ns_t_a = 1, /* Host address. */ ns_t_ns = 2, /* Authoritative server. */ ns_t_md = 3, /* Mail destination. */ ns_t_mf = 4, /* Mail forwarder. */ ns_t_cname = 5, /* Canonical name. */ ns_t_soa = 6, /* Start of authority zone. */ ns_t_mb = 7, /* Mailbox domain name. */ ns_t_mg = 8, /* Mail group member. */ ns_t_mr = 9, /* Mail rename name. */ ns_t_null = 10, /* Null resource record. */ ns_t_wks = 11, /* Well known service. */ ns_t_ptr = 12, /* Domain name pointer. */ ns_t_hinfo = 13, /* Host information. */ ns_t_minfo = 14, /* Mailbox information. */ ns_t_mx = 15, /* Mail routing information. */ ns_t_txt = 16, /* Text strings. */ ns_t_rp = 17, /* Responsible person. */ ns_t_afsdb = 18, /* AFS cell database. */ ns_t_x25 = 19, /* X_25 calling address. */ ns_t_isdn = 20, /* ISDN calling address. */ ns_t_rt = 21, /* Router. */ ns_t_nsap = 22, /* NSAP address. */ ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */ ns_t_sig = 24, /* Security signature. */ ns_t_key = 25, /* Security key. */ ns_t_px = 26, /* X.400 mail mapping. */ ns_t_gpos = 27, /* Geographical position (withdrawn). */ ns_t_aaaa = 28, /* Ip6 Address. */ ns_t_loc = 29, /* Location Information. */ ns_t_nxt = 30, /* Next domain (security). */ ns_t_eid = 31, /* Endpoint identifier. */ ns_t_nimloc = 32, /* Nimrod Locator. */ ns_t_srv = 33, /* Server Selection. */ ns_t_atma = 34, /* ATM Address */ ns_t_naptr = 35, /* Naming Authority PoinTeR */ /* Query type values which do not appear in resource records. */ ns_t_ixfr = 251, /* Incremental zone transfer. */ ns_t_axfr = 252, /* Transfer zone of authority. */ ns_t_mailb = 253, /* Transfer mailbox records. */ ns_t_maila = 254, /* Transfer mail agent records. */ ns_t_any = 255, /* Wildcard match. */ ns_t_max = 65536} ns_type;/* * Values for class field */typedef enum __ns_class { ns_c_in = 1, /* Internet. */ /* Class 2 unallocated/unsupported. */ ns_c_chaos = 3, /* MIT Chaos-net. */ ns_c_hs = 4, /* MIT Hesiod. */ /* Query class values which do not appear in resource records */ ns_c_none = 254, /* for prereq. sections in update requests */ ns_c_any = 255, /* Wildcard match. */ ns_c_max = 65536} ns_class;/* * Flags field of the KEY RR rdata */#define NS_KEY_TYPEMASK 0xC000 /* Mask for "type" bits */#define NS_KEY_TYPE_AUTH_CONF 0x0000 /* Key usable for both */#define NS_KEY_TYPE_CONF_ONLY 0x8000 /* Key usable for confidentiality */#define NS_KEY_TYPE_AUTH_ONLY 0x4000 /* Key usable for authentication */#define NS_KEY_TYPE_NO_KEY 0xC000 /* No key usable for either; no key *//* The type bits can also be interpreted independently, as single bits: */#define NS_KEY_NO_AUTH 0x8000 /* Key unusable for authentication */#define NS_KEY_NO_CONF 0x4000 /* Key unusable for confidentiality */#define NS_KEY_EXPERIMENTAL 0x2000 /* Security is *mandatory* if bit=0 */#define NS_KEY_RESERVED3 0x1000 /* reserved - must be zero */#define NS_KEY_RESERVED4 0x0800 /* reserved - must be zero */#define NS_KEY_USERACCOUNT 0x0400 /* key is assoc. with a user acct */#define NS_KEY_ENTITY 0x0200 /* key is assoc. with entity eg host */#define NS_KEY_ZONEKEY 0x0100 /* key is zone key */#define NS_KEY_IPSEC 0x0080 /* key is for IPSEC (host or user)*/#define NS_KEY_EMAIL 0x0040 /* key is for email (MIME security) */#define NS_KEY_RESERVED10 0x0020 /* reserved - must be zero */#define NS_KEY_RESERVED11 0x0010 /* reserved - must be zero */#define NS_KEY_SIGNATORYMASK 0x000F /* key can sign RR's of same name */#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED3 | \ NS_KEY_RESERVED4 | \ NS_KEY_RESERVED10 | \ NS_KEY_RESERVED11 )/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */#define NS_ALG_MD5RSA 1 /* MD5 with RSA */#define NS_ALG_EXPIRE_ONLY 253 /* No alg, no security */#define NS_ALG_PRIVATE_OID 254 /* Key begins with OID giving alg *//* Signatures */#define NS_MD5RSA_MIN_BITS 512 /* Size of a mod or exp in bits */#define NS_MD5RSA_MAX_BITS 2552 /* Total of binary mod and exp */#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3) /* Max length of text sig block */#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)/* Offsets into SIG record rdata to find various values */#define NS_SIG_TYPE 0 /* Type flags */#define NS_SIG_ALG 2 /* Algorithm */#define NS_SIG_LABELS 3 /* How many labels in name */#define NS_SIG_OTTL 4 /* Original TTL */#define NS_SIG_EXPIR 8 /* Expiration time */#define NS_SIG_SIGNED 12 /* Signature time */#define NS_SIG_FOOT 16 /* Key footprint */#define NS_SIG_SIGNER 18 /* Domain name of who signed it *//* How RR types are represented as bit-flags in NXT records */#define NS_NXT_BITS 8#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))/* * Inline versions of get/put short/long. Pointer is advanced. */#define NS_GET16(s, cp) { \ register u_char *t_cp = (u_char *)(cp); \ (s) = ((u_int16_t)t_cp[0] << 8) \ | ((u_int16_t)t_cp[1]) \ ; \ (cp) += NS_INT16SZ; \}#define NS_GET32(l, cp) { \ register u_char *t_cp = (u_char *)(cp); \ (l) = ((u_int32_t)t_cp[0] << 24) \ | ((u_int32_t)t_cp[1] << 16) \ | ((u_int32_t)t_cp[2] << 8) \ | ((u_int32_t)t_cp[3]) \ ; \ (cp) += NS_INT32SZ; \}#define NS_PUT16(s, cp) { \ register u_int16_t t_s = (u_int16_t)(s); \ register u_char *t_cp = (u_char *)(cp); \ *t_cp++ = t_s >> 8; \ *t_cp = t_s; \ (cp) += NS_INT16SZ; \}#define NS_PUT32(l, cp) { \ register u_int32_t t_l = (u_int32_t)(l); \ register u_char *t_cp = (u_char *)(cp); \ *t_cp++ = t_l >> 24; \ *t_cp++ = t_l >> 16; \ *t_cp++ = t_l >> 8; \ *t_cp = t_l; \ (cp) += NS_INT32SZ; \}/* * ANSI C identifier hiding. */#define ns_get16 __ns_get16#define ns_get32 __ns_get32#define ns_put16 __ns_put16#define ns_put32 __ns_put32#define ns_initparse __ns_initparse#define ns_parserr __ns_parserr#define ns_sprintrr __ns_sprintrr#define ns_sprintrrf __ns_sprintrrf#define ns_format_ttl __ns_format_ttl#define ns_parse_ttl __ns_parse_ttl#define ns_name_ntop __ns_name_ntop#define ns_name_pton __ns_name_pton#define ns_name_unpack __ns_name_unpack#define ns_name_pack __ns_name_pack#define ns_name_compress __ns_name_compress#define ns_name_uncompress __ns_name_uncompress__BEGIN_DECLSu_int ns_get16 __P((const u_char *));u_long ns_get32 __P((const u_char *));void ns_put16 __P((u_int, u_char *));void ns_put32 __P((u_long, u_char *));int ns_initparse __P((const u_char *, int, ns_msg *));int ns_parserr __P((ns_msg *, ns_sect, int, ns_rr *));int ns_sprintrr __P((const ns_msg *, const ns_rr *, const char *, const char *, char *, size_t));int ns_sprintrrf __P((const u_char *, size_t, const char *, ns_class, ns_type, u_long, const u_char *, size_t, const char *, const char *, char *, size_t));int ns_format_ttl __P((u_long, char *, size_t));int ns_parse_ttl __P((const char *, u_long *));int ns_name_ntop __P((const u_char *, char *, size_t));int ns_name_pton __P((const char *, u_char *, size_t));int ns_name_unpack __P((const u_char *, const u_char *, const u_char *, u_char *, size_t));int ns_name_pack __P((const u_char *, u_char *, int, const u_char **, const u_char **));int ns_name_uncompress __P((const u_char *, const u_char *, const u_char *, char *, size_t));int ns_name_compress __P((const char *, u_char *, size_t, const u_char **, const u_char **));int ns_name_skip __P((const u_char **, const u_char *));__END_DECLS#ifdef BIND_4_COMPAT#include <arpa/nameser_compat.h>#endif#endif /* !_ARPA_NAMESER_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -