#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) |
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:
Definition in 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_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_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 |
#define DNS_RDATA_CHECKMXFAIL DNS_NAME_CHECKMXFAIL |
#define DNS_RDATA_UNKNOWNESCAPE 0x80000000 |
#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 |
#define DNS_RDATATYPEATTR_META 0x00000004U |
#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 |
#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().
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:
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:
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:
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:
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:
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:
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:
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:
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 | ) |
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:
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:
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:
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:
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.