rdata.h File Reference

Provides facilities for manipulating DNS rdata, including conversions to and from wire format and text format. More...

#include <isc/lang.h>
#include <dns/types.h>
#include <dns/name.h>
#include <dns/message.h>

Go to the source code of this file.

Data Structures

struct  dns_rdata
 An 'rdata' is a handle to a binary region. The handle has an RR class and type, and the data in the binary region is in the format of the given class and type. More...

Defines

#define DNS_RDATA_H   1
#define DNS_RDATA_INIT   { NULL, 0, 0, 0, 0, {(void*)(-1), (void *)(-1)}}
#define DNS_RDATA_CHECKINITIALIZED
#define DNS_RDATA_INITIALIZED(rdata)
#define DNS_RDATA_UPDATE   0x0001
 update pseudo record.
#define DNS_RDATA_OFFLINE   0x0002
 RRSIG has a offline key.
#define DNS_RDATA_VALIDFLAGS(rdata)   (((rdata)->flags & ~(DNS_RDATA_UPDATE|DNS_RDATA_OFFLINE)) == 0)
#define DNS_RDATA_MAXLENGTH   65512U
#define DNS_STYLEFLAG_MULTILINE   0x00000001U
 Split the rdata into multiple lines to try to keep it within the "width".
#define DNS_STYLEFLAG_COMMENT   0x00000002U
 Output explanatory comments.
#define DNS_STYLEFLAG_RRCOMMENT   0x00000004U
#define DNS_STYLEFLAG_KEYDATA   0x00000008U
 Output KEYDATA in human readable format.
#define DNS_RDATA_DOWNCASE   DNS_NAME_DOWNCASE
#define DNS_RDATA_CHECKNAMES   DNS_NAME_CHECKNAMES
#define DNS_RDATA_CHECKNAMESFAIL   DNS_NAME_CHECKNAMESFAIL
#define DNS_RDATA_CHECKREVERSE   DNS_NAME_CHECKREVERSE
#define DNS_RDATA_CHECKMX   DNS_NAME_CHECKMX
#define DNS_RDATA_CHECKMXFAIL   DNS_NAME_CHECKMXFAIL
#define DNS_RDATA_UNKNOWNESCAPE   0x80000000
#define DNS_RDATATYPEATTR_SINGLETON   0x00000001U
 only one may exist for a name
#define DNS_RDATATYPEATTR_EXCLUSIVE   0x00000002U
 requires no other data be present
#define DNS_RDATATYPEATTR_META   0x00000004U
 Is a meta type.
#define DNS_RDATATYPEATTR_DNSSEC   0x00000008U
 Is a DNSSEC type, like RRSIG or NSEC.
#define DNS_RDATATYPEATTR_ZONECUTAUTH   0x00000010U
 Is a zone cut authority type.
#define DNS_RDATATYPEATTR_RESERVED   0x00000020U
 Is reserved (unusable).
#define DNS_RDATATYPEATTR_UNKNOWN   0x00000040U
 Is an unknown type.
#define DNS_RDATATYPEATTR_QUESTIONONLY   0x00000080U
 Is META, and can only be in a question section.
#define DNS_RDATATYPEATTR_NOTQUESTION   0x00000100U
 is META, and can NOT be in a question section
#define DNS_RDATATYPEATTR_ATPARENT   0x00000200U
 Is present at zone cuts in the parent, not the child.

Functions

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'.
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_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_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.
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_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_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_atparent (dns_rdatatype_t type)
 Return true iff rdata of type 'type' should appear at the parent of a zone cut.
unsigned int dns_rdatatype_attributes (dns_rdatatype_t rdtype)
 Return attributes for the given type.
dns_rdatatype_t dns_rdata_covers (dns_rdata_t *rdata)
 Return the rdatatype that this type covers.
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)
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)


Detailed Description

Provides facilities for manipulating DNS rdata, including conversions to and from wire format and text format.

Given the large amount of rdata possible in a nameserver, it was important to come up with a very efficient way of storing rdata, but at the same time allow it to be manipulated.

The decision was to store rdata in uncompressed wire format, and not to make it a fully abstracted object; i.e. certain parts of the server know rdata is stored that way. This saves a lot of memory, and makes adding rdata to messages easy. Having much of the server know the representation would be perilous, and we certainly don't want each user of rdata to be manipulating such a low-level structure. This is where the rdata module comes in. The module allows rdata handles to be created and attached to uncompressed wire format regions. All rdata operations and conversions are done through these handles.

Implementation Notes:

MP: Reliability: Resources: Security:

Standards:

Definition in file rdata.h.


Define Documentation

#define DNS_RDATA_H   1

Definition at line 21 of file rdata.h.

#define DNS_RDATA_INIT   { NULL, 0, 0, 0, 0, {(void*)(-1), (void *)(-1)}}

Definition at line 126 of file rdata.h.

Referenced by add_ns(), add_nsec(), add_nsec3param_records(), add_placeholder_nsec(), add_signing_records(), add_sigs(), add_soa(), addnsec3(), addnsec3param(), better_param(), chase_cnamechain(), check_address_records(), check_ds(), check_for_more_data(), check_nsec3param(), check_tsig_error(), checkandaddsoa(), checkkey(), checknamessection(), checkns(), client_resfind(), cname_target(), compute_tag(), copy_name(), copy_ptr_targets(), copy_rdataset(), create_keydata(), del_keysigs(), del_sig(), del_sigs(), delete(), delete_keydata(), delete_nsec(), deletematchingnsec3(), detailsection(), dlv_algorithm_supported(), dlv_validatezonekey(), dname_target(), dns64_ttl(), dns_db_createsoatuple(), dns_db_getsoaserial(), dns_diff_print(), dns_dns64_aaaaok(), dns_dnssec_findzonekeys2(), dns_dnssec_keylistfromrdataset(), dns_dnssec_signs(), dns_dnssec_verifymessage(), dns_message_checksig(), dns_message_getquerytsig(), dns_message_setopt(), dns_message_signer(), dns_ncache_current(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_ncache_towire(), dns_nsec3_activex(), dns_nsec3_addnsec3(), dns_nsec3_addnsec3s(), dns_nsec3_addnsec3sx(), dns_nsec3_delnsec3(), dns_nsec3_delnsec3sx(), dns_nsec3_maxiterations(), dns_nsec3_noexistnodata(), dns_nsec3param_deletechains(), dns_nsec_build(), dns_nsec_noexistnodata(), dns_nsec_nseconly(), dns_private_chains(), dns_private_totext(), dns_rdataset_additionaldata(), dns_rdataslab_equalx(), dns_rdataslab_merge(), dns_rdataslab_subtract(), dns_root_checkhints(), dns_rpz_decode_cname(), dns_tkey_gssnegotiate(), dns_tkey_processdeleteresponse(), dns_tkey_processdhresponse(), dns_tkey_processgssresponse(), dns_tsig_sign(), dns_tsig_verify(), dns_update_signaturesinc(), dns_view_untrust(), dns_zone_notifyreceive(), dst_key_read_public(), dump_rdataset_raw(), fctx_getaddresses(), find_nsec3(), findnoqname(), fixup_nsec3param(), followup_lookup(), foreach_node_rr_action(), foreach_rr(), generate(), get_dst_key(), get_edns_expire(), get_iterations(), get_key(), get_name_diff(), get_soa_ttls(), goodsig(), ignore(), import_rdataset(), in_rootns(), innsec3params(), inrrset(), is_answeraddress_allowed(), isdelegation(), isoptout(), isselfsigned(), iszonesecure(), keydone(), keyfetch_done(), keyfromds(), load_secroots(), log_rr(), lookup_find(), make_nsec3(), mark_active_keys(), match_nsec3(), matchparams(), minimal_update(), mkey_dumpzone(), namelist_append_name(), ncache_summary(), need_nsec_chain(), notify_createmessage(), ns_server_signing(), ns_xfr_start(), printsection(), process_dhtkey(), process_soa(), publish_key(), query_addsoa(), query_addwildcardproof(), query_dns64(), query_filter64(), query_find(), query_findclosestnsec3(), rdata_in_slab(), rdataset_totext(), record_found(), recvsoa(), refresh_callback(), refresh_time(), remove_key(), resigned(), resume_addnsec3chain(), resume_signingwithkey(), revocable(), rpz_rewrite(), rpz_rewrite_ip_rrset(), rr_exists(), rrset_cleanup(), rrsig_fromchildzone(), save_nsec3param(), save_nsrrset(), set_nsec3params(), set_target(), setnsec3parameters(), setresign(), setsoaserial(), short_answer(), sign_a_node(), signed_with_alg(), signed_with_key(), signset(), signwithkey(), temp_check(), towiresorted(), trust_key(), tsig_verify_tcp(), update_action(), updatesignwithkey(), validate(), validate_authority(), validate_ncache(), validatezonekey(), verifynsec(), verifynsec3s(), verifyset(), verifyzone(), view_find(), warn_rfc1918(), warnifallksk(), write_public_key(), xfrin_recv_done(), zone_check_dnskeys(), zone_load_soa_rr(), zone_notify(), zone_refreshkeys(), and zone_rrset_check_dup().

#define DNS_RDATA_CHECKINITIALIZED

Definition at line 128 of file rdata.h.

#define DNS_RDATA_INITIALIZED ( rdata   ) 

Value:

((rdata)->data == NULL && (rdata)->length == 0 && \
         (rdata)->rdclass == 0 && (rdata)->type == 0 && (rdata)->flags == 0 && \
         !ISC_LINK_LINKED((rdata), link))

Definition at line 130 of file rdata.h.

Referenced by dns_nsec3param_toprivate(), dns_rdata_clone(), dns_rdata_deleterrset(), dns_rdata_exists(), dns_rdata_fromregion(), dns_rdata_fromstruct(), dns_rdata_fromtext(), dns_rdata_fromwire(), dns_rdata_notexist(), and dns_rdata_updateop().

#define DNS_RDATA_UPDATE   0x0001

update pseudo record.

Definition at line 142 of file rdata.h.

Referenced by dns_rdata_deleterrset(), dns_rdata_exists(), dns_rdata_notexist(), dns_rdata_towire(), getsection(), make_prereq(), parse_rdata(), rdata_totext(), and update_addordelete().

#define DNS_RDATA_OFFLINE   0x0002

RRSIG has a offline key.

Definition at line 143 of file rdata.h.

Referenced by del_sigs(), dns_rdataslab_fromrdataset(), offline(), rdata_from_slab(), rdataset_current(), and setresign().

#define DNS_RDATA_VALIDFLAGS ( rdata   )     (((rdata)->flags & ~(DNS_RDATA_UPDATE|DNS_RDATA_OFFLINE)) == 0)

Definition at line 145 of file rdata.h.

Referenced by dns_rdata_additionaldata(), dns_rdata_casecompare(), dns_rdata_clone(), dns_rdata_compare(), dns_rdata_digest(), dns_rdata_fromregion(), dns_rdata_fromstruct(), dns_rdata_fromtext(), dns_rdata_fromwire(), dns_rdata_reset(), dns_rdata_tofmttext(), dns_rdata_toregion(), dns_rdata_tostruct(), dns_rdata_totext(), and dns_rdata_towire().

#define DNS_RDATA_MAXLENGTH   65512U

Definition at line 157 of file rdata.h.

Referenced by ATF_TC_BODY(), dns_rdata_fromstruct(), dns_rdata_fromtext(), and dns_rdata_fromwire().

#define DNS_STYLEFLAG_MULTILINE   0x00000001U

Split the rdata into multiple lines to try to keep it within the "width".

Definition at line 167 of file rdata.h.

Referenced by dns_rdata_tofmttext(), printmessage(), totext_any_tsig(), totext_cdnskey(), totext_cds(), totext_cert(), totext_ctx_init(), totext_dlv(), totext_dnskey(), totext_ds(), totext_hip(), totext_in_dhcid(), totext_ipseckey(), totext_key(), totext_keydata(), totext_nsec3(), totext_openpgpkey(), totext_opt(), totext_rrsig(), totext_sig(), totext_soa(), totext_sshfp(), totext_tkey(), totext_tlsa(), and unknown_totext().

#define DNS_STYLEFLAG_COMMENT   0x00000002U

Output explanatory comments.

Definition at line 170 of file rdata.h.

Referenced by dump_rdataset(), and printmessage().

#define DNS_STYLEFLAG_RRCOMMENT   0x00000004U

Definition at line 171 of file rdata.h.

Referenced by printmessage(), say_message(), totext_cdnskey(), totext_dnskey(), totext_key(), totext_keydata(), and totext_soa().

#define DNS_STYLEFLAG_KEYDATA   0x00000008U

Output KEYDATA in human readable format.

Definition at line 174 of file rdata.h.

Referenced by rdataset_totext(), and totext_keydata().

#define DNS_RDATA_DOWNCASE   DNS_NAME_DOWNCASE

Definition at line 176 of file rdata.h.

#define DNS_RDATA_CHECKNAMES   DNS_NAME_CHECKNAMES

Definition at line 177 of file rdata.h.

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(), fromtext_soa(), and load_text().

#define DNS_RDATA_CHECKNAMESFAIL   DNS_NAME_CHECKNAMESFAIL

Definition at line 178 of file rdata.h.

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(), fromtext_soa(), and load_text().

#define DNS_RDATA_CHECKREVERSE   DNS_NAME_CHECKREVERSE

Definition at line 179 of file rdata.h.

Referenced by fromtext_ch_a(), fromtext_ptr(), and load_text().

#define DNS_RDATA_CHECKMX   DNS_NAME_CHECKMX

Definition at line 180 of file rdata.h.

Referenced by check_mx(), fromtext_mx(), and load_text().

#define DNS_RDATA_CHECKMXFAIL   DNS_NAME_CHECKMXFAIL

Definition at line 181 of file rdata.h.

Referenced by check_mx(), fromtext_mx(), and load_text().

#define DNS_RDATA_UNKNOWNESCAPE   0x80000000

Definition at line 182 of file rdata.h.

Referenced by dns_rdata_fromtext(), and fromtext_txt().

#define DNS_RDATATYPEATTR_SINGLETON   0x00000001U

only one may exist for a name

Definition at line 697 of file rdata.h.

Referenced by dns_rdatatype_issingleton().

#define DNS_RDATATYPEATTR_EXCLUSIVE   0x00000002U

requires no other data be present

Definition at line 699 of file rdata.h.

#define DNS_RDATATYPEATTR_META   0x00000004U

Is a meta type.

Definition at line 701 of file rdata.h.

Referenced by dns_rdatatype_ismeta().

#define DNS_RDATATYPEATTR_DNSSEC   0x00000008U

Is a DNSSEC type, like RRSIG or NSEC.

Definition at line 703 of file rdata.h.

Referenced by dns_rdatatype_isdnssec(), and dns_rdatatype_iszonecutauth().

#define DNS_RDATATYPEATTR_ZONECUTAUTH   0x00000010U

Is a zone cut authority type.

Definition at line 705 of file rdata.h.

Referenced by dns_rdatatype_iszonecutauth().

#define DNS_RDATATYPEATTR_RESERVED   0x00000020U

Is reserved (unusable).

Definition at line 707 of file rdata.h.

#define DNS_RDATATYPEATTR_UNKNOWN   0x00000040U

Is an unknown type.

Definition at line 709 of file rdata.h.

Referenced by dns_rdatatype_attributes(), and dns_rdatatype_isknown().

#define DNS_RDATATYPEATTR_QUESTIONONLY   0x00000080U

Is META, and can only be in a question section.

Definition at line 711 of file rdata.h.

Referenced by dns_rdatatype_questiononly().

#define DNS_RDATATYPEATTR_NOTQUESTION   0x00000100U

is META, and can NOT be in a question section

Definition at line 713 of file rdata.h.

Referenced by dns_rdatatype_notquestion().

#define DNS_RDATATYPEATTR_ATPARENT   0x00000200U

Is present at zone cuts in the parent, not the child.

Definition at line 715 of file rdata.h.

Referenced by dns_rdatatype_atparent().


Function Documentation

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().

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_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_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().

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_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_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_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().

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().

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_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().

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.


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