#include <arpa/nameser.h>

arpa/nameser.h

$Id: nameser.h,v 1.16 2009/03/03 01:52:48 each Exp $ $FreeBSD$
158 macros · 38 functions · 19 typedefs · 9 enums · 7 structs · 1 variable

macroNS_PACKETSZ

Define constants based on RFC0883, RFC1034, RFC 1035
#define NS_PACKETSZ 512
%< default UDP packet size

macroNS_MAXDNAME

#define NS_MAXDNAME 1025
%< maximum domain name (presentation format)

macroNS_MAXMSG

#define NS_MAXMSG 65535
%< maximum message size

macroNS_MAXCDNAME

#define NS_MAXCDNAME 255
%< maximum compressed domain name

macroNS_MAXLABEL

#define NS_MAXLABEL 63
%< maximum length of domain label

macroNS_MAXLABELS

#define NS_MAXLABELS 128
%< theoretical max #/labels per domain name

macroNS_MAXNNAME

#define NS_MAXNNAME 256
%< maximum uncompressed (binary) domain name

macroNS_MAXPADDR

#define NS_MAXPADDR (sizeof "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")

macroNS_HFIXEDSZ

#define NS_HFIXEDSZ 12
%< #/bytes of fixed data in header

macroNS_QFIXEDSZ

#define NS_QFIXEDSZ 4
%< #/bytes of fixed data in query

macroNS_RRFIXEDSZ

#define NS_RRFIXEDSZ 10
%< #/bytes of fixed data in r record

macroNS_INT32SZ

#define NS_INT32SZ 4
%< #/bytes of data in a u_int32_t

macroNS_INT16SZ

#define NS_INT16SZ 2
%< #/bytes of data in a u_int16_t

macroNS_INT8SZ

#define NS_INT8SZ 1
%< #/bytes of data in a u_int8_t

macroNS_INADDRSZ

#define NS_INADDRSZ 4
%< IPv4 T_A

macroNS_IN6ADDRSZ

#define NS_IN6ADDRSZ 16
%< IPv6 T_AAAA

macroNS_CMPRSFLGS

#define NS_CMPRSFLGS 0xc0
%< Flag bits indicating name compression.

macroNS_DEFAULTPORT

#define NS_DEFAULTPORT 53
%< For both TCP and UDP.

macrons_sect

These can be expanded with synonyms, just keep ns_parse.c:ns_parserecord() in synch with it.
#define ns_sect res_9_ns_sect

enum__ns_sect

underlying type unsigned int
ns_s_qd0%< Query: Question.
ns_s_zn0%< Update: Zone.
ns_s_an1%< Query: Answer.
ns_s_pr1%< Update: Prerequisites.
ns_s_ns2%< Query: Name servers.
ns_s_ud2%< Update: Update.
ns_s_ar3%< Query|Update: Additional records.
ns_s_max4

typedefres_9_ns_sect

typedef enum __ns_sect res_9_ns_sect;

typedefns_nname

% Network name (compressed or not) type. Equivalent to a pointer when used in a function prototype. Can be const'd.
typedef u_char ns_nname[NS_MAXNNAME]

typedefns_nname_ct

typedef const u_char *ns_nname_ct

typedefns_nname_t

typedef u_char *ns_nname_t

structns_namemap

size 16, align 8
ns_nname_ctbase
intlen

typedefns_namemap_t

typedef struct ns_namemap *ns_namemap_t

typedefns_namemap_ct

typedef const struct ns_namemap *ns_namemap_ct

macrons_msg

% This is a message handle. It is caller allocated and has no dynamic data. This structure is intended to be opaque to all but ns_parse.c, thus the leading _'s on the member names. Use the accessor functions, not the _'s.
#define ns_msg res_9_ns_msg

struct__ns_msg

size 80, align 8
const u_char *_msg
const u_char *_eom
u_int16_t_id
u_int16_t_flags
u_int16_t[4]_counts
const u_char *[4]_sections
res_9_ns_sect_sect
int_rrnum
const u_char *_msg_ptr

typedefres_9_ns_msg

typedef struct __ns_msg res_9_ns_msg;

macro_ns_flagdata

Private data structure - do not use from outside library.
#define _ns_flagdata _res_9_ns_flagdata

struct_res_9_ns_flagdata

size 8, align 4
intmask
intshift

macrons_msg_id

#define ns_msg_id(handle) ((handle)._id + 0)

macrons_msg_base

#define ns_msg_base(handle) ((handle)._msg + 0)

macrons_msg_end

#define ns_msg_end(handle) ((handle)._eom + 0)

macrons_msg_size

#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)

macrons_msg_count

#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)

macrons_rr

% This is a parsed record. It is caller allocated and has no dynamic data.
#define ns_rr res_9_ns_rr

struct__ns_rr

size 1048, align 8
char[1025]name
u_int16_ttype
u_int16_trr_class
u_int32_tttl
u_int16_trdlength
const u_char *rdata

typedefres_9_ns_rr

typedef struct __ns_rr res_9_ns_rr;

struct__ns_rr2

Same thing, but using uncompressed network binary names, and real C types.
size 288, align 8
ns_nnamenname
size_tnnamel
inttype
intrr_class
u_intttl
intrdlength
const u_char *rdata

typedefns_rr2

typedef struct __ns_rr2 ns_rr2;

macrons_rr_name

Accessor macros - this is part of the public interface.
#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")

macrons_rr_nname

#define ns_rr_nname(rr) ((const ns_nname_t)(rr).nname)

macrons_rr_nnamel

#define ns_rr_nnamel(rr) ((rr).nnamel + 0)

macrons_rr_type

#define ns_rr_type(rr) ((ns_type)((rr).type + 0))

macrons_rr_class

#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0))

macrons_rr_ttl

#define ns_rr_ttl(rr) ((rr).ttl + 0)

macrons_rr_rdlen

#define ns_rr_rdlen(rr) ((rr).rdlength + 0)

macrons_rr_rdata

#define ns_rr_rdata(rr) ((rr).rdata + 0)

macrons_flag

% These don't have to be in the same order as in the packet flags word, and they can even overlap in some cases, but they will need to be kept in synch with ns_parse.c:ns_flagdata[].
#define ns_flag res_9_ns_flag

enum__ns_flag

underlying type unsigned int
ns_f_qr0%< Question/Response.
ns_f_opcode1%< Operation code.
ns_f_aa2%< Authoritative Answer.
ns_f_tc3%< Truncation occurred.
ns_f_rd4%< Recursion Desired.
ns_f_ra5%< Recursion Available.
ns_f_z6%< MBZ.
ns_f_ad7%< Authentic Data (DNSSEC).
ns_f_cd8%< Checking Disabled (DNSSEC).
ns_f_rcode9%< Response code.
ns_f_max10

typedefres_9_ns_flag

typedef enum __ns_flag res_9_ns_flag;

macrons_opcode

% Currently defined opcodes.
#define ns_opcode res_9_ns_opcode

enum__ns_opcode

underlying type unsigned int
ns_o_query0%< Standard query.
ns_o_iquery1%< Inverse query (deprecated/unsupported).
ns_o_status2%< Name server status query (unsupported).
ns_o_notify4Opcode 3 is undefined/reserved. %< Zone change notification.
ns_o_update5%< Zone update message.
ns_o_max6

typedefres_9_ns_opcode

typedef enum __ns_opcode res_9_ns_opcode;

macrons_rcode

% Currently defined response codes.
#define ns_rcode res_9_ns_rcode

enum__ns_rcode

underlying type unsigned int
ns_r_noerror0%< No error occurred.
ns_r_formerr1%< Format error.
ns_r_servfail2%< Server failure.
ns_r_nxdomain3%< Name error.
ns_r_notimpl4%< Unimplemented.
ns_r_refused5%< Operation refused.
ns_r_yxdomain6these are for BIND_UPDATE %< Name exists
ns_r_yxrrset7%< RRset exists
ns_r_nxrrset8%< RRset does not exist
ns_r_notauth9%< Not authoritative for zone
ns_r_notzone10%< Zone of record different from zone section
ns_r_max11
ns_r_badvers16The following are EDNS extended rcodes
ns_r_badsig16The following are TSIG errors
ns_r_badkey17
ns_r_badtime18

typedefres_9_ns_rcode

typedef enum __ns_rcode res_9_ns_rcode;

macrons_update_operation

BIND_UPDATE
#define ns_update_operation res_9_ns_update_operation

enum__ns_update_operation

underlying type unsigned int
ns_uop_delete0
ns_uop_add1
ns_uop_max2

typedefres_9_ns_update_operation

typedef enum __ns_update_operation res_9_ns_update_operation;

macrons_tsig_key

% This structure is used for TSIG authenticated messages
#define ns_tsig_key res_9_ns_tsig_key

structres_9_ns_tsig_key

size 2072, align 8
char[1025]name
char[1025]alg
unsigned char *data
intlen

macrons_tcp_tsig_state

% This structure is used for TSIG authenticated TCP messages
#define ns_tcp_tsig_state res_9_ns_tcp_tsig_state

structres_9_ns_tcp_tsig_state

size 544, align 8
intcounter
struct dst_key *key
void *ctx
unsigned char[512]sig
intsiglen

macroNS_TSIG_FUDGE

#define NS_TSIG_FUDGE 300

macroNS_TSIG_TCP_COUNT

#define NS_TSIG_TCP_COUNT 100

macroNS_TSIG_ALG_HMAC_MD5

#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT"

macroNS_TSIG_ERROR_NO_TSIG

#define NS_TSIG_ERROR_NO_TSIG -10

macroNS_TSIG_ERROR_NO_SPACE

#define NS_TSIG_ERROR_NO_SPACE -11

macroNS_TSIG_ERROR_FORMERR

#define NS_TSIG_ERROR_FORMERR -12

enum__ns_type

% Currently defined type values for resources and queries.
underlying type unsigned int
ns_t_invalid0%< Cookie.
ns_t_a1%< Host address.
ns_t_ns2%< Authoritative server.
ns_t_md3%< Mail destination.
ns_t_mf4%< Mail forwarder.
ns_t_cname5%< Canonical name.
ns_t_soa6%< Start of authority zone.
ns_t_mb7%< Mailbox domain name.
ns_t_mg8%< Mail group member.
ns_t_mr9%< Mail rename name.
ns_t_null10%< Null resource record.
ns_t_wks11%< Well known service.
ns_t_ptr12%< Domain name pointer.
ns_t_hinfo13%< Host information.
ns_t_minfo14%< Mailbox information.
ns_t_mx15%< Mail routing information.
ns_t_txt16%< Text strings.
ns_t_rp17%< Responsible person.
ns_t_afsdb18%< AFS cell database.
ns_t_x2519%< X_25 calling address.
ns_t_isdn20%< ISDN calling address.
ns_t_rt21%< Router.
ns_t_nsap22%< NSAP address.
ns_t_nsap_ptr23%< Reverse NSAP lookup (deprecated).
ns_t_sig24%< Security signature.
ns_t_key25%< Security key.
ns_t_px26%< X.400 mail mapping.
ns_t_gpos27%< Geographical position (withdrawn).
ns_t_aaaa28%< IPv6 Address.
ns_t_loc29%< Location Information.
ns_t_nxt30%< Next domain (security).
ns_t_eid31%< Endpoint identifier.
ns_t_nimloc32%< Nimrod Locator.
ns_t_srv33%< Server Selection.
ns_t_atma34%< ATM Address
ns_t_naptr35%< Naming Authority PoinTeR
ns_t_kx36%< Key Exchange
ns_t_cert37%< Certification record
ns_t_a638%< IPv6 address (experimental)
ns_t_dname39%< Non-terminal DNAME
ns_t_sink40%< Kitchen sink (experimentatl)
ns_t_opt41%< EDNS0 option (meta-RR)
ns_t_apl42%< Address prefix list (RFC3123)
ns_t_ds43%< Delegation Signer
ns_t_sshfp44%< SSH Fingerprint
ns_t_ipseckey45%< IPSEC Key
ns_t_rrsig46%< RRset Signature
ns_t_nsec47%< Negative security
ns_t_dnskey48%< DNS Key
ns_t_dhcid49%< Dynamic host configuratin identifier
ns_t_nsec350%< Negative security type 3
ns_t_nsec3param51%< Negative security type 3 parameters
ns_t_hip55%< Host Identity Protocol
ns_t_spf99%< Sender Policy Framework
ns_t_tkey249%< Transaction key
ns_t_tsig250%< Transaction signature.
ns_t_ixfr251%< Incremental zone transfer.
ns_t_axfr252%< Transfer zone of authority.
ns_t_mailb253%< Transfer mailbox records.
ns_t_maila254%< Transfer mail agent records.
ns_t_any255%< Wildcard match.
ns_t_zxfr256%< BIND-specific, nonstandard.
ns_t_dlv32769%< DNSSEC look-aside validatation.
ns_t_max65536

typedefns_type

typedef enum __ns_type ns_type;

macrons_t_qt_p

Exclusively a QTYPE? (not also an RTYPE)
#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any ||
		      (t) == ns_t_mailb || (t) == ns_t_maila)

macrons_t_mrr_p

Some kind of meta-RR? (not a QTYPE, but also not an RTYPE)
#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt)

macrons_t_rr_p

Exclusively an RTYPE? (not also a QTYPE or a meta-RR)
#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t))

macrons_t_udp_p

#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr)

macrons_t_xfr_p

#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr ||
		       (t) == ns_t_zxfr)

macrons_class

% Values for class field
#define ns_class res_9_ns_class

enum__ns_class

underlying type unsigned int
ns_c_invalid0%< Cookie.
ns_c_in1%< Internet.
ns_c_22%< unallocated/unsupported.
ns_c_chaos3%< MIT Chaos-net.
ns_c_hs4%< MIT Hesiod.
ns_c_none254Query class values which do not appear in resource records %< for prereq. sections in update requests
ns_c_any255%< Wildcard match.
ns_c_max65536

typedefres_9_ns_class

typedef enum __ns_class res_9_ns_class;

macrons_key_types

#define ns_key_types res_9_ns_key_types

enum__ns_key_types

underlying type unsigned int
ns_kt_rsa1%< key type RSA/MD5
ns_kt_dh2%< Diffie Hellman
ns_kt_dsa3%< Digital Signature Standard (MANDATORY)
ns_kt_private254%< Private key type starts with OID

typedefres_9_ns_key_types

typedef enum __ns_key_types res_9_ns_key_types;

macrons_cert_types

#define ns_cert_types res_9_ns_cert_types

enum__ns_cert_types

underlying type unsigned int
cert_t_pkix1%< PKIX (X.509v3)
cert_t_spki2%< SPKI
cert_t_pgp3%< PGP
cert_t_url253%< URL private type
cert_t_oid254%< OID private type

typedefres_9_ns_cert_types

typedef enum __ns_cert_types res_9_ns_cert_types;

macroNS_KEY_TYPEMASK

Flags field of the KEY RR rdata.
#define NS_KEY_TYPEMASK 0xC000
%< Mask for "type" bits

macroNS_KEY_TYPE_AUTH_CONF

#define NS_KEY_TYPE_AUTH_CONF 0x0000
%< Key usable for both

macroNS_KEY_TYPE_CONF_ONLY

#define NS_KEY_TYPE_CONF_ONLY 0x8000
%< Key usable for confidentiality

macroNS_KEY_TYPE_AUTH_ONLY

#define NS_KEY_TYPE_AUTH_ONLY 0x4000
%< Key usable for authentication

macroNS_KEY_TYPE_NO_KEY

#define NS_KEY_TYPE_NO_KEY 0xC000
%< No key usable for either; no key

macroNS_KEY_NO_AUTH

The type bits can also be interpreted independently, as single bits:
#define NS_KEY_NO_AUTH 0x8000
%< Key unusable for authentication

macroNS_KEY_NO_CONF

#define NS_KEY_NO_CONF 0x4000
%< Key unusable for confidentiality

macroNS_KEY_RESERVED2

#define NS_KEY_RESERVED2 0x2000
Security is *mandatory* if bit=0

macroNS_KEY_EXTENDED_FLAGS

#define NS_KEY_EXTENDED_FLAGS 0x1000
%< reserved - must be zero

macroNS_KEY_RESERVED4

#define NS_KEY_RESERVED4 0x0800
%< reserved - must be zero

macroNS_KEY_RESERVED5

#define NS_KEY_RESERVED5 0x0400
%< reserved - must be zero

macroNS_KEY_NAME_TYPE

#define NS_KEY_NAME_TYPE 0x0300
%< these bits determine the type

macroNS_KEY_NAME_USER

#define NS_KEY_NAME_USER 0x0000
%< key is assoc. with user

macroNS_KEY_NAME_ENTITY

#define NS_KEY_NAME_ENTITY 0x0200
%< key is assoc. with entity eg host

macroNS_KEY_NAME_ZONE

#define NS_KEY_NAME_ZONE 0x0100
%< key is zone key

macroNS_KEY_NAME_RESERVED

#define NS_KEY_NAME_RESERVED 0x0300
%< reserved meaning

macroNS_KEY_RESERVED8

#define NS_KEY_RESERVED8 0x0080
%< reserved - must be zero

macroNS_KEY_RESERVED9

#define NS_KEY_RESERVED9 0x0040
%< reserved - must be zero

macroNS_KEY_RESERVED10

#define NS_KEY_RESERVED10 0x0020
%< reserved - must be zero

macroNS_KEY_RESERVED11

#define NS_KEY_RESERVED11 0x0010
%< reserved - must be zero

macroNS_KEY_SIGNATORYMASK

#define NS_KEY_SIGNATORYMASK 0x000F
%< key can sign RR's of same name

macroNS_KEY_RESERVED_BITMASK2

#define NS_KEY_RESERVED_BITMASK2 0xFFFF
%< no bits defined here

macroNS_ALG_MD5RSA

The Algorithm field of the KEY and SIG RR's is an integer, {1..254}
#define NS_ALG_MD5RSA 1
%< MD5 with RSA

macroNS_ALG_DH

#define NS_ALG_DH 2
%< Diffie Hellman KEY

macroNS_ALG_DSA

#define NS_ALG_DSA 3
%< DSA KEY

macroNS_ALG_DSS

#define NS_ALG_DSS NS_ALG_DSA

macroNS_ALG_EXPIRE_ONLY

#define NS_ALG_EXPIRE_ONLY 253
%< No alg, no security

macroNS_ALG_PRIVATE_OID

#define NS_ALG_PRIVATE_OID 254
%< Key begins with OID giving alg

macroNS_KEY_PROT_TLS

Protocol values value 0 is reserved
#define NS_KEY_PROT_TLS 1

macroNS_KEY_PROT_EMAIL

#define NS_KEY_PROT_EMAIL 2

macroNS_KEY_PROT_DNSSEC

#define NS_KEY_PROT_DNSSEC 3

macroNS_KEY_PROT_IPSEC

#define NS_KEY_PROT_IPSEC 4

macroNS_KEY_PROT_ANY

#define NS_KEY_PROT_ANY 255

macroNS_MD5RSA_MIN_BITS

Signatures
#define NS_MD5RSA_MIN_BITS 512
%< Size of a mod or exp in bits

macroNS_MD5RSA_MAX_BITS

#define NS_MD5RSA_MAX_BITS 4096

macroNS_MD5RSA_MAX_BYTES

Total of binary mod and exp
#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)

macroNS_MD5RSA_MAX_BASE64

Max length of text sig block
#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4)

macroNS_MD5RSA_MIN_SIZE

#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8)

macroNS_MD5RSA_MAX_SIZE

#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8)

macroNS_DSA_SIG_SIZE

#define NS_DSA_SIG_SIZE 41

macroNS_DSA_MIN_SIZE

#define NS_DSA_MIN_SIZE 213

macroNS_DSA_MAX_BYTES

#define NS_DSA_MAX_BYTES 405

macroNS_SIG_TYPE

Offsets into SIG record rdata to find various values
#define NS_SIG_TYPE 0
%< Type flags

macroNS_SIG_ALG

#define NS_SIG_ALG 2
%< Algorithm

macroNS_SIG_LABELS

#define NS_SIG_LABELS 3
%< How many labels in name

macroNS_SIG_OTTL

#define NS_SIG_OTTL 4
%< Original TTL

macroNS_SIG_EXPIR

#define NS_SIG_EXPIR 8
%< Expiration time

macroNS_SIG_SIGNED

#define NS_SIG_SIGNED 12
%< Signature time

macroNS_SIG_FOOT

#define NS_SIG_FOOT 16
%< Key footprint

macroNS_SIG_SIGNER

#define NS_SIG_SIGNER 18
%< Domain name of who signed it

macroNS_NXT_BITS

How RR types are represented as bit-flags in NXT records
#define NS_NXT_BITS 8

macroNS_NXT_BIT_SET

#define NS_NXT_BIT_SET(n, p) (p[(n)/NS_NXT_BITS] |=  (0x80>>((n)%NS_NXT_BITS)))

macroNS_NXT_BIT_CLEAR

#define NS_NXT_BIT_CLEAR(n, p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))

macroNS_NXT_BIT_ISSET

#define NS_NXT_BIT_ISSET(n, p) (p[(n)/NS_NXT_BITS] &   (0x80>>((n)%NS_NXT_BITS)))

macroNS_NXT_MAX

#define NS_NXT_MAX 127

macroNS_OPT_DNSSEC_OK

% EDNS0 extended flags and option codes, host order.
#define NS_OPT_DNSSEC_OK 0x8000U

macroNS_OPT_NSID

#define NS_OPT_NSID 3

macroNS_GET16

% Inline versions of get/put short/long. Pointer is advanced.
#define NS_GET16(s, cp) do {
	register const u_char *t_cp = (const u_char *)(cp);
	(s) = ((u_int16_t)t_cp[0] << 8)
	    | ((u_int16_t)t_cp[1])
	    ;
	(cp) += NS_INT16SZ;
} while (0)

macroNS_GET32

#define NS_GET32(l, cp) do {
	register const u_char *t_cp = (const 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;
} while (0)

macroNS_PUT16

#define NS_PUT16(s, cp) do {
	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;
} while (0)

macroNS_PUT32

#define NS_PUT32(l, cp) do {
	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;
} while (0)

macrons_msg_getflag

#define ns_msg_getflag res_9_ns_msg_getflag

macrons_get16

#define ns_get16 res_9_ns_get16

macrons_get32

#define ns_get32 res_9_ns_get32

macrons_put16

#define ns_put16 res_9_ns_put16

macrons_put32

#define ns_put32 res_9_ns_put32

macrons_initparse

#define ns_initparse res_9_ns_initparse

macrons_skiprr

#define ns_skiprr res_9_ns_skiprr

macrons_parserr

#define ns_parserr res_9_ns_parserr

macrons_parserr2

#define ns_parserr2 res_9_ns_parserr2

macrons_sprintrr

#define ns_sprintrr res_9_ns_sprintrr

macrons_sprintrrf

#define ns_sprintrrf res_9_ns_sprintrrf

macrons_format_ttl

#define ns_format_ttl res_9_ns_format_ttl

macrons_parse_ttl

#define ns_parse_ttl res_9_ns_parse_ttl

macrons_datetosecs

#define ns_datetosecs res_9_ns_datetosecs

macrons_name_ntol

#define ns_name_ntol res_9_ns_name_ntol

macrons_name_ntop

#define ns_name_ntop res_9_ns_name_ntop

macrons_name_pton

#define ns_name_pton res_9_ns_name_pton

macrons_name_pton2

#define ns_name_pton2 res_9_ns_name_pton2

macrons_name_unpack

#define ns_name_unpack res_9_ns_name_unpack

macrons_name_unpack2

#define ns_name_unpack2 res_9_ns_name_unpack2

macrons_name_pack

#define ns_name_pack res_9_ns_name_pack

macrons_name_compress

#define ns_name_compress res_9_ns_name_compress

macrons_name_uncompress

#define ns_name_uncompress res_9_ns_name_uncompress

macrons_name_skip

#define ns_name_skip res_9_ns_name_skip

macrons_name_rollback

#define ns_name_rollback res_9_ns_name_rollback

macrons_sign

#define ns_sign res_9_ns_sign

macrons_sign2

#define ns_sign2 res_9_ns_sign2

macrons_sign_tcp

#define ns_sign_tcp res_9_ns_sign_tcp

macrons_sign_tcp2

#define ns_sign_tcp2 res_9_ns_sign_tcp2

macrons_sign_tcp_init

#define ns_sign_tcp_init res_9_ns_sign_tcp_init

macrons_find_tsig

#define ns_find_tsig res_9_ns_find_tsig

macrons_verify

#define ns_verify res_9_ns_verify

macrons_verify_tcp

#define ns_verify_tcp res_9_ns_verify_tcp

macrons_verify_tcp_init

#define ns_verify_tcp_init res_9_ns_verify_tcp_init

macrons_samedomain

#define ns_samedomain res_9_ns_samedomain

macrons_subdomain

#define ns_subdomain res_9_ns_subdomain

macrons_makecanon

#define ns_makecanon res_9_ns_makecanon

macrons_samename

#define ns_samename res_9_ns_samename

macrons_rdata_unpack

#define ns_rdata_unpack res_9_ns_rdata_unpack

macrons_rdata_equal

#define ns_rdata_equal res_9_ns_rdata_equal

macrons_rdata_refers

#define ns_rdata_refers res_9_ns_rdata_refers

functionres_9_ns_initparse

int ns_initparse(const u_char *, int, ns_msg *)

functionres_9_ns_skiprr

int ns_skiprr(const u_char *, const u_char *, ns_sect, int)

functionres_9_ns_sprintrr

int ns_sprintrr(const ns_msg *, const ns_rr *, const char *, const char *, char *, size_t)

functionres_9_ns_sprintrrf

int ns_sprintrrf(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)

functionres_9_ns_parse_ttl

int ns_parse_ttl(const char *, u_long *)

functionres_9_ns_datetosecs

u_int32_t ns_datetosecs(const char *cp, int *errp)

functionres_9_ns_name_ntop

int ns_name_ntop(const u_char *, char *, size_t)

functionres_9_ns_name_pton

int ns_name_pton(const char *, u_char *, size_t)

functionres_9_ns_name_pton2

int ns_name_pton2(const char *, u_char *, size_t, size_t *)

functionres_9_ns_name_unpack

int ns_name_unpack(const u_char *, const u_char *, const u_char *, u_char *, size_t)

functionres_9_ns_name_unpack2

int ns_name_unpack2(const u_char *, const u_char *, const u_char *, u_char *, size_t, size_t *)

functionres_9_ns_name_pack

int ns_name_pack(const u_char *, u_char *, int, const u_char **, const u_char **)

functionres_9_ns_name_uncompress

int ns_name_uncompress(const u_char *, const u_char *, const u_char *, char *, size_t)

functionres_9_ns_name_compress

int ns_name_compress(const char *, u_char *, size_t, const u_char **, const u_char **)

functionres_9_ns_name_skip

int ns_name_skip(const u_char **, const u_char *)

functionres_9_ns_name_rollback

void ns_name_rollback(const u_char *, const u_char **, const u_char **)

functionres_9_ns_sign

int ns_sign(u_char *, int *, int, int, void *, const u_char *, int, u_char *, int *, time_t)

functionres_9_ns_sign2

int ns_sign2(u_char *, int *, int, int, void *, const u_char *, int, u_char *, int *, time_t, u_char **, u_char **)

functionres_9_ns_sign_tcp

int ns_sign_tcp(u_char *, int *, int, int, ns_tcp_tsig_state *, int)

functionres_9_ns_sign_tcp2

int ns_sign_tcp2(u_char *, int *, int, int, ns_tcp_tsig_state *, int, u_char **, u_char **)

functionres_9_ns_verify

int ns_verify(u_char *, int *, void *, const u_char *, int, u_char *, int *, time_t *, int)

functionres_9_ns_samedomain

int ns_samedomain(const char *, const char *)

functionres_9_ns_subdomain

int ns_subdomain(const char *, const char *)

functionres_9_ns_makecanon

int ns_makecanon(const char *, char *, size_t)

functionres_9_ns_samename

int ns_samename(const char *, const char *)