rdata.c File Reference

#include <config.h>
#include <ctype.h>
#include <isc/base64.h>
#include <isc/hex.h>
#include <isc/lex.h>
#include <isc/mem.h>
#include <isc/parseint.h>
#include <isc/print.h>
#include <isc/string.h>
#include <isc/stdlib.h>
#include <isc/util.h>
#include <dns/callbacks.h>
#include <dns/cert.h>
#include <dns/compress.h>
#include <dns/dsdigest.h>
#include <dns/enumtype.h>
#include <dns/keyflags.h>
#include <dns/keyvalues.h>
#include <dns/message.h>
#include <dns/rcode.h>
#include <dns/rdata.h>
#include <dns/rdataclass.h>
#include <dns/rdatastruct.h>
#include <dns/rdatatype.h>
#include <dns/result.h>
#include <dns/secalg.h>
#include <dns/secproto.h>
#include <dns/time.h>
#include <dns/ttl.h>
#include "code.h"

Go to the source code of this file.

Data Structures

struct  dns_rdata_textctx
 Context structure for the totext_ functions. Contains formatting options for rdata-to-text conversion. More...
struct  state

Defines

#define RETERR(x)
#define RETTOK(x)
#define DNS_AS_STR(t)   ((t).value.as_textregion.base)
#define ARGS_FROMTEXT
#define ARGS_TOTEXT
#define ARGS_FROMWIRE
#define ARGS_TOWIRE
#define ARGS_COMPARE   const dns_rdata_t *rdata1, const dns_rdata_t *rdata2
#define ARGS_FROMSTRUCT
#define ARGS_TOSTRUCT   dns_rdata_t *rdata, void *target, isc_mem_t *mctx
#define ARGS_FREESTRUCT   void *source
#define ARGS_ADDLDATA
#define ARGS_DIGEST   dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg
#define ARGS_CHECKOWNER
#define ARGS_CHECKNAMES   dns_rdata_t *rdata, dns_name_t *owner, dns_name_t *bad
#define NS_INT16SZ   2
 INT16 Size.
#define NS_LOCATORSZ   8
 IPv6 Address Size.
#define META   0x0001
#define RESERVED   0x0002
#define Ceor   state->Ceor
#define Csum   state->Csum
#define Crot   state->Crot
#define word   state->word
#define bcount   state->bcount
#define times85(x)   ((((((x<<2)+x)<<2)+x)<<2)+x)

Typedefs

typedef struct dns_rdata_textctx dns_rdata_textctx_t

Functions

static isc_result_t txt_totext (isc_region_t *source, isc_boolean_t quote, isc_buffer_t *target)
static isc_result_t txt_fromtext (isc_textregion_t *source, isc_buffer_t *target)
static isc_result_t txt_fromwire (isc_buffer_t *source, isc_buffer_t *target)
static isc_result_t multitxt_totext (isc_region_t *source, isc_buffer_t *target)
static isc_result_t multitxt_fromtext (isc_textregion_t *source, isc_buffer_t *target)
static isc_boolean_t name_prefix (dns_name_t *name, dns_name_t *origin, dns_name_t *target)
static unsigned int name_length (dns_name_t *name)
static isc_result_t str_totext (const char *source, isc_buffer_t *target)
static isc_result_t inet_totext (int af, isc_region_t *src, isc_buffer_t *target)
static isc_boolean_t buffer_empty (isc_buffer_t *source)
static void buffer_fromregion (isc_buffer_t *buffer, isc_region_t *region)
static isc_result_t uint32_tobuffer (isc_uint32_t, isc_buffer_t *target)
static isc_result_t uint16_tobuffer (isc_uint32_t, isc_buffer_t *target)
static isc_result_t uint8_tobuffer (isc_uint32_t, isc_buffer_t *target)
static isc_result_t name_tobuffer (dns_name_t *name, isc_buffer_t *target)
static isc_uint32_t uint32_fromregion (isc_region_t *region)
static isc_uint16_t uint16_fromregion (isc_region_t *region)
static isc_uint8_t uint8_fromregion (isc_region_t *region)
static isc_uint8_t uint8_consume_fromregion (isc_region_t *region)
static isc_result_t mem_tobuffer (isc_buffer_t *target, void *base, unsigned int length)
static int hexvalue (char value)
static int decvalue (char value)
static isc_result_t btoa_totext (unsigned char *inbuf, int inbuflen, isc_buffer_t *target)
static isc_result_t atob_tobuffer (isc_lex_t *lexer, isc_buffer_t *target)
static void default_fromtext_callback (dns_rdatacallbacks_t *callbacks, const char *,...) ISC_FORMAT_PRINTF(2
static void static void fromtext_error (void(*callback)(dns_rdatacallbacks_t *, const char *,...), dns_rdatacallbacks_t *callbacks, const char *name, unsigned long line, isc_token_t *token, isc_result_t result)
static void fromtext_warneof (isc_lex_t *lexer, dns_rdatacallbacks_t *callbacks)
static isc_result_t rdata_totext (dns_rdata_t *rdata, dns_rdata_textctx_t *tctx, isc_buffer_t *target)
static void warn_badname (dns_name_t *name, isc_lex_t *lexer, dns_rdatacallbacks_t *callbacks)
static void warn_badmx (isc_token_t *token, isc_lex_t *lexer, dns_rdatacallbacks_t *callbacks)
static isc_uint16_t uint16_consume_fromregion (isc_region_t *region)
static isc_result_t unknown_totext (dns_rdata_t *rdata, dns_rdata_textctx_t *tctx, isc_buffer_t *target)
static int locator_pton (const char *src, unsigned char *dst)
 convert presentation level address to network order binary form.
static int getquad (const void *src, struct in_addr *dst, isc_lex_t *lexer, dns_rdatacallbacks_t *callbacks)
static isc_result_t name_duporclone (dns_name_t *source, isc_mem_t *mctx, dns_name_t *target)
static void * mem_maybedup (isc_mem_t *mctx, void *source, size_t length)
void dns_rdata_init (dns_rdata_t *rdata)
 Make 'rdata' empty.
void dns_rdata_reset (dns_rdata_t *rdata)
 Make 'rdata' empty.
void dns_rdata_clone (const dns_rdata_t *src, dns_rdata_t *target)
 Clone 'target' from 'src'.
int dns_rdata_compare (const dns_rdata_t *rdata1, const dns_rdata_t *rdata2)
 Determine the relative ordering under the DNSSEC order relation of 'rdata1' and 'rdata2'.
int dns_rdata_casecompare (const dns_rdata_t *rdata1, const dns_rdata_t *rdata2)
 dns_rdata_casecompare() is similar to dns_rdata_compare() but also compares domain names case insensitively in known rdata types that are treated as opaque data by dns_rdata_compare().
void dns_rdata_fromregion (dns_rdata_t *rdata, dns_rdataclass_t rdclass, dns_rdatatype_t type, isc_region_t *r)
 Make 'rdata' refer to region 'r'.
void dns_rdata_toregion (const dns_rdata_t *rdata, isc_region_t *r)
 Make 'r' refer to 'rdata'.
isc_result_t dns_rdata_fromwire (dns_rdata_t *rdata, dns_rdataclass_t rdclass, dns_rdatatype_t type, isc_buffer_t *source, dns_decompress_t *dctx, unsigned int options, isc_buffer_t *target)
 Copy the possibly-compressed rdata at source into the target region.
isc_result_t dns_rdata_towire (dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target)
 Convert 'rdata' into wire format, compressing it as specified by the compression context 'cctx', and storing the result in 'target'.
static isc_result_t rdata_validate (isc_buffer_t *src, isc_buffer_t *dest, dns_rdataclass_t rdclass, dns_rdatatype_t type)
static isc_result_t unknown_fromtext (dns_rdataclass_t rdclass, dns_rdatatype_t type, isc_lex_t *lexer, isc_mem_t *mctx, isc_buffer_t *target)
isc_result_t dns_rdata_fromtext (dns_rdata_t *rdata, dns_rdataclass_t rdclass, dns_rdatatype_t type, isc_lex_t *lexer, dns_name_t *origin, unsigned int options, isc_mem_t *mctx, isc_buffer_t *target, dns_rdatacallbacks_t *callbacks)
 Convert the textual representation of a DNS rdata into uncompressed wire form stored in the target region. Tokens constituting the text of the rdata are taken from 'lexer'.
isc_result_t dns_rdata_totext (dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target)
 Convert 'rdata' into text format, storing the result in 'target'. The text will consist of a single line, with fields separated by single spaces.
isc_result_t dns_rdata_tofmttext (dns_rdata_t *rdata, dns_name_t *origin, unsigned int flags, unsigned int width, unsigned int split_width, const char *linebreak, isc_buffer_t *target)
 Like dns_rdata_totext, but do formatted output suitable for database dumps. This is intended for use by dns_db_dump(); library users are discouraged from calling it directly.
isc_result_t dns_rdata_fromstruct (dns_rdata_t *rdata, dns_rdataclass_t rdclass, dns_rdatatype_t type, void *source, isc_buffer_t *target)
 Convert the C structure representation of an rdata into uncompressed wire format in 'target'.
isc_result_t dns_rdata_tostruct (dns_rdata_t *rdata, void *target, isc_mem_t *mctx)
 Convert an rdata into its C structure representation.
void dns_rdata_freestruct (void *source)
 Free dynamic memory attached to 'source' (if any).
isc_result_t dns_rdata_additionaldata (dns_rdata_t *rdata, dns_additionaldatafunc_t add, void *arg)
 Call 'add' for each name and type from 'rdata' which is subject to additional section processing.
isc_result_t dns_rdata_digest (dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg)
 Send 'rdata' in DNSSEC canonical form to 'digest'.
isc_boolean_t dns_rdata_checkowner (dns_name_t *name, dns_rdataclass_t rdclass, dns_rdatatype_t type, isc_boolean_t wildcard)
isc_boolean_t dns_rdata_checknames (dns_rdata_t *rdata, dns_name_t *owner, dns_name_t *bad)
unsigned int dns_rdatatype_attributes (dns_rdatatype_t type)
 Return attributes for the given type.
isc_result_t dns_rdatatype_fromtext (dns_rdatatype_t *typep, isc_textregion_t *source)
 Convert the text 'source' refers to into a DNS rdata type.
isc_result_t dns_rdatatype_totext (dns_rdatatype_t type, isc_buffer_t *target)
 Put a textual representation of type 'type' into 'target'.
void dns_rdatatype_format (dns_rdatatype_t rdtype, char *array, unsigned int size)
 Format a human-readable representation of the type 'rdtype' into the character array 'array', which is of size 'size'. The resulting string is guaranteed to be null-terminated.
static isc_result_t byte_atob (int c, isc_buffer_t *target, struct state *state)
static isc_result_t putbyte (int c, isc_buffer_t *, struct state *state)
static isc_result_t byte_btoa (int c, isc_buffer_t *, struct state *state)
dns_rdatatype_t dns_rdata_covers (dns_rdata_t *rdata)
 Return the rdatatype that this type covers.
isc_boolean_t dns_rdatatype_ismeta (dns_rdatatype_t type)
 Return true iff the rdata type 'type' is a meta-type like ANY or AXFR.
isc_boolean_t dns_rdatatype_issingleton (dns_rdatatype_t type)
 Return true iff the rdata type 'type' is a singleton type, like CNAME or SOA.
isc_boolean_t dns_rdatatype_notquestion (dns_rdatatype_t type)
 Return true iff rdata of type 'type' can not appear in the question section of a properly formatted message.
isc_boolean_t dns_rdatatype_questiononly (dns_rdatatype_t type)
 Return true iff rdata of type 'type' can only appear in the question section of a properly formatted message.
isc_boolean_t dns_rdatatype_atparent (dns_rdatatype_t type)
 Return true iff rdata of type 'type' should appear at the parent of a zone cut.
isc_boolean_t dns_rdataclass_ismeta (dns_rdataclass_t rdclass)
 Return true iff the rdata class 'rdclass' is a meta-class like ANY or NONE.
isc_boolean_t dns_rdatatype_isdnssec (dns_rdatatype_t type)
 Return true iff 'type' is one of the DNSSEC rdata types that may exist alongside a CNAME record.
isc_boolean_t dns_rdatatype_iszonecutauth (dns_rdatatype_t type)
 Return true iff rdata of type 'type' is considered authoritative data (not glue) in the NSEC chain when it occurs in the parent zone at a zone cut.
isc_boolean_t dns_rdatatype_isknown (dns_rdatatype_t type)
 Return true iff the rdata type 'type' is known.
void dns_rdata_exists (dns_rdata_t *rdata, dns_rdatatype_t type)
void dns_rdata_notexist (dns_rdata_t *rdata, dns_rdatatype_t type)
void dns_rdata_deleterrset (dns_rdata_t *rdata, dns_rdatatype_t type)
void dns_rdata_makedelete (dns_rdata_t *rdata)
const char * dns_rdata_updateop (dns_rdata_t *rdata, dns_section_t section)

Variables

static const char hexdigits [] = "0123456789abcdef"
static const char decdigits [] = "0123456789"
static const char atob_digits [86]


Detailed Description

Definition in file rdata.c.


Define Documentation

#define RETERR (  ) 

Value:

do { \
                isc_result_t _r = (x); \
                if (_r != ISC_R_SUCCESS) \
                        return (_r); \
        } while (0)

Definition at line 54 of file rdata.c.

#define RETTOK (  ) 

Value:

do { \
                isc_result_t _r = (x); \
                if (_r != ISC_R_SUCCESS) { \
                        isc_lex_ungettoken(lexer, &token); \
                        return (_r); \
                } \
        } while (0)

Definition at line 61 of file rdata.c.

Referenced by fromtext_afsdb(), fromtext_any_tsig(), fromtext_caa(), fromtext_cdnskey(), fromtext_cds(), fromtext_cert(), fromtext_ch_a(), fromtext_cname(), fromtext_dlv(), fromtext_dname(), fromtext_dnskey(), fromtext_ds(), fromtext_gpos(), fromtext_hinfo(), fromtext_hip(), fromtext_hs_a(), fromtext_in_a(), fromtext_in_a6(), fromtext_in_aaaa(), fromtext_in_apl(), fromtext_in_kx(), fromtext_in_nsap(), fromtext_in_nsap_ptr(), fromtext_in_px(), fromtext_in_srv(), fromtext_in_wks(), fromtext_ipseckey(), fromtext_isdn(), fromtext_key(), fromtext_keydata(), fromtext_l32(), fromtext_l64(), fromtext_loc(), fromtext_lp(), fromtext_mb(), fromtext_md(), fromtext_mf(), fromtext_mg(), fromtext_minfo(), fromtext_mr(), fromtext_mx(), fromtext_naptr(), fromtext_nid(), fromtext_ns(), fromtext_nsec(), fromtext_nsec3(), fromtext_nsec3param(), fromtext_nxt(), fromtext_ptr(), fromtext_rp(), fromtext_rrsig(), fromtext_rt(), fromtext_sig(), fromtext_soa(), fromtext_spf(), fromtext_sshfp(), fromtext_tkey(), fromtext_tlsa(), fromtext_txt(), fromtext_uri(), and fromtext_x25().

#define DNS_AS_STR (  )     ((t).value.as_textregion.base)

Definition at line 70 of file rdata.c.

#define ARGS_FROMTEXT

Value:

int rdclass, dns_rdatatype_t type, \
                        isc_lex_t *lexer, dns_name_t *origin, \
                        unsigned int options, isc_buffer_t *target, \
                        dns_rdatacallbacks_t *callbacks

Definition at line 72 of file rdata.c.

#define ARGS_TOTEXT

Value:

dns_rdata_t *rdata, dns_rdata_textctx_t *tctx, \
                        isc_buffer_t *target

Definition at line 77 of file rdata.c.

#define ARGS_FROMWIRE

Value:

int rdclass, dns_rdatatype_t type, \
                        isc_buffer_t *source, dns_decompress_t *dctx, \
                        unsigned int options, isc_buffer_t *target

Definition at line 80 of file rdata.c.

#define ARGS_TOWIRE

Value:

dns_rdata_t *rdata, dns_compress_t *cctx, \
                        isc_buffer_t *target

Definition at line 84 of file rdata.c.

#define ARGS_COMPARE   const dns_rdata_t *rdata1, const dns_rdata_t *rdata2

Definition at line 87 of file rdata.c.

#define ARGS_FROMSTRUCT

Value:

int rdclass, dns_rdatatype_t type, \
                        void *source, isc_buffer_t *target

Definition at line 89 of file rdata.c.

#define ARGS_TOSTRUCT   dns_rdata_t *rdata, void *target, isc_mem_t *mctx

Definition at line 92 of file rdata.c.

#define ARGS_FREESTRUCT   void *source

Definition at line 94 of file rdata.c.

#define ARGS_ADDLDATA

Value:

Definition at line 96 of file rdata.c.

#define ARGS_DIGEST   dns_rdata_t *rdata, dns_digestfunc_t digest, void *arg

Definition at line 99 of file rdata.c.

#define ARGS_CHECKOWNER

Value:

Definition at line 101 of file rdata.c.

#define ARGS_CHECKNAMES   dns_rdata_t *rdata, dns_name_t *owner, dns_name_t *bad

Definition at line 104 of file rdata.c.

#define NS_INT16SZ   2

INT16 Size.

Definition at line 223 of file rdata.c.

#define NS_LOCATORSZ   8

IPv6 Address Size.

Definition at line 225 of file rdata.c.

Referenced by fromtext_l64(), fromtext_nid(), and locator_pton().

#define META   0x0001

Definition at line 333 of file rdata.c.

#define RESERVED   0x0002

Definition at line 334 of file rdata.c.

#define Ceor   state->Ceor

Definition at line 1636 of file rdata.c.

Referenced by atob_tobuffer(), btoa_totext(), byte_btoa(), and putbyte().

#define Csum   state->Csum

Definition at line 1637 of file rdata.c.

Referenced by atob_tobuffer(), btoa_totext(), byte_btoa(), and putbyte().

#define Crot   state->Crot

Definition at line 1638 of file rdata.c.

Referenced by atob_tobuffer(), btoa_totext(), byte_btoa(), and putbyte().

#define word   state->word

Definition at line 1639 of file rdata.c.

Referenced by atob_tobuffer(), btoa_totext(), byte_atob(), byte_btoa(), do_next_command(), evaluate_checknames(), evaluate_class(), evaluate_local(), evaluate_prereq(), evaluate_realm(), evaluate_server(), evaluate_ttl(), evaluate_update(), evaluate_zone(), make_prereq(), parse_name(), and update_addordelete().

#define bcount   state->bcount

Definition at line 1640 of file rdata.c.

Referenced by atob_tobuffer(), btoa_totext(), byte_atob(), byte_btoa(), and runs().

#define times85 (  )     ((((((x<<2)+x)<<2)+x)<<2)+x)

Definition at line 1642 of file rdata.c.

Referenced by byte_atob().


Typedef Documentation

typedef struct dns_rdata_textctx dns_rdata_textctx_t


Function Documentation

static isc_result_t txt_totext ( isc_region_t source,
isc_boolean_t  quote,
isc_buffer_t target 
) [static]

Definition at line 1130 of file rdata.c.

References isc_region::base, isc_buffer_add, isc_buffer_availableregion, ISC_R_NOSPACE, ISC_R_SUCCESS, isc_region_consume, ISC_TRUE, isc_region::length, and REQUIRE.

Referenced by totext_caa(), totext_gpos(), totext_hinfo(), totext_isdn(), totext_naptr(), totext_spf(), totext_txt(), and totext_x25().

static isc_result_t txt_fromtext ( isc_textregion_t source,
isc_buffer_t target 
) [static]

Definition at line 1198 of file rdata.c.

References isc_region::base, isc_textregion::base, decvalue(), DNS_R_SYNTAX, isc_buffer_add, isc_buffer_availableregion, ISC_FALSE, ISC_R_NOSPACE, ISC_R_SUCCESS, ISC_TRUE, isc_region::length, isc_textregion::length, and s.

Referenced by fromtext_gpos(), fromtext_hinfo(), fromtext_isdn(), fromtext_naptr(), fromtext_spf(), fromtext_txt(), and fromtext_x25().

static isc_result_t txt_fromwire ( isc_buffer_t source,
isc_buffer_t target 
) [static]

Definition at line 1264 of file rdata.c.

References isc_region::base, isc_buffer_activeregion, isc_buffer_add, isc_buffer_availableregion, isc_buffer_forward, ISC_R_NOSPACE, ISC_R_SUCCESS, ISC_R_UNEXPECTEDEND, and isc_region::length.

Referenced by fromwire_gpos(), fromwire_hinfo(), fromwire_isdn(), fromwire_naptr(), fromwire_spf(), fromwire_txt(), and fromwire_x25().

static isc_result_t multitxt_totext ( isc_region_t source,
isc_buffer_t target 
) [static]

Definition at line 1291 of file rdata.c.

References isc_region::base, isc_buffer_add, isc_buffer_availableregion, ISC_R_NOSPACE, ISC_R_SUCCESS, isc_region_consume, and isc_region::length.

Referenced by totext_caa(), and totext_uri().

static isc_result_t multitxt_fromtext ( isc_textregion_t source,
isc_buffer_t target 
) [static]

Definition at line 1346 of file rdata.c.

References isc_region::base, isc_textregion::base, decvalue(), DNS_R_SYNTAX, isc_buffer_add, isc_buffer_availableregion, ISC_FALSE, ISC_R_NOSPACE, ISC_R_SUCCESS, ISC_TRUE, isc_region::length, isc_textregion::length, and s.

Referenced by fromtext_caa(), and fromtext_uri().

static isc_boolean_t name_prefix ( dns_name_t name,
dns_name_t origin,
dns_name_t target 
) [static]

Definition at line 1406 of file rdata.c.

References dns_name_caseequal(), dns_name_compare(), dns_name_countlabels(), dns_name_getlabelsequence(), dns_name_issubdomain(), dns_rootname, ISC_FALSE, and ISC_TRUE.

Referenced by totext_afsdb(), totext_any_tsig(), totext_ch_a(), totext_cname(), totext_dname(), totext_in_a6(), totext_in_kx(), totext_in_nsap_ptr(), totext_in_px(), totext_in_srv(), totext_lp(), totext_mb(), totext_md(), totext_mf(), totext_mg(), totext_minfo(), totext_mr(), totext_mx(), totext_naptr(), totext_ns(), totext_nxt(), totext_ptr(), totext_rp(), totext_rt(), totext_sig(), totext_soa(), and totext_tkey().

static unsigned int name_length ( dns_name_t name  )  [static]

Definition at line 1125 of file rdata.c.

References dns_name::length.

static isc_result_t str_totext ( const char *  source,
isc_buffer_t target 
) [static]

Definition at line 1438 of file rdata.c.

References isc_region::base, isc_buffer_add, isc_buffer_availableregion, ISC_R_NOSPACE, ISC_R_SUCCESS, and isc_region::length.

static isc_result_t inet_totext ( int  af,
isc_region_t src,
isc_buffer_t target 
) [static]

Definition at line 1454 of file rdata.c.

References isc_region::base, isc_buffer_availablelength, isc_buffer_putstr, ISC_R_NOSPACE, and ISC_R_SUCCESS.

Referenced by totext_hs_a(), totext_in_a(), totext_in_a6(), totext_in_aaaa(), totext_in_apl(), totext_in_wks(), totext_ipseckey(), and totext_l32().

static isc_boolean_t buffer_empty ( isc_buffer_t source  )  [static]

Definition at line 1467 of file rdata.c.

References isc_buffer::active, isc_buffer::current, ISC_FALSE, and ISC_TRUE.

Referenced by dns_rdata_fromwire(), fromwire_isdn(), fromwire_spf(), and fromwire_txt().

static void buffer_fromregion ( isc_buffer_t buffer,
isc_region_t region 
) [static]

Definition at line 1472 of file rdata.c.

References isc_region::base, isc_buffer_add, isc_buffer_init, isc_buffer_setactive, and isc_region::length.

Referenced by fromtext_afsdb(), fromtext_any_tsig(), fromtext_ch_a(), fromtext_cname(), fromtext_dname(), fromtext_hip(), fromtext_in_a6(), fromtext_in_kx(), fromtext_in_nsap_ptr(), fromtext_in_px(), fromtext_in_srv(), fromtext_ipseckey(), fromtext_lp(), fromtext_mb(), fromtext_md(), fromtext_mf(), fromtext_mg(), fromtext_minfo(), fromtext_mr(), fromtext_mx(), fromtext_naptr(), fromtext_ns(), fromtext_nsec(), fromtext_nxt(), fromtext_ptr(), fromtext_rp(), fromtext_rrsig(), fromtext_rt(), fromtext_sig(), fromtext_soa(), and fromtext_tkey().

static isc_result_t uint32_tobuffer ( isc_uint32_t  value,
isc_buffer_t target 
) [static]

Definition at line 1479 of file rdata.c.

References isc_buffer_availableregion, isc_buffer_putuint32, ISC_R_NOSPACE, ISC_R_SUCCESS, and isc_region::length.

Referenced by fromstruct_any_tsig(), fromstruct_hs_a(), fromstruct_in_a(), fromstruct_in_wks(), fromstruct_ipseckey(), fromstruct_keydata(), fromstruct_l32(), fromstruct_loc(), fromstruct_rrsig(), fromstruct_sig(), fromstruct_soa(), fromstruct_tkey(), fromtext_any_tsig(), fromtext_keydata(), fromtext_loc(), fromtext_rrsig(), fromtext_sig(), fromtext_soa(), and fromtext_tkey().

static isc_result_t uint16_tobuffer ( isc_uint32_t  value,
isc_buffer_t target 
) [static]

Definition at line 1490 of file rdata.c.

References isc_buffer_availableregion, isc_buffer_putuint16, ISC_R_NOSPACE, ISC_R_RANGE, ISC_R_SUCCESS, and isc_region::length.

Referenced by fromstruct_afsdb(), fromstruct_any_tsig(), fromstruct_cdnskey(), fromstruct_cds(), fromstruct_cert(), fromstruct_ch_a(), fromstruct_dlv(), fromstruct_dnskey(), fromstruct_ds(), fromstruct_hip(), fromstruct_in_kx(), fromstruct_in_px(), fromstruct_in_srv(), fromstruct_key(), fromstruct_keydata(), fromstruct_l32(), fromstruct_l64(), fromstruct_lp(), fromstruct_mx(), fromstruct_naptr(), fromstruct_nid(), fromstruct_nsec3(), fromstruct_nsec3param(), fromstruct_rrsig(), fromstruct_rt(), fromstruct_sig(), fromstruct_tkey(), fromstruct_uri(), fromtext_afsdb(), fromtext_any_tsig(), fromtext_cdnskey(), fromtext_cds(), fromtext_cert(), fromtext_ch_a(), fromtext_dlv(), fromtext_dnskey(), fromtext_ds(), fromtext_hip(), fromtext_in_apl(), fromtext_in_kx(), fromtext_in_px(), fromtext_in_srv(), fromtext_key(), fromtext_keydata(), fromtext_l32(), fromtext_l64(), fromtext_lp(), fromtext_mx(), fromtext_naptr(), fromtext_nid(), fromtext_nsec3(), fromtext_nsec3param(), fromtext_rrsig(), fromtext_rt(), fromtext_sig(), fromtext_tkey(), and fromtext_uri().

static isc_result_t uint8_tobuffer ( isc_uint32_t  value,
isc_buffer_t target 
) [static]

Definition at line 1503 of file rdata.c.

References isc_buffer_availableregion, isc_buffer_putuint8, ISC_R_NOSPACE, ISC_R_RANGE, ISC_R_SUCCESS, and isc_region::length.

Referenced by fromstruct_caa(), fromstruct_cdnskey(), fromstruct_cds(), fromstruct_cert(), fromstruct_dlv(), fromstruct_dnskey(), fromstruct_ds(), fromstruct_gpos(), fromstruct_hinfo(), fromstruct_hip(), fromstruct_in_a6(), fromstruct_in_wks(), fromstruct_ipseckey(), fromstruct_isdn(), fromstruct_key(), fromstruct_keydata(), fromstruct_loc(), fromstruct_naptr(), fromstruct_nsec3(), fromstruct_nsec3param(), fromstruct_rrsig(), fromstruct_sig(), fromstruct_sshfp(), fromstruct_tlsa(), fromstruct_x25(), fromtext_caa(), fromtext_dlv(), fromtext_hip(), fromtext_in_apl(), fromtext_in_wks(), fromtext_ipseckey(), fromtext_nsec(), fromtext_nsec3(), fromtext_nsec3param(), fromtext_sshfp(), and fromtext_tlsa().

static isc_result_t name_tobuffer ( dns_name_t name,
isc_buffer_t target 
) [static]

Definition at line 1516 of file rdata.c.

References dns_name_toregion(), isc_buffer_copyregion(), and r.

Referenced by fromstruct_any_tsig(), fromstruct_rrsig(), fromstruct_sig(), and fromstruct_tkey().

static isc_uint32_t uint32_fromregion ( isc_region_t region  )  [static]

Definition at line 1523 of file rdata.c.

References isc_region::base, isc_region::length, and REQUIRE.

Referenced by fromwire_loc(), tostruct_hs_a(), tostruct_in_a(), tostruct_in_wks(), tostruct_ipseckey(), tostruct_keydata(), tostruct_l32(), tostruct_loc(), tostruct_rrsig(), tostruct_sig(), tostruct_soa(), tostruct_tkey(), totext_keydata(), totext_loc(), totext_rrsig(), totext_sig(), totext_soa(), and totext_tkey().

static isc_uint16_t uint16_fromregion ( isc_region_t region  )  [static]

Definition at line 1543 of file rdata.c.

References isc_region::base, isc_region::length, and REQUIRE.

Referenced by casecompare_hip(), covers_rrsig(), covers_sig(), dns_rdata_opt_current(), dns_rdata_opt_next(), fromstruct_opt(), fromwire_any_tsig(), fromwire_hip(), fromwire_in_apl(), fromwire_opt(), fromwire_tkey(), tostruct_afsdb(), tostruct_any_tsig(), tostruct_cdnskey(), tostruct_cds(), tostruct_cert(), tostruct_ch_a(), tostruct_dlv(), tostruct_dnskey(), tostruct_ds(), tostruct_hip(), tostruct_in_kx(), tostruct_in_px(), tostruct_in_srv(), tostruct_key(), tostruct_keydata(), tostruct_l32(), tostruct_l64(), tostruct_lp(), tostruct_mx(), tostruct_naptr(), tostruct_nid(), tostruct_rrsig(), tostruct_rt(), tostruct_sig(), tostruct_tkey(), tostruct_uri(), totext_afsdb(), totext_any_tsig(), totext_cdnskey(), totext_cds(), totext_cert(), totext_ch_a(), totext_dlv(), totext_dnskey(), totext_ds(), totext_hip(), totext_in_apl(), totext_in_kx(), totext_in_px(), totext_in_srv(), totext_key(), totext_keydata(), totext_l32(), totext_l64(), totext_lp(), totext_mx(), totext_naptr(), totext_nid(), totext_nsec3(), totext_nsec3param(), totext_opt(), totext_rrsig(), totext_rt(), totext_sig(), totext_tkey(), totext_uri(), and uint16_consume_fromregion().

static isc_uint8_t uint8_fromregion ( isc_region_t region  )  [static]

Definition at line 1551 of file rdata.c.

References isc_region::base, isc_region::length, and REQUIRE.

Referenced by casecompare_hip(), checknames_in_a6(), dns_rdata_txt_current(), dns_rdata_txt_next(), fromstruct_spf(), fromstruct_txt(), fromwire_hip(), fromwire_opt(), tostruct_caa(), tostruct_cdnskey(), tostruct_cds(), tostruct_cert(), tostruct_dlv(), tostruct_dnskey(), tostruct_ds(), tostruct_gpos(), tostruct_hinfo(), tostruct_hip(), tostruct_in_a6(), tostruct_in_wks(), tostruct_ipseckey(), tostruct_isdn(), tostruct_key(), tostruct_keydata(), tostruct_loc(), tostruct_naptr(), tostruct_rrsig(), tostruct_sig(), tostruct_sshfp(), tostruct_tlsa(), tostruct_x25(), totext_cds(), totext_dlv(), totext_ds(), totext_hip(), totext_in_wks(), totext_ipseckey(), totext_nsec3(), totext_nsec3param(), totext_sshfp(), totext_tlsa(), and uint8_consume_fromregion().

static isc_uint8_t uint8_consume_fromregion ( isc_region_t region  )  [static]

Definition at line 1559 of file rdata.c.

References isc_region_consume, r, and uint8_fromregion().

Referenced by tostruct_nsec3(), tostruct_nsec3param(), and totext_caa().

static isc_result_t mem_tobuffer ( isc_buffer_t target,
void *  base,
unsigned int  length 
) [static]

Definition at line 1567 of file rdata.c.

References isc_region::base, isc_buffer_add, isc_buffer_availableregion, ISC_R_NOSPACE, ISC_R_SUCCESS, and isc_region::length.

static int hexvalue ( char  value  )  [static]

Definition at line 1580 of file rdata.c.

References s.

Referenced by fromtext_in_nsap().

static int decvalue ( char  value  )  [static]

Definition at line 1596 of file rdata.c.

References s.

Referenced by fromtext_loc(), multitxt_fromtext(), and txt_fromtext().

static isc_result_t btoa_totext ( unsigned char *  inbuf,
int  inbuflen,
isc_buffer_t target 
) [static]

Definition at line 1857 of file rdata.c.

References bcount, byte_btoa(), Ceor, Crot, Csum, RETERR, str_totext(), and word.

Referenced by totext_unspec().

static isc_result_t atob_tobuffer ( isc_lex_t lexer,
isc_buffer_t target 
) [static]

Definition at line 1727 of file rdata.c.

References isc_tokenvalue_t::as_textregion, isc_tokenvalue_t::as_ulong, isc_textregion::base, bcount, byte_atob(), Ceor, Crot, Csum, DNS_AS_STR, DNS_R_BADCKSUM, DNS_R_SYNTAX, isc_buffer_subtract, ISC_FALSE, isc_lex_getmastertoken(), ISC_R_SUCCESS, isc_textregion_consume, isc_tokentype_number, isc_tokentype_string, isc_textregion::length, RETERR, isc_token::value, and word.

Referenced by fromtext_unspec().

static void default_fromtext_callback ( dns_rdatacallbacks_t callbacks,
const char *  fmt,
  ... 
) [static]

Definition at line 1879 of file rdata.c.

References UNUSED.

Referenced by dns_rdata_fromtext().

static void fromtext_error ( void(*)(dns_rdatacallbacks_t *, const char *,...)  callback,
dns_rdatacallbacks_t callbacks,
const char *  name,
unsigned long  line,
isc_token_t token,
isc_result_t  result 
) [static]

Definition at line 1939 of file rdata.c.

References isc_tokenvalue_t::as_ulong, DNS_AS_STR, dns_result_totext(), isc_tokentype_eof, isc_tokentype_eol, isc_tokentype_number, isc_tokentype_qstring, isc_tokentype_string, isc_token::type, and isc_token::value.

Referenced by dns_rdata_fromtext().

static void fromtext_warneof ( isc_lex_t lexer,
dns_rdatacallbacks_t callbacks 
) [static]

Definition at line 1893 of file rdata.c.

References isc_lex_getsourceline(), isc_lex_getsourcename(), isc_lex_isfile(), and dns_rdatacallbacks::warn.

Referenced by dns_rdata_fromtext().

static isc_result_t rdata_totext ( dns_rdata_t rdata,
dns_rdata_textctx_t tctx,
isc_buffer_t target 
) [static]

Definition at line 835 of file rdata.c.

References dns_name_isabsolute(), DNS_RDATA_UPDATE, dns_rdata::flags, INSIST, ISC_FALSE, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, ISC_TRUE, dns_rdata::length, dns_rdata_textctx::origin, REQUIRE, and unknown_totext().

Referenced by dns_rdata_tofmttext(), and dns_rdata_totext().

static void warn_badname ( dns_name_t name,
isc_lex_t lexer,
dns_rdatacallbacks_t callbacks 
) [static]

Definition at line 1921 of file rdata.c.

References dns_name_format(), DNS_NAME_FORMATSIZE, DNS_R_BADNAME, dns_result_totext(), isc_lex_getsourceline(), isc_lex_getsourcename(), namebuf, and dns_rdatacallbacks::warn.

Referenced by fromtext_afsdb(), fromtext_ch_a(), fromtext_in_a6(), fromtext_in_srv(), fromtext_minfo(), fromtext_mx(), fromtext_ns(), fromtext_ptr(), fromtext_rp(), fromtext_rt(), and fromtext_soa().

static void warn_badmx ( isc_token_t token,
isc_lex_t lexer,
dns_rdatacallbacks_t callbacks 
) [static]

Definition at line 1905 of file rdata.c.

References DNS_AS_STR, DNS_R_MXISADDRESS, dns_result_totext(), isc_lex_getsourceline(), isc_lex_getsourcename(), and dns_rdatacallbacks::warn.

Referenced by fromtext_mx().

static isc_uint16_t uint16_consume_fromregion ( isc_region_t region  )  [static]

Definition at line 1535 of file rdata.c.

References isc_region_consume, r, and uint16_fromregion().

Referenced by tostruct_nsec3(), and tostruct_nsec3param().

static isc_result_t unknown_totext ( dns_rdata_t rdata,
dns_rdata_textctx_t tctx,
isc_buffer_t target 
) [static]

Definition at line 793 of file rdata.c.

References dns_rdata_toregion(), DNS_STYLEFLAG_MULTILINE, dns_rdata_textctx::flags, INSIST, isc_hex_totext(), ISC_R_SUCCESS, dns_rdata_textctx::linebreak, str_totext(), and dns_rdata_textctx::width.

Referenced by rdata_totext(), totext_keydata(), and totext_null().

static int locator_pton ( const char *  src,
unsigned char *  dst 
) [inline, static]

convert presentation level address to network order binary form.

Returns:
1 if `src' is a valid [RFC1884 2.2] address, else 0.
Note:
(1) does not touch `dst' unless it's returning 1.

Definition at line 235 of file rdata.c.

References NS_INT16SZ, and NS_LOCATORSZ.

Referenced by fromtext_l64(), and fromtext_nid().

static int getquad ( const void *  src,
struct in_addr *  dst,
isc_lex_t lexer,
dns_rdatacallbacks_t callbacks 
) [inline, static]

Definition at line 287 of file rdata.c.

References inet_aton, isc_lex_getsourceline(), isc_lex_getsourcename(), and dns_rdatacallbacks::warn.

Referenced by fromtext_hs_a(), fromtext_in_a(), fromtext_in_wks(), fromtext_ipseckey(), and fromtext_l32().

static isc_result_t name_duporclone ( dns_name_t source,
isc_mem_t mctx,
dns_name_t target 
) [inline, static]

Definition at line 307 of file rdata.c.

References dns_name_clone(), dns_name_dup(), and ISC_R_SUCCESS.

Referenced by tostruct_afsdb(), tostruct_any_tsig(), tostruct_ch_a(), tostruct_cname(), tostruct_dname(), tostruct_in_a6(), tostruct_in_kx(), tostruct_in_nsap_ptr(), tostruct_in_px(), tostruct_in_srv(), tostruct_ipseckey(), tostruct_lp(), tostruct_mb(), tostruct_md(), tostruct_mf(), tostruct_mg(), tostruct_minfo(), tostruct_mr(), tostruct_mx(), tostruct_naptr(), tostruct_ns(), tostruct_nsec(), tostruct_nxt(), tostruct_ptr(), tostruct_rp(), tostruct_rrsig(), tostruct_rt(), tostruct_sig(), tostruct_soa(), and tostruct_tkey().

static void* mem_maybedup ( isc_mem_t mctx,
void *  source,
size_t  length 
) [inline, static]

Definition at line 316 of file rdata.c.

References isc_mem_allocate.

Referenced by tostruct_any_tsig(), tostruct_caa(), tostruct_cdnskey(), tostruct_cds(), tostruct_cert(), tostruct_dlv(), tostruct_dnskey(), tostruct_ds(), tostruct_gpos(), tostruct_hinfo(), tostruct_hip(), tostruct_in_apl(), tostruct_in_dhcid(), tostruct_in_nsap(), tostruct_in_wks(), tostruct_ipseckey(), tostruct_isdn(), tostruct_key(), tostruct_keydata(), tostruct_naptr(), tostruct_nsec(), tostruct_nsec3(), tostruct_nsec3param(), tostruct_null(), tostruct_nxt(), tostruct_openpgpkey(), tostruct_opt(), tostruct_rrsig(), tostruct_sig(), tostruct_spf(), tostruct_sshfp(), tostruct_tkey(), tostruct_tlsa(), tostruct_txt(), tostruct_unspec(), tostruct_uri(), and tostruct_x25().

void dns_rdata_init ( dns_rdata_t rdata  ) 

Make 'rdata' empty.

Requires: 'rdata' is a valid rdata (i.e. not NULL, points to a struct dns_rdata)

Definition at line 341 of file rdata.c.

References dns_rdata::data, dns_rdata::flags, ISC_LINK_INIT, dns_rdata::length, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by add_nsec(), addoptout(), ATF_TC_BODY(), check_mx(), configure_staticstub_serveraddrs(), configure_staticstub_servernames(), copy_name(), dns_client_updaterec(), dns_difftuple_create(), dns_dnssec_sign(), dns_message_pseudosectiontotext(), dns_message_setquerytsig(), dns_nsec_build(), dns_rdataslab_fromrdataset(), dns_rdataslab_merge(), dns_rriterator_init(), dns_sdb_putrdata(), dns_sdlz_putrr(), dns_tkey_processquery(), emit(), fill_array(), integrity_checks(), journal_open(), load_raw(), load_text(), loadds(), loadkey(), log_rr(), main(), make_nsec3(), make_prereq(), make_signing(), matchkey(), newrdata(), notify_createmessage(), nsec3clean(), process_opt(), process_soa(), query_addnxrrsetnsec(), query_dns64(), query_filter64(), rdataset_to_sortedarray(), recvsoa(), resolveaddr_done(), restore_nsec3param(), sendstream(), towiresorted(), tuple2msgname(), update_addordelete(), writeset(), zone_count_ns_rr(), and zone_load_soa_rr().

void dns_rdata_reset ( dns_rdata_t rdata  ) 

Make 'rdata' empty.

Requires:

Definition at line 355 of file rdata.c.

References dns_rdata::data, DNS_RDATA_VALIDFLAGS, dns_rdata::flags, ISC_LINK_LINKED, dns_rdata::length, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by add_nsec3param_records(), add_sigs(), ATF_TC_BODY(), chase_cnamechain(), check_address_records(), check_ds(), check_for_more_data(), check_nsec3param(), checkandaddsoa(), checknamessection(), checkns(), client_resfind(), copy_name(), copy_ptr_targets(), copy_rdataset(), create_keydata(), del_keysigs(), delete_keydata(), detailsection(), dlv_algorithm_supported(), dlv_validatezonekey(), dns_dnssec_findzonekeys2(), dns_dnssec_keylistfromrdataset(), dns_dnssec_signs(), dns_message_checksig(), dns_ncache_current(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_ncache_towire(), dns_nsec3_addnsec3(), dns_nsec3_delnsec3(), dns_nsec3param_deletechains(), dns_private_totext(), dns_rdataset_additionaldata(), dns_rdataslab_equalx(), dns_rdataslab_merge(), dns_rdataslab_subtract(), dns_root_checkhints(), dns_rpz_decode_cname(), dns_rriterator_current(), dns_tsig_verify(), fctx_getaddresses(), fill_array(), find_nsec3(), fixup_nsec3param(), followup_lookup(), generate(), get_dst_key(), import_rdataset(), in_rootns(), inrrset(), integrity_checks(), is_answeraddress_allowed(), isdelegation(), isselfsigned(), keydone(), keyfetch_done(), keyfromds(), load_raw(), load_secroots(), loadds(), lookup_find(), make_dnskey(), mark_active_keys(), matchkey(), matchparams(), minimal_update(), mkey_dumpzone(), need_nsec_chain(), normalize_key(), printsection(), process_dhtkey(), publish_key(), query_dns64(), query_filter64(), query_find(), query_findclosestnsec3(), rdata_in_slab(), read_one_rr(), resume_signingwithkey(), revocable(), rpz_rewrite(), rrsig_fromchildzone(), save_nsrrset(), setnsec3parameters(), setresign(), setsoaserial(), short_answer(), sign_a_node(), signed_with_alg(), signed_with_key(), signset(), towiresorted(), tsig_verify_tcp(), updatesignwithkey(), validate(), validatezonekey(), verifyzone(), warnifallksk(), writeset(), zone_check_dnskeys(), zone_load_soa_rr(), zone_notify(), and zone_refreshkeys().

void dns_rdata_clone ( const dns_rdata_t src,
dns_rdata_t target 
)

Clone 'target' from 'src'.

Requires:

Definition at line 374 of file rdata.c.

References dns_rdata::data, DNS_RDATA_INITIALIZED, DNS_RDATA_VALIDFLAGS, dns_rdata::flags, dns_rdata::length, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by diff_tuple_tordataset(), dns_client_updaterec(), dns_difftuple_create(), isc__rdatalist_current(), log_rr(), nsec3clean(), and tuple2msgname().

int dns_rdata_compare ( const dns_rdata_t rdata1,
const dns_rdata_t rdata2 
)

Determine the relative ordering under the DNSSEC order relation of 'rdata1' and 'rdata2'.

Requires:

Returns:

Definition at line 397 of file rdata.c.

References dns_rdata::data, dns_rdata_toregion(), DNS_RDATA_VALIDFLAGS, ISC_FALSE, isc_region_compare(), dns_rdata::length, r1, r2, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by compare_rdata(), dns_diff_appendminimal(), dns_dnssec_sign(), dns_dnssec_verify3(), dns_rdataslab_equalx(), dns_rdataslab_subtract(), getsection(), inrrset(), keyfromds(), matchkey(), rdata_compare_wrapper(), rdata_in_slab(), rdata_order(), and verifynsec().

int dns_rdata_casecompare ( const dns_rdata_t rdata1,
const dns_rdata_t rdata2 
)

dns_rdata_casecompare() is similar to dns_rdata_compare() but also compares domain names case insensitively in known rdata types that are treated as opaque data by dns_rdata_compare().

Requires:

Returns:

Definition at line 428 of file rdata.c.

References dns_rdata::data, dns_rdata_toregion(), DNS_RDATA_VALIDFLAGS, ISC_FALSE, isc_region_compare(), dns_rdata::length, r1, r2, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by add_rr_prepare_action(), rr_equal_p(), rr_exists(), rrset_cleanup(), temp_check_rrset(), temp_order(), and zone_rrset_check_dup().

void dns_rdata_fromregion ( dns_rdata_t rdata,
dns_rdataclass_t  rdclass,
dns_rdatatype_t  type,
isc_region_t r 
)

Make 'rdata' refer to region 'r'.

Requires:

Definition at line 463 of file rdata.c.

References isc_region::base, dns_rdata::data, DNS_RDATA_INITIALIZED, DNS_RDATA_VALIDFLAGS, dns_rdata::flags, isc_region::length, dns_rdata::length, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by add_placeholder_nsec(), add_rdata_to_list(), configure_staticstub_serveraddrs(), configure_staticstub_servernames(), copy_name(), create_keydata(), dns_message_setquerytsig(), dns_ncache_current(), dns_ncache_getsigrdataset(), dns_nsec3_buildrdata(), dns_nsec_buildrdata(), dns_rdata_fromstruct(), dns_rdata_fromtext(), dns_rdata_fromwire(), dns_sdb_putrdata(), dns_tkey_builddhquery(), loadkey(), make_dnskey(), matchparams(), notify_createmessage(), parse_rdata(), process_dhtkey(), query_dns64(), query_filter64(), rdata_from_slab(), rdataset_current(), sendstream(), setnsec3parameters(), write_public_key(), and writeset().

void dns_rdata_toregion ( const dns_rdata_t rdata,
isc_region_t r 
)

Make 'r' refer to 'rdata'.

Definition at line 481 of file rdata.c.

References isc_region::base, dns_rdata::data, DNS_RDATA_VALIDFLAGS, dns_rdata::length, isc_region::length, and REQUIRE.

Referenced by add_rdata_to_list(), add_signing_records(), additionaldata_afsdb(), additionaldata_in_kx(), additionaldata_in_srv(), additionaldata_lp(), additionaldata_mb(), additionaldata_md(), additionaldata_mf(), additionaldata_mx(), additionaldata_naptr(), additionaldata_ns(), additionaldata_rt(), casecompare_hip(), casecompare_ipseckey(), casecompare_lp(), casecompare_nsec(), casecompare_openpgpkey(), casecompare_rrsig(), checknames_afsdb(), checknames_ch_a(), checknames_in_a6(), checknames_in_srv(), checknames_minfo(), checknames_mx(), checknames_ns(), checknames_ptr(), checknames_rp(), checknames_rt(), checknames_soa(), compare_afsdb(), compare_any_tsig(), compare_caa(), compare_cdnskey(), compare_cds(), compare_cert(), compare_ch_a(), compare_cname(), compare_dlv(), compare_dname(), compare_dnskey(), compare_ds(), compare_eui48(), compare_eui64(), compare_gpos(), compare_hinfo(), compare_hip(), compare_in_a(), compare_in_a6(), compare_in_aaaa(), compare_in_apl(), compare_in_dhcid(), compare_in_kx(), compare_in_nsap(), compare_in_nsap_ptr(), compare_in_px(), compare_in_srv(), compare_in_wks(), compare_ipseckey(), compare_isdn(), compare_key(), compare_keydata(), compare_l32(), compare_l64(), compare_loc(), compare_lp(), compare_mb(), compare_md(), compare_mf(), compare_mg(), compare_minfo(), compare_mr(), compare_mx(), compare_naptr(), compare_nid(), compare_ns(), compare_nsec(), compare_nsec3(), compare_nsec3param(), compare_null(), compare_nxt(), compare_openpgpkey(), compare_opt(), compare_ptr(), compare_rp(), compare_rrsig(), compare_rt(), compare_sig(), compare_soa(), compare_spf(), compare_sshfp(), compare_tkey(), compare_tlsa(), compare_txt(), compare_unspec(), compare_uri(), compare_x25(), compute_keytag(), configure_staticstub(), copy_name(), copy_rdataset(), covers_rrsig(), covers_sig(), digest_afsdb(), digest_caa(), digest_cdnskey(), digest_cds(), digest_cert(), digest_ch_a(), digest_cname(), digest_dlv(), digest_dname(), digest_dnskey(), digest_ds(), digest_eui48(), digest_eui64(), digest_gpos(), digest_hinfo(), digest_hip(), digest_hs_a(), digest_in_a(), digest_in_a6(), digest_in_aaaa(), digest_in_apl(), digest_in_dhcid(), digest_in_kx(), digest_in_nsap(), digest_in_nsap_ptr(), digest_in_px(), digest_in_srv(), digest_in_wks(), digest_ipseckey(), digest_isdn(), digest_key(), digest_keydata(), digest_l32(), digest_l64(), digest_loc(), digest_lp(), digest_mb(), digest_md(), digest_mf(), digest_mg(), digest_minfo(), digest_mr(), digest_mx(), digest_naptr(), digest_nid(), digest_ns(), digest_nsec(), digest_nsec3(), digest_nsec3param(), digest_null(), digest_nxt(), digest_openpgpkey(), digest_ptr(), digest_rp(), digest_rt(), digest_sig(), digest_soa(), digest_spf(), digest_sshfp(), digest_tlsa(), digest_txt(), digest_unspec(), digest_uri(), digest_x25(), dns_client_updaterec(), dns_dnssec_keyfromrdata(), dns_dnssec_verifymessage(), dns_ds_buildrdata(), dns_message_getquerytsig(), dns_rdata_casecompare(), dns_rdata_compare(), dns_rdata_digest(), dump_rdataset_raw(), fill_array(), is_glue(), mkey_dumpzone(), notify_createmessage(), tostruct_afsdb(), tostruct_any_tsig(), tostruct_caa(), tostruct_cdnskey(), tostruct_cds(), tostruct_cert(), tostruct_ch_a(), tostruct_cname(), tostruct_dlv(), tostruct_dname(), tostruct_dnskey(), tostruct_ds(), tostruct_gpos(), tostruct_hinfo(), tostruct_hip(), tostruct_hs_a(), tostruct_in_a(), tostruct_in_a6(), tostruct_in_aaaa(), tostruct_in_apl(), tostruct_in_dhcid(), tostruct_in_kx(), tostruct_in_nsap(), tostruct_in_nsap_ptr(), tostruct_in_px(), tostruct_in_srv(), tostruct_in_wks(), tostruct_ipseckey(), tostruct_isdn(), tostruct_key(), tostruct_keydata(), tostruct_l32(), tostruct_l64(), tostruct_loc(), tostruct_lp(), tostruct_mb(), tostruct_md(), tostruct_mf(), tostruct_mg(), tostruct_minfo(), tostruct_mr(), tostruct_mx(), tostruct_naptr(), tostruct_nid(), tostruct_ns(), tostruct_nsec(), tostruct_null(), tostruct_nxt(), tostruct_openpgpkey(), tostruct_opt(), tostruct_ptr(), tostruct_rp(), tostruct_rrsig(), tostruct_rt(), tostruct_sig(), tostruct_soa(), tostruct_spf(), tostruct_sshfp(), tostruct_tkey(), tostruct_tlsa(), tostruct_txt(), tostruct_unspec(), tostruct_uri(), tostruct_x25(), totext_afsdb(), totext_any_tsig(), totext_caa(), totext_cdnskey(), totext_cds(), totext_cert(), totext_ch_a(), totext_cname(), totext_dlv(), totext_dname(), totext_dnskey(), totext_ds(), totext_gpos(), totext_hinfo(), totext_hip(), totext_hs_a(), totext_in_a(), totext_in_a6(), totext_in_aaaa(), totext_in_apl(), totext_in_dhcid(), totext_in_kx(), totext_in_nsap(), totext_in_nsap_ptr(), totext_in_px(), totext_in_srv(), totext_in_wks(), totext_ipseckey(), totext_isdn(), totext_key(), totext_keydata(), totext_l32(), totext_l64(), totext_loc(), totext_lp(), totext_mb(), totext_md(), totext_mf(), totext_mg(), totext_minfo(), totext_mr(), totext_mx(), totext_naptr(), totext_nid(), totext_ns(), totext_nsec(), totext_nsec3(), totext_nsec3param(), totext_nxt(), totext_openpgpkey(), totext_opt(), totext_ptr(), totext_rp(), totext_rrsig(), totext_rt(), totext_sig(), totext_soa(), totext_spf(), totext_sshfp(), totext_tkey(), totext_tlsa(), totext_txt(), totext_uri(), totext_x25(), towire_afsdb(), towire_any_tsig(), towire_caa(), towire_cdnskey(), towire_cds(), towire_cert(), towire_ch_a(), towire_cname(), towire_dlv(), towire_dname(), towire_dnskey(), towire_ds(), towire_hip(), towire_in_a6(), towire_in_dhcid(), towire_in_kx(), towire_in_nsap_ptr(), towire_in_px(), towire_in_srv(), towire_in_wks(), towire_ipseckey(), towire_key(), towire_keydata(), towire_mb(), towire_md(), towire_mf(), towire_mg(), towire_minfo(), towire_mr(), towire_mx(), towire_naptr(), towire_ns(), towire_nsec(), towire_nsec3(), towire_nsec3param(), towire_nxt(), towire_openpgpkey(), towire_ptr(), towire_rp(), towire_rrsig(), towire_rt(), towire_sig(), towire_soa(), towire_sshfp(), towire_tkey(), towire_tlsa(), towire_uri(), unknown_totext(), and update_action().

isc_result_t dns_rdata_fromwire ( dns_rdata_t rdata,
dns_rdataclass_t  rdclass,
dns_rdatatype_t  type,
isc_buffer_t source,
dns_decompress_t dctx,
unsigned int  options,
isc_buffer_t target 
)

Copy the possibly-compressed rdata at source into the target region.

Notes:

'options' Requires:

Ensures, if result is success: Result:

Definition at line 492 of file rdata.c.

References isc_region::base, buffer_empty(), DNS_R_EXTRADATA, DNS_R_FORMERR, dns_rdata_fromregion(), DNS_RDATA_INITIALIZED, DNS_RDATA_MAXLENGTH, DNS_RDATA_VALIDFLAGS, INSIST, isc_buffer_activelength, isc_buffer_availablelength, isc_buffer_current, isc_buffer_forward, isc_buffer_putmem, isc_buffer_used, isc_buffer_usedlength, ISC_FALSE, ISC_R_NOSPACE, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, isc_region::length, and REQUIRE.

Referenced by ATF_TC_BODY(), dns_nsec3param_fromprivate(), getrdata(), load_raw(), rdata_validate(), and read_one_rr().

isc_result_t dns_rdata_towire ( dns_rdata_t rdata,
dns_compress_t cctx,
isc_buffer_t target 
)

Convert 'rdata' into wire format, compressing it as specified by the compression context 'cctx', and storing the result in 'target'.

Notes:

Requires: Ensures, if the result is success: Returns:

Definition at line 563 of file rdata.c.

References isc_region::base, dns_rdata::data, dns_compress_rollback(), DNS_RDATA_UPDATE, DNS_RDATA_VALIDFLAGS, dns_rdata::flags, INSIST, isc_buffer_add, isc_buffer_availableregion, ISC_FALSE, ISC_R_NOSPACE, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, isc_region::length, dns_rdata::length, REQUIRE, and isc_buffer::used.

Referenced by dns_ncache_towire(), and towiresorted().

static isc_result_t rdata_validate ( isc_buffer_t src,
isc_buffer_t dest,
dns_rdataclass_t  rdclass,
dns_rdatatype_t  type 
) [static]

Definition at line 608 of file rdata.c.

References dns_decompress_init(), dns_decompress_invalidate(), DNS_DECOMPRESS_NONE, dns_rdata_fromwire(), isc_buffer_setactive, and isc_buffer_usedlength.

Referenced by unknown_fromtext().

static isc_result_t unknown_fromtext ( dns_rdataclass_t  rdclass,
dns_rdatatype_t  type,
isc_lex_t lexer,
isc_mem_t mctx,
isc_buffer_t target 
) [static]

Definition at line 623 of file rdata.c.

References isc_tokenvalue_t::as_ulong, DNS_R_METATYPE, dns_rdatatype_isknown(), dns_rdatatype_ismeta(), isc_buffer_allocate(), isc_buffer_copyregion(), isc_buffer_free(), isc_buffer_usedlength, isc_buffer_usedregion, ISC_FALSE, isc_hex_tobuffer(), isc_lex_getmastertoken(), ISC_R_RANGE, ISC_R_SUCCESS, ISC_R_UNEXPECTEDEND, isc_tokentype_number, r, rdata_validate(), RETERR, and isc_token::value.

Referenced by dns_rdata_fromtext().

isc_result_t dns_rdata_fromtext ( dns_rdata_t rdata,
dns_rdataclass_t  rdclass,
dns_rdatatype_t  type,
isc_lex_t lexer,
dns_name_t origin,
unsigned int  options,
isc_mem_t mctx,
isc_buffer_t target,
dns_rdatacallbacks_t callbacks 
)

Convert the textual representation of a DNS rdata into uncompressed wire form stored in the target region. Tokens constituting the text of the rdata are taken from 'lexer'.

Notes:

'options' Requires:

Ensures, if result is success: Result:

Definition at line 669 of file rdata.c.

References isc_region::base, default_fromtext_callback(), DNS_AS_STR, dns_name_isabsolute(), DNS_R_EXTRATOKEN, dns_rdata_fromregion(), DNS_RDATA_INITIALIZED, DNS_RDATA_MAXLENGTH, DNS_RDATA_UNKNOWNESCAPE, DNS_RDATA_VALIDFLAGS, dns_rdatacallbacks::error, fromtext_error(), fromtext_warneof(), isc_buffer_used, isc_buffer_usedlength, ISC_FALSE, isc_lex_getmastertoken(), isc_lex_getsourceline(), isc_lex_getsourcename(), isc_lex_gettoken(), isc_lex_ungettoken(), ISC_LEXOPT_DNSMULTILINE, ISC_LEXOPT_EOF, ISC_LEXOPT_EOL, ISC_LEXOPT_ESCAPE, ISC_R_NOSPACE, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, isc_tokentype_eof, isc_tokentype_eol, isc_tokentype_number, isc_tokentype_qstring, isc_tokentype_string, ISC_TRUE, isc_region::length, REQUIRE, isc_token::type, unknown_fromtext(), and dns_rdatacallbacks::warn.

Referenced by dns_sdb_putrr(), dns_sdlz_putrr(), dst_key_read_public(), generate(), load_text(), and parse_rdata().

isc_result_t dns_rdata_totext ( dns_rdata_t rdata,
dns_name_t origin,
isc_buffer_t target 
)

Convert 'rdata' into text format, storing the result in 'target'. The text will consist of a single line, with fields separated by single spaces.

Notes:

Requires:

Ensures, if the result is success:

Returns:

Definition at line 862 of file rdata.c.

References DNS_RDATA_VALIDFLAGS, dns_rdata_textctx::flags, dns_rdata_textctx::linebreak, dns_rdata_textctx::origin, rdata_totext(), REQUIRE, and dns_rdata_textctx::width.

Referenced by dns_private_totext(), printa(), printrdata(), report(), say_message(), update_action(), verifyzone(), and write_public_key().

isc_result_t dns_rdata_tofmttext ( dns_rdata_t rdata,
dns_name_t origin,
unsigned int  flags,
unsigned int  width,
unsigned int  split_width,
const char *  linebreak,
isc_buffer_t target 
)

Like dns_rdata_totext, but do formatted output suitable for database dumps. This is intended for use by dns_db_dump(); library users are discouraged from calling it directly.

If (flags & DNS_STYLEFLAG_MULTILINE) != 0, attempt to stay within 'width' by breaking the text into multiple lines. The string 'linebreak' is inserted between lines, and parentheses are added when necessary. Because RRs contain unbreakable elements such as domain names whose length is variable, unpredictable, and potentially large, there is no guarantee that the lines will not exceed 'width' anyway.

If (flags & DNS_STYLEFLAG_MULTILINE) == 0, the rdata is always printed as a single line, and no parentheses are used. The 'width' and 'linebreak' arguments are ignored.

If (flags & DNS_STYLEFLAG_COMMENT) != 0, output explanatory comments next to things like the SOA timer fields. Some comments (e.g., the SOA ones) are only printed when multiline output is selected.

base64 rdata text (e.g., DNSKEY records) will be split into chunks of 'split_width' characters. If split_width == 0, the text will not be split at all. If split_width == UINT_MAX (0xffffffff), then it is undefined and falls back to the default value of 'width'

Definition at line 879 of file rdata.c.

References DNS_RDATA_VALIDFLAGS, DNS_STYLEFLAG_MULTILINE, dns_rdata_textctx::flags, dns_rdata_textctx::linebreak, dns_rdata_textctx::origin, rdata_totext(), REQUIRE, and dns_rdata_textctx::width.

Referenced by emit(), ncache_summary(), rdataset_totext(), and say_message().

isc_result_t dns_rdata_fromstruct ( dns_rdata_t rdata,
dns_rdataclass_t  rdclass,
dns_rdatatype_t  type,
void *  source,
isc_buffer_t target 
)

Convert the C structure representation of an rdata into uncompressed wire format in 'target'.

XXX Should we have a 'size' parameter as a sanity check on target?

Requires:

Ensures, if result is success: Result:

Definition at line 909 of file rdata.c.

References isc_region::base, dns_rdata_fromregion(), DNS_RDATA_INITIALIZED, DNS_RDATA_MAXLENGTH, DNS_RDATA_VALIDFLAGS, isc_buffer_used, isc_buffer_usedlength, ISC_FALSE, ISC_R_NOSPACE, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, isc_region::length, and REQUIRE.

Referenced by add_ns(), addnsec3param(), ATF_TC_BODY(), buildquery(), checkandaddsoa(), compute_tag(), create_keydata(), dns_dnssec_sign(), dns_dnssec_signmessage(), dns_ds_buildrdata(), dns_nsec3_addnsec3(), dns_nsec3_delnsec3(), dns_private_totext(), dns_soa_buildrdata(), dns_tkey_processquery(), dns_tsig_sign(), dns_view_untrust(), dstkey_fromconfig(), fixup_nsec3param(), insert_soa(), keyfetch_done(), make_nsec3(), minimal_update(), normalize_key(), resigned(), revocable(), and trust_key().

isc_result_t dns_rdata_tostruct ( dns_rdata_t rdata,
void *  target,
isc_mem_t mctx 
)

Convert an rdata into its C structure representation.

If 'mctx' is NULL then 'rdata' must persist while 'target' is being used.

If 'mctx' is non NULL then memory will be allocated if required.

Requires:

Result:

Definition at line 947 of file rdata.c.

References DNS_RDATA_VALIDFLAGS, ISC_FALSE, ISC_R_NOTIMPLEMENTED, and REQUIRE.

Referenced by add_signing_records(), ATF_TC_BODY(), chase_cnamechain(), check_ds(), check_for_more_data(), check_mx(), check_nsec3param(), check_tsig_error(), checkandaddsoa(), checkkey(), client_resfind(), cname_target(), copy_ptr_targets(), create_keydata(), del_keysigs(), del_sig(), del_sigs(), delete(), deletematchingnsec3(), dlv_algorithm_supported(), dlv_validatezonekey(), dname_target(), dns64_ttl(), dns_dnssec_signs(), dns_dnssec_verify3(), dns_dnssec_verifymessage(), dns_message_checksig(), dns_message_signer(), dns_ncache_current(), dns_ncache_getsigrdataset(), dns_nsec3_activex(), dns_nsec3_addnsec3s(), dns_nsec3_addnsec3sx(), dns_nsec3_delnsec3sx(), dns_nsec3_noexistnodata(), dns_nsec3_typepresent(), dns_nsec_noexistnodata(), dns_nsec_nseconly(), dns_nsec_typepresent(), dns_private_totext(), dns_root_checkhints(), dns_rpz_decode_cname(), dns_tkey_gssnegotiate(), dns_tkey_processdeleteresponse(), dns_tkey_processdhresponse(), dns_tkey_processgssresponse(), dns_tkey_processquery(), dns_tsig_sign(), dns_tsig_verify(), dns_update_signaturesinc(), dns_zone_notifyreceive(), dns_zonekey_iszonekey(), emit(), fctx_getaddresses(), find_nsec3(), findnoqname(), fixup_nsec3param(), followup_lookup(), get_iterations(), goodsig(), in_rootns(), innsec3params(), integrity_checks(), isdelegation(), isoptout(), isselfsigned(), keyfetch_done(), keyfromds(), load_secroots(), load_text(), lookup_find(), mark_active_keys(), match_nsec3(), matchparams(), minimal_update(), mkey_dumpzone(), need_nsec_chain(), normalize_key(), nsec3clean(), printsoa(), process_soa(), query_addnxrrsetnsec(), query_addsoa(), query_addwildcardproof(), query_find(), query_findclosestnsec3(), record_found(), recvsoa(), refresh_callback(), refresh_time(), replaces_p(), resign_fromlist(), resolveaddr_done(), resume_addnsec3chain(), revocable(), rpz_rewrite(), rrsig_fromchildzone(), save_nsrrset(), set_nsec3params(), set_target(), setnsec3parameters(), setresign(), signed_with_alg(), signed_with_key(), signset(), sync_secure_db(), tsig_verify_tcp(), update_action(), validate(), validatezonekey(), verifynsec(), verifynsec3(), verifyset(), verifyzone(), view_find(), warn_rfc1918(), warnifallksk(), zone_check_dnskeys(), zone_count_ns_rr(), zone_load_soa_rr(), zone_notify(), and zone_refreshkeys().

void dns_rdata_freestruct ( void *  source  ) 

Free dynamic memory attached to 'source' (if any).

Requires:

Definition at line 963 of file rdata.c.

References REQUIRE.

Referenced by chase_cnamechain(), check_for_more_data(), client_resfind(), cname_target(), copy_ptr_targets(), dname_target(), dns_dnssec_verify3(), dns_dnssec_verifymessage(), dns_message_checksig(), dns_message_signer(), dns_nsec3_typepresent(), dns_nsec_noexistnodata(), dns_nsec_typepresent(), dns_tkey_gssnegotiate(), dns_tkey_processdeleteresponse(), dns_tkey_processdhresponse(), dns_tkey_processgssresponse(), dns_tkey_processquery(), fctx_getaddresses(), followup_lookup(), lookup_find(), printsoa(), process_soa(), query_addwildcardproof(), query_find(), recvsoa(), resolveaddr_done(), rpz_rewrite(), set_nsec3params(), set_target(), signset(), tsig_verify_tcp(), verifyzone(), view_find(), and warnifallksk().

isc_result_t dns_rdata_additionaldata ( dns_rdata_t rdata,
dns_additionaldatafunc_t  add,
void *  arg 
)

Call 'add' for each name and type from 'rdata' which is subject to additional section processing.

Requires:

Ensures:

Returns:

Definition at line 971 of file rdata.c.

References DNS_RDATA_VALIDFLAGS, ISC_FALSE, ISC_R_NOTIMPLEMENTED, ISC_R_SUCCESS, and REQUIRE.

Referenced by dns_rdataset_additionaldata().

isc_result_t dns_rdata_digest ( dns_rdata_t rdata,
dns_digestfunc_t  digest,
void *  arg 
)

Send 'rdata' in DNSSEC canonical form to 'digest'.

Note:

Requires:

Ensures:

Returns:

Definition at line 996 of file rdata.c.

References dns_rdata_toregion(), DNS_RDATA_VALIDFLAGS, ISC_FALSE, ISC_R_NOTIMPLEMENTED, r, and REQUIRE.

Referenced by dns_dnssec_sign(), and dns_dnssec_verify3().

isc_boolean_t dns_rdata_checkowner ( dns_name_t name,
dns_rdataclass_t  rdclass,
dns_rdatatype_t  type,
isc_boolean_t  wildcard 
)

Definition at line 1020 of file rdata.c.

Referenced by checknamessection(), getsection(), load_text(), query_find(), and update_addordelete().

isc_boolean_t dns_rdata_checknames ( dns_rdata_t rdata,
dns_name_t owner,
dns_name_t bad 
)

Definition at line 1030 of file rdata.c.

Referenced by checknamessection(), and update_addordelete().

unsigned int dns_rdatatype_attributes ( dns_rdatatype_t  rdtype  ) 

Return attributes for the given type.

Requires:

Returns:

Definition at line 1039 of file rdata.c.

References DNS_RDATATYPEATTR_UNKNOWN.

Referenced by dns_rdatatype_atparent(), dns_rdatatype_isdnssec(), dns_rdatatype_isknown(), dns_rdatatype_ismeta(), dns_rdatatype_issingleton(), dns_rdatatype_iszonecutauth(), dns_rdatatype_notquestion(), and dns_rdatatype_questiononly().

isc_result_t dns_rdatatype_fromtext ( dns_rdatatype_t typep,
isc_textregion_t source 
)

Convert the text 'source' refers to into a DNS rdata type.

Requires:

Returns:

Definition at line 1046 of file rdata.c.

References isc_textregion::base, DNS_R_UNKNOWN, hash, ISC_R_SUCCESS, and isc_textregion::length.

Referenced by addlookup(), check_orderent(), check_update_policy(), configure_zone_ssutable(), dash_option(), dns_sdb_putrr(), dns_sdlz_putrr(), fromtext_nsec(), fromtext_nsec3(), fromtext_nxt(), fromtext_rrsig(), fromtext_sig(), generate(), load_text(), make_prereq(), ns_config_gettype(), parse_args(), testtype(), and update_addordelete().

isc_result_t dns_rdatatype_totext ( dns_rdatatype_t  type,
isc_buffer_t target 
)

Put a textual representation of type 'type' into 'target'.

Requires:

Ensures, if the result is success: Returns:

Definition at line 1087 of file rdata.c.

References str_totext().

Referenced by check_ttls(), dns_rdatatype_format(), make_log_buf(), ncache_summary(), question_totext(), rdataset_totext(), say_message(), totext_nsec(), totext_nsec3(), totext_nxt(), totext_rrsig(), totext_sig(), and type_format().

void dns_rdatatype_format ( dns_rdatatype_t  rdtype,
char *  array,
unsigned int  size 
)

Format a human-readable representation of the type 'rdtype' into the character array 'array', which is of size 'size'. The resulting string is guaranteed to be null-terminated.

Definition at line 1096 of file rdata.c.

References dns_rdatatype_totext(), isc_buffer_availablelength, isc_buffer_init, isc_buffer_putuint8, ISC_R_NOSPACE, and ISC_R_SUCCESS.

Referenced by add_bad(), answer_response(), cache_name(), deleterdataset(), detailsection(), diff_apply(), dns_badcache_print(), dns_sdlzssumatch(), dns_ssu_external_match(), dump_entry(), fctx_create(), is_answeraddress_allowed(), is_answertarget_allowed(), load_text(), log_fetch(), log_query(), log_queryerror(), noanswer_response(), ns_client_aclmsg(), ns_client_dumprecursing(), ns_server_zonestatus(), pre_parse_args(), printmessage(), printsection(), query_find(), rdatasetstats_dump(), rdtypestat_dump(), recv_done(), report(), resquery_response(), same_question(), trim_ns_ttl(), update_action(), validator_logcreate(), validator_logv(), view_find(), zone_postload(), and zone_rrset_check_dup().

static isc_result_t byte_atob ( int  c,
isc_buffer_t target,
struct state state 
) [static]

Definition at line 1654 of file rdata.c.

References bcount, DNS_R_SYNTAX, ISC_R_SUCCESS, putbyte(), RETERR, s, times85, and word.

Referenced by atob_tobuffer().

static isc_result_t putbyte ( int  c,
isc_buffer_t target,
struct state state 
) [static]

Definition at line 1692 of file rdata.c.

References isc_region::base, Ceor, Crot, Csum, isc_buffer_add, isc_buffer_availableregion, ISC_R_NOSPACE, ISC_R_SUCCESS, and isc_region::length.

Referenced by byte_atob().

static isc_result_t byte_btoa ( int  c,
isc_buffer_t target,
struct state state 
) [static]

Definition at line 1791 of file rdata.c.

References isc_region::base, bcount, Ceor, Crot, Csum, isc_buffer_add, isc_buffer_availableregion, ISC_R_NOSPACE, ISC_R_SUCCESS, isc_region::length, and word.

Referenced by btoa_totext().

dns_rdatatype_t dns_rdata_covers ( dns_rdata_t rdata  ) 

Return the rdatatype that this type covers.

Requires:

Returns:

Definition at line 1984 of file rdata.c.

References covers_rrsig(), covers_sig(), and dns_rdata::type.

Referenced by dns_client_updaterec(), getsection(), load_text(), log_rr(), rdata_covers(), sendstream(), and temp_check().

isc_boolean_t dns_rdatatype_ismeta ( dns_rdatatype_t  type  ) 

Return true iff the rdata type 'type' is a meta-type like ANY or AXFR.

Definition at line 1991 of file rdata.c.

References dns_rdatatype_attributes(), DNS_RDATATYPEATTR_META, ISC_FALSE, and ISC_TRUE.

Referenced by ns_query_start(), pre_parse_args(), unknown_fromtext(), update_action(), and xfr_rr().

isc_boolean_t dns_rdatatype_issingleton ( dns_rdatatype_t  type  ) 

Return true iff the rdata type 'type' is a singleton type, like CNAME or SOA.

Requires:

Definition at line 1998 of file rdata.c.

References dns_rdatatype_attributes(), DNS_RDATATYPEATTR_SINGLETON, ISC_FALSE, and ISC_TRUE.

Referenced by dns_rdataslab_fromrdataset(), dns_rdataslab_merge(), and getsection().

isc_boolean_t dns_rdatatype_notquestion ( dns_rdatatype_t  type  ) 

Return true iff rdata of type 'type' can not appear in the question section of a properly formatted message.

Requires:

Definition at line 2006 of file rdata.c.

References dns_rdatatype_attributes(), DNS_RDATATYPEATTR_NOTQUESTION, ISC_FALSE, and ISC_TRUE.

isc_boolean_t dns_rdatatype_questiononly ( dns_rdatatype_t  type  ) 

Return true iff rdata of type 'type' can only appear in the question section of a properly formatted message.

Requires:

Definition at line 2014 of file rdata.c.

References dns_rdatatype_attributes(), DNS_RDATATYPEATTR_QUESTIONONLY, ISC_FALSE, and ISC_TRUE.

Referenced by getsection().

isc_boolean_t dns_rdatatype_atparent ( dns_rdatatype_t  type  ) 

Return true iff rdata of type 'type' should appear at the parent of a zone cut.

Requires:

Definition at line 2022 of file rdata.c.

References dns_rdatatype_attributes(), DNS_RDATATYPEATTR_ATPARENT, ISC_FALSE, and ISC_TRUE.

Referenced by dns_nsec3_noexistnodata(), dns_nsec_noexistnodata(), fctx_create(), fctx_getaddresses(), get_key(), issecuredomain(), query_find(), remove_sigs(), resquery_response(), and zone_find().

isc_boolean_t dns_rdataclass_ismeta ( dns_rdataclass_t  rdclass  ) 

Return true iff the rdata class 'rdclass' is a meta-class like ANY or NONE.

Definition at line 2029 of file rdata.c.

References ISC_FALSE, and ISC_TRUE.

isc_boolean_t dns_rdatatype_isdnssec ( dns_rdatatype_t  type  ) 

Return true iff 'type' is one of the DNSSEC rdata types that may exist alongside a CNAME record.

Requires:

Definition at line 2040 of file rdata.c.

References dns_rdatatype_attributes(), DNS_RDATATYPEATTR_DNSSEC, ISC_FALSE, and ISC_TRUE.

Referenced by cname_compatibility_action(), dns_ncache_towire(), query_addadditional(), query_find(), and update_action().

isc_boolean_t dns_rdatatype_iszonecutauth ( dns_rdatatype_t  type  ) 

Return true iff rdata of type 'type' is considered authoritative data (not glue) in the NSEC chain when it occurs in the parent zone at a zone cut.

Requires:

Definition at line 2047 of file rdata.c.

References dns_rdatatype_attributes(), DNS_RDATATYPEATTR_DNSSEC, DNS_RDATATYPEATTR_ZONECUTAUTH, ISC_FALSE, and ISC_TRUE.

Referenced by dns_nsec3_buildrdata(), and dns_nsec_buildrdata().

isc_boolean_t dns_rdatatype_isknown ( dns_rdatatype_t  type  ) 

Return true iff the rdata type 'type' is known.

Requires:

Definition at line 2056 of file rdata.c.

References dns_rdatatype_attributes(), DNS_RDATATYPEATTR_UNKNOWN, ISC_FALSE, and ISC_TRUE.

Referenced by totext_nsec(), totext_nsec3(), totext_nxt(), totext_rrsig(), totext_sig(), and unknown_fromtext().

void dns_rdata_exists ( dns_rdata_t rdata,
dns_rdatatype_t  type 
)

Definition at line 2064 of file rdata.c.

References dns_rdata::data, DNS_RDATA_INITIALIZED, DNS_RDATA_UPDATE, dns_rdata::flags, dns_rdata::length, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by dns_client_updaterec().

void dns_rdata_notexist ( dns_rdata_t rdata,
dns_rdatatype_t  type 
)

Definition at line 2077 of file rdata.c.

References dns_rdata::data, DNS_RDATA_INITIALIZED, DNS_RDATA_UPDATE, dns_rdata::flags, dns_rdata::length, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by dns_client_updaterec().

void dns_rdata_deleterrset ( dns_rdata_t rdata,
dns_rdatatype_t  type 
)

Definition at line 2090 of file rdata.c.

References dns_rdata::data, DNS_RDATA_INITIALIZED, DNS_RDATA_UPDATE, dns_rdata::flags, dns_rdata::length, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.

Referenced by dns_client_updaterec().

void dns_rdata_makedelete ( dns_rdata_t rdata  ) 

Definition at line 2103 of file rdata.c.

References dns_rdata::rdclass, and REQUIRE.

Referenced by dns_client_updaterec().

const char* dns_rdata_updateop ( dns_rdata_t rdata,
dns_section_t  section 
)

Definition at line 2110 of file rdata.c.

References DNS_RDATA_INITIALIZED, DNS_SECTION_PREREQUISITE, DNS_SECTION_UPDATE, dns_rdata::rdclass, REQUIRE, and dns_rdata::type.


Variable Documentation

const char hexdigits[] = "0123456789abcdef" [static]

Definition at line 328 of file rdata.c.

Referenced by dns_tkey_processquery().

const char decdigits[] = "0123456789" [static]

Definition at line 329 of file rdata.c.

Referenced by totext_any_tsig().

const char atob_digits[86] [static]

Initial value:

        "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`" 
        "abcdefghijklmnopqrstu"

Definition at line 1610 of file rdata.c.


Generated on Tue Apr 28 17:41:12 2015 by Doxygen 1.5.4 for BIND9 Internals 9.11.0pre-alpha