rdataset.c File Reference

#include <config.h>
#include <stdlib.h>
#include <isc/buffer.h>
#include <isc/mem.h>
#include <isc/random.h>
#include <isc/serial.h>
#include <isc/util.h>
#include <dns/compress.h>
#include <dns/fixedname.h>
#include <dns/name.h>
#include <dns/ncache.h>
#include <dns/rdata.h>
#include <dns/rdataset.h>

Go to the source code of this file.

Data Structures

struct  towire_sort

Defines

#define MAX_SHUFFLE   32
#define WANT_FIXED(r)   (((r)->attributes & DNS_RDATASETATTR_FIXEDORDER) != 0)
#define WANT_RANDOM(r)   (((r)->attributes & DNS_RDATASETATTR_RANDOMIZE) != 0)

Functions

const char * dns_trust_totext (dns_trust_t trust)
 Display trust in textual form.
void dns_rdataset_init (dns_rdataset_t *rdataset)
 Make 'rdataset' a valid, disassociated rdataset.
void dns_rdataset_invalidate (dns_rdataset_t *rdataset)
 Invalidate 'rdataset'.
void dns_rdataset_disassociate (dns_rdataset_t *rdataset)
 Disassociate 'rdataset' from its rdata, allowing it to be reused.
isc_boolean_t dns_rdataset_isassociated (dns_rdataset_t *rdataset)
 Is 'rdataset' associated?
static void question_disassociate (dns_rdataset_t *rdataset)
static isc_result_t question_cursor (dns_rdataset_t *rdataset)
static void question_current (dns_rdataset_t *rdataset, dns_rdata_t *rdata)
static void question_clone (dns_rdataset_t *source, dns_rdataset_t *target)
static unsigned int question_count (dns_rdataset_t *rdataset)
void dns_rdataset_makequestion (dns_rdataset_t *rdataset, dns_rdataclass_t rdclass, dns_rdatatype_t type)
 Make 'rdataset' a valid, associated, question rdataset, with a question class of 'rdclass' and type 'type'.
unsigned int dns_rdataset_count (dns_rdataset_t *rdataset)
 Return the number of records in 'rdataset'.
void dns_rdataset_clone (dns_rdataset_t *source, dns_rdataset_t *target)
 Make 'target' refer to the same rdataset as 'source'.
isc_result_t dns_rdataset_first (dns_rdataset_t *rdataset)
 Move the rdata cursor to the first rdata in the rdataset (if any).
isc_result_t dns_rdataset_next (dns_rdataset_t *rdataset)
 Move the rdata cursor to the next rdata in the rdataset (if any).
void dns_rdataset_current (dns_rdataset_t *rdataset, dns_rdata_t *rdata)
 Make 'rdata' refer to the current rdata.
static int towire_compare (const void *av, const void *bv)
static isc_result_t towiresorted (dns_rdataset_t *rdataset, const dns_name_t *owner_name, dns_compress_t *cctx, isc_buffer_t *target, dns_rdatasetorderfunc_t order, const void *order_arg, isc_boolean_t partial, unsigned int options, unsigned int *countp, void **state)
isc_result_t dns_rdataset_towiresorted (dns_rdataset_t *rdataset, const dns_name_t *owner_name, dns_compress_t *cctx, isc_buffer_t *target, dns_rdatasetorderfunc_t order, const void *order_arg, unsigned int options, unsigned int *countp)
 Like dns_rdataset_towire(), but sorting the rdatasets according to the integer value returned by 'order' when called with the rdataset and 'order_arg' as arguments.
isc_result_t dns_rdataset_towirepartial (dns_rdataset_t *rdataset, const dns_name_t *owner_name, dns_compress_t *cctx, isc_buffer_t *target, dns_rdatasetorderfunc_t order, const void *order_arg, unsigned int options, unsigned int *countp, void **state)
 Like dns_rdataset_towiresorted() except that a partial rdataset may be written.
isc_result_t dns_rdataset_towire (dns_rdataset_t *rdataset, dns_name_t *owner_name, dns_compress_t *cctx, isc_buffer_t *target, unsigned int options, unsigned int *countp)
 Convert 'rdataset' to wire format, compressing names as specified in 'cctx', and storing the result in 'target'.
isc_result_t dns_rdataset_additionaldata (dns_rdataset_t *rdataset, dns_additionaldatafunc_t add, void *arg)
 For each rdata in rdataset, call 'add' for each name and type in the rdata which is subject to additional section processing.
isc_result_t dns_rdataset_addnoqname (dns_rdataset_t *rdataset, dns_name_t *name)
 Associate a noqname proof with this record. Sets DNS_RDATASETATTR_NOQNAME if successful. Adjusts the 'rdataset->ttl' to minimum of the 'rdataset->ttl' and the 'nsec'/'nsec3' and 'rrsig(nsec)'/'rrsig(nsec3)' ttl.
isc_result_t dns_rdataset_getnoqname (dns_rdataset_t *rdataset, dns_name_t *name, dns_rdataset_t *neg, dns_rdataset_t *negsig)
 Return the noqname proof for this record.
isc_result_t dns_rdataset_addclosest (dns_rdataset_t *rdataset, dns_name_t *name)
 Associate a closest encloset proof with this record. Sets DNS_RDATASETATTR_CLOSEST if successful. Adjusts the 'rdataset->ttl' to minimum of the 'rdataset->ttl' and the 'nsec' and 'rrsig(nsec)' ttl.
isc_result_t dns_rdataset_getclosest (dns_rdataset_t *rdataset, dns_name_t *name, dns_rdataset_t *neg, dns_rdataset_t *negsig)
 Return the closest encloser for this record.
isc_result_t dns_rdataset_getadditional (dns_rdataset_t *rdataset, dns_rdatasetadditional_t type, dns_rdatatype_t qtype, dns_acache_t *acache, dns_zone_t **zonep, dns_db_t **dbp, dns_dbversion_t **versionp, dns_dbnode_t **nodep, dns_name_t *fname, dns_message_t *msg, isc_stdtime_t now)
 Get cached additional information from the DB node for a particular 'rdataset.' 'type' is one of dns_rdatasetadditional_fromauth, dns_rdatasetadditional_fromcache, and dns_rdatasetadditional_fromglue, which specifies the origin of the information. 'qtype' is intended to be used for specifying a particular rdata type in the cached information.
isc_result_t dns_rdataset_setadditional (dns_rdataset_t *rdataset, dns_rdatasetadditional_t type, dns_rdatatype_t qtype, dns_acache_t *acache, dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *version, dns_dbnode_t *node, dns_name_t *fname)
 Set cached additional information to the DB node for a particular 'rdataset.' See dns_rdataset_getadditional for the semantics of 'type' and 'qtype'.
isc_result_t dns_rdataset_putadditional (dns_acache_t *acache, dns_rdataset_t *rdataset, dns_rdatasetadditional_t type, dns_rdatatype_t qtype)
 Discard cached additional information stored in the DB node for a particular 'rdataset.' See dns_rdataset_getadditional for the semantics of 'type' and 'qtype'.
void dns_rdataset_settrust (dns_rdataset_t *rdataset, dns_trust_t trust)
 Set the trust of the 'rdataset' to trust in any in the backing database. The local trust level of 'rdataset' is also set.
void dns_rdataset_expire (dns_rdataset_t *rdataset)
 Mark the rdataset to be expired in the backing database.
void dns_rdataset_clearprefetch (dns_rdataset_t *rdataset)
 Clear the PREFETCH attribute for the given rdataset in the underlying database.
void dns_rdataset_setownercase (dns_rdataset_t *rdataset, const dns_name_t *name)
 Store the casing of 'name', the owner name of 'rdataset', into a bitfield so that the name can be capitalized the same when when the rdataset is used later. This sets the CASESET attribute.
void dns_rdataset_getownercase (const dns_rdataset_t *rdataset, dns_name_t *name)
 If the CASESET attribute is set, retrieve the case bitfield that was previously stored by dns_rdataset_getownername(), and capitalize 'name' according to it. If CASESET is not set, do nothing.
void dns_rdataset_trimttl (dns_rdataset_t *rdataset, dns_rdataset_t *sigrdataset, dns_rdata_rrsig_t *rrsig, isc_stdtime_t now, isc_boolean_t acceptexpired)
 Trim the ttl of 'rdataset' and 'sigrdataset' so that they will expire at or before 'rrsig->expiretime'. If 'acceptexpired' is true and the signature has expired or will expire in the next 120 seconds, limit the ttl to be no more than 120 seconds.

Variables

static const char * trustnames []
static dns_rdatasetmethods_t question_methods


Detailed Description

Definition in file rdataset.c.


Define Documentation

#define MAX_SHUFFLE   32

Definition at line 302 of file rdataset.c.

Referenced by towiresorted().

#define WANT_FIXED ( r   )     (((r)->attributes & DNS_RDATASETATTR_FIXEDORDER) != 0)

Definition at line 303 of file rdataset.c.

Referenced by towiresorted().

#define WANT_RANDOM ( r   )     (((r)->attributes & DNS_RDATASETATTR_RANDOMIZE) != 0)

Definition at line 304 of file rdataset.c.

Referenced by towiresorted().


Function Documentation

const char* dns_trust_totext ( dns_trust_t  trust  ) 

Display trust in textual form.

Definition at line 53 of file rdataset.c.

References trustnames.

Referenced by cnamevalidated(), dlvvalidated(), dsfetched(), dsvalidated(), dump_rdatasets_text(), fetch_callback_validator(), get_key(), keyvalidated(), and view_find().

void dns_rdataset_init ( dns_rdataset_t rdataset  ) 

Make 'rdataset' a valid, disassociated rdataset.

Requires:

Ensures:

Definition at line 60 of file rdataset.c.

References dns_rdataset::attributes, dns_rdataset::count, dns_rdataset::covers, DNS_RDATASET_MAGIC, ISC_LINK_INIT, ISC_UINT32_MAX, dns_rdataset::magic, dns_rdataset::methods, dns_rdataset::private1, dns_rdataset::private2, dns_rdataset::private3, dns_rdataset::private5, dns_rdataset::private6, dns_rdataset::private7, dns_rdataset::privateuint4, dns_rdataset::rdclass, REQUIRE, dns_rdataset::resign, dns_rdataset::trust, dns_rdataset::ttl, and dns_rdataset::type.

Referenced by active_node(), add_ds(), add_exposed_sigs(), add_ns(), add_question(), add_rdata_to_list(), add_sigs(), add_soa(), addclosest(), addnoqname(), addnsec3(), addnsec3param(), addoptout(), addrdataset(), assignwork(), ATF_TC_BODY(), better_param(), build_event(), buildquery(), check_address_records(), check_hints(), check_no_nsec(), check_no_rrsig(), check_node(), check_nsec3param(), check_ttls(), checkandaddsoa(), checkwildcard(), cleannode(), cleanup_zone(), clearnode(), commit(), configure_staticstub(), copy_name(), create_query(), dbfind_name(), del_keysigs(), del_sig(), del_sigs(), delete(), delete_nsec(), deletematchingnsec3(), deleterdataset(), diff_apply(), diff_tuple_tordataset(), dlv_validatezonekey(), dns64_ttl(), dns_acache_getentry(), dns_acache_setentry(), dns_client_updaterec(), dns_db_createsoatuple(), dns_db_getsoaserial(), dns_diff_load(), dns_dnssec_findzonekeys2(), dns_dnssec_keylistfromrdataset(), dns_dnssec_signmessage(), dns_lookup_create(), dns_message_buildopt(), dns_message_checksig(), dns_message_gettemprdataset(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_nsec3_activex(), dns_nsec3_addnsec3(), dns_nsec3_addnsec3s(), dns_nsec3_addnsec3sx(), dns_nsec3_buildrdata(), dns_nsec3_delnsec3(), dns_nsec3_delnsec3sx(), dns_nsec3_maxiterations(), dns_nsec3param_deletechains(), dns_nsec_build(), dns_nsec_buildrdata(), dns_nsec_nseconly(), dns_private_chains(), dns_resolver_prime(), dns_root_checkhints(), dns_rriterator_init(), dns_tsig_sign(), dns_update_signaturesinc(), dns_validator_create(), dns_view_find2(), dns_view_findzonecut2(), dump_rdatasets_raw(), dump_rdatasets_text(), dumpnode(), fctx_create(), fetch_name(), find(), findext(), findnsec3proofs(), findrdataset(), fixup_nsec3param(), foreach_rr(), foreach_rrset(), get_iterations(), get_name_diff(), get_soa_ttls(), getquestions(), getrdataset(), getsection(), insert_soa(), integrity_checks(), is_delegation(), isdelegation(), isoptout(), iszonesecure(), iterate_node(), keydone(), loadds(), loadkeyset(), loadzonekeys(), log_rr(), main(), make_prereq(), mark_active_keys(), ncache_adderesult(), ncache_summary(), need_nsec_chain(), new_adbfetch(), notify_createmessage(), ns_server_signing(), ns_server_zonestatus(), nsec3clean(), nsec3ify(), nsecify(), nta_create(), query_add_cname(), query_dns64(), query_filter64(), query_find(), query_newrdataset(), rdataset_to_sortedarray(), receive_secure_db(), record_found(), redirect(), redirect2(), remove_records(), remove_sigs(), resigned(), resquery_send(), resume_addnsec3chain(), resume_dslookup(), resume_signingwithkey(), rpz_ck_dnssec(), rr_exists(), rrset_cleanup(), save_nsec3param(), secure(), sendstream(), set_nsec3params(), set_resigntime(), setsoaserial(), sign_a_node(), signed_with_key(), signname(), signset(), subtract(), temp_check(), tuple2msgname(), update_addordelete(), updatesecure(), updatesignwithkey(), validate(), validatezonekey(), verifynode(), verifynsec(), verifynsec3(), verifyset(), verifyzone(), warn_rfc1918(), warnifallksk(), xfrin_send_request(), zone_check_dnskeys(), zone_check_dup(), zone_check_glue(), zone_count_ns_rr(), zone_load_soa_rr(), zone_notify(), zone_nsec3chain(), zone_postload(), zone_refreshkeys(), zone_resigninc(), zone_rrset_check_dup(), and zone_sign().

void dns_rdataset_invalidate ( dns_rdataset_t rdataset  ) 

Invalidate 'rdataset'.

Requires:

Ensures:

Definition at line 89 of file rdataset.c.

References dns_rdataset::attributes, dns_rdataset::count, dns_rdataset::covers, DNS_RDATASET_VALID, ISC_LINK_INIT, ISC_UINT32_MAX, dns_rdataset::magic, dns_rdataset::methods, dns_rdataset::private1, dns_rdataset::private2, dns_rdataset::private3, dns_rdataset::private5, dns_rdataset::privateuint4, dns_rdataset::rdclass, REQUIRE, dns_rdataset::trust, dns_rdataset::ttl, and dns_rdataset::type.

Referenced by zone_count_ns_rr(), and zone_load_soa_rr().

void dns_rdataset_disassociate ( dns_rdataset_t rdataset  ) 

Disassociate 'rdataset' from its rdata, allowing it to be reused.

Notes:

Requires: Ensures:

Definition at line 115 of file rdataset.c.

References dns_rdataset::attributes, dns_rdataset::count, dns_rdataset::covers, dns_rdatasetmethods::disassociate, DNS_RDATASET_VALID, ISC_LINK_INIT, ISC_UINT32_MAX, dns_rdataset::methods, dns_rdataset::private1, dns_rdataset::private2, dns_rdataset::private3, dns_rdataset::private5, dns_rdataset::private6, dns_rdataset::privateuint4, dns_rdataset::rdclass, REQUIRE, dns_rdataset::trust, dns_rdataset::ttl, and dns_rdataset::type.

Referenced by active_node(), add_ds(), add_exposed_sigs(), add_rdata_to_list(), add_sigs(), addclosest(), addnoqname(), assignwork(), better_param(), build_event(), buildquery(), check_address_records(), check_hints(), check_no_nsec(), check_no_rrsig(), check_node(), check_nsec3param(), check_ttls(), checkbogus(), checkwildcard(), cleannode(), cleanup_zone(), clear_entry(), clearnode(), client_resfind(), configure_staticstub(), create_fetch(), dbfind_name(), del_keysigs(), del_sig(), del_sigs(), delete(), delete_nsec(), deletematchingnsec3(), destroy(), diff_apply(), dlv_validatezonekey(), dlvfetched(), dns64_ttl(), dns_acache_getentry(), dns_client_freeupdate(), dns_db_createsoatuple(), dns_db_getsoaserial(), dns_dnssec_findzonekeys2(), dns_dnssec_keylistfromrdataset(), dns_lookup_destroy(), dns_message_checksig(), dns_message_renderreset(), dns_message_setopt(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_nsec3_activex(), dns_nsec3_addnsec3(), dns_nsec3_addnsec3s(), dns_nsec3_addnsec3sx(), dns_nsec3_buildrdata(), dns_nsec3_delnsec3(), dns_nsec3_delnsec3sx(), dns_nsec3_maxiterations(), dns_nsec3param_deletechains(), dns_nsec_build(), dns_nsec_buildrdata(), dns_nsec_nseconly(), dns_private_chains(), dns_root_checkhints(), dns_rriterator_destroy(), dns_rriterator_first(), dns_rriterator_nextrrset(), dns_update_signaturesinc(), dns_view_find2(), dns_view_findzonecut2(), dns_view_simplefind(), dsfetched(), dsfetched2(), dump_rdatasets_raw(), dump_rdatasets_text(), dumpnode(), exit_check(), fctx_create(), fctx_destroy(), fetch_callback_validator(), fetch_done(), fetch_name(), findext(), findnsec3proofs(), fixrdataset(), fixup_nsec3param(), foreach_rr(), foreach_rrset(), free_adbfetch(), get_iterations(), get_key(), get_name_diff(), get_soa_ttls(), integrity_checks(), is_delegation(), isdelegation(), isoptout(), iszonesecure(), iterate_node(), keydone(), keyfetch_done(), levent_destroy(), loadds(), loadzonekeys(), lookup_find(), main(), mark_active_keys(), msgresetnames(), msgresetopt(), msgresetsigs(), ncache_adderesult(), ncache_summary(), need_nsec_chain(), noanswer_response(), notify_createmessage(), ns_client_endrequest(), ns_server_signing(), ns_server_zonestatus(), nsec3clean(), nsecify(), nta_detach(), prime_done(), proveunsecure(), putrdataset(), query_add_cname(), query_addadditional(), query_addadditional2(), query_addds(), query_addnoqnameproof(), query_addwildcardproof(), query_find(), query_findclosestnsec3(), query_putrdataset(), rdataset_to_sortedarray(), receive_secure_db(), record_found(), redirect(), redirect2(), remove_records(), remove_sigs(), resigned(), resume_addnsec3chain(), resume_dslookup(), resume_signingwithkey(), rpz_ck_dnssec(), rpz_clean(), rpz_find_p(), rpz_ready(), rpz_rewrite(), rpz_rewrite_ns_skip(), rr_exists(), rrset_cleanup(), save_nsec3param(), secure(), sendstream(), set_nsec3params(), set_resigntime(), setsoaserial(), setzone(), sign_a_node(), signed_with_key(), signname(), signset(), start_update(), temp_check(), tuple2msgname(), updatesecure(), updatesignwithkey(), val_rdataset_next(), validate(), validate_ncache(), validatezonekey(), verifynode(), verifynsec(), verifynsec3(), verifyset(), verifyzone(), view_find(), warn_rfc1918(), warnifallksk(), zone_check_dnskeys(), zone_check_dup(), zone_check_glue(), zone_count_ns_rr(), zone_load_soa_rr(), zone_notify(), zone_nsec3chain(), zone_postload(), zone_refreshkeys(), zone_resigninc(), and zone_rrset_check_dup().

isc_boolean_t dns_rdataset_isassociated ( dns_rdataset_t rdataset  ) 

Is 'rdataset' associated?

Requires:

Returns:

Definition at line 143 of file rdataset.c.

References DNS_RDATASET_VALID, ISC_FALSE, ISC_TRUE, dns_rdataset::methods, and REQUIRE.

Referenced by add_ds(), add_sigs(), assignwork(), bind_rdataset(), build_event(), cache_name(), check_address_records(), check_hints(), check_no_nsec(), check_no_rrsig(), check_node(), check_nsec3param(), checkbogus(), checkns(), checkwildcard(), client_resfind(), clone_results(), cnamevalidated(), create_fetch(), dbfind_name(), del_sig(), del_sigs(), destroy(), diff_apply(), dlvfetched(), dlvvalidated(), dns64_aaaaok(), dns64_ttl(), dns_db_addrdataset(), dns_db_find(), dns_db_findext(), dns_db_findrdataset(), dns_db_findzonecut(), dns_db_subtractrdataset(), dns_dnssec_findzonekeys2(), dns_dnssec_keylistfromrdataset(), dns_lookup_destroy(), dns_message_checksig(), dns_message_puttemprdataset(), dns_ncache_current(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_nsec3_addnsec3(), dns_nsec3_addnsec3s(), dns_nsec3_addnsec3sx(), dns_nsec3_delnsec3(), dns_nsec3_delnsec3sx(), dns_nsec3_maxiterations(), dns_nsec3param_deletechains(), dns_nsec_build(), dns_private_chains(), dns_rdatalist_tordataset(), dns_rdatasetiter_current(), dns_rdataslab_tordataset(), dns_resolver_createfetch3(), dns_root_checkhints(), dns_rriterator_destroy(), dns_rriterator_first(), dns_rriterator_init(), dns_rriterator_nextrrset(), dns_view_find2(), dns_view_findzonecut2(), dns_view_simplefind(), dsfetched(), dsfetched2(), dsvalidated(), exit_check(), fctx_create(), fctx_destroy(), fctx_sendevents(), fetch_callback_validator(), fetch_done(), fetch_name(), finddlvsep(), findext(), findnsec3proofs(), fixrdataset(), fixup_nsec3param(), free_adbfetch(), get_iterations(), get_key(), getownercase(), getquestions(), in_rootns(), is_delegation(), isoptout(), iszonesecure(), keydone(), keyfetch_done(), keyvalidated(), loadzonekeys(), lookup_find(), main(), mark_active_keys(), mkey_dumpzone(), msgresetnames(), msgresetopt(), msgresetsigs(), ncache_adderesult(), ncache_summary(), need_nsec_chain(), noanswer_response(), ns_client_endrequest(), ns_server_signing(), nta_detach(), prime_done(), proveunsecure(), putrdataset(), query_add_cname(), query_addadditional(), query_addadditional2(), query_addds(), query_addnoqnameproof(), query_addnxrrsetnsec(), query_addrrset(), query_addwildcardproof(), query_dns64(), query_find(), query_findclosestnsec3(), query_putrdataset(), receive_secure_db(), record_found(), redirect(), redirect2(), refresh_time(), resolveaddr_done(), resolvesoa_done(), resume_addnsec3chain(), resume_dslookup(), resume_signingwithkey(), revocable(), rpz_ck_dnssec(), rpz_clean(), rpz_find_p(), rpz_ready(), rpz_rewrite(), rpz_rewrite_ns_skip(), rpz_rrset_find(), rpz_save_p(), save_nsec3param(), secure(), sendstream(), set_nsec3params(), setownercase(), sign_a_node(), signed_with_alg(), signed_with_key(), signset(), sync_keyzone(), updatesecure(), updatesignwithkey(), validate(), validate_ncache(), validatezonekey(), validator_start(), verifyemptynodes(), verifynode(), verifynsec(), verifynsec3(), verifyzone(), view_find(), zone_check_glue(), zone_count_ns_rr(), zone_load_soa_rr(), and zone_refreshkeys().

static void question_disassociate ( dns_rdataset_t rdataset  )  [static]

Definition at line 157 of file rdataset.c.

References UNUSED.

static isc_result_t question_cursor ( dns_rdataset_t rdataset  )  [static]

Definition at line 162 of file rdataset.c.

References ISC_R_NOMORE, and UNUSED.

static void question_current ( dns_rdataset_t rdataset,
dns_rdata_t rdata 
) [static]

Definition at line 169 of file rdataset.c.

References REQUIRE, and UNUSED.

static void question_clone ( dns_rdataset_t source,
dns_rdataset_t target 
) [static]

Definition at line 180 of file rdataset.c.

static unsigned int question_count ( dns_rdataset_t rdataset  )  [static]

Definition at line 185 of file rdataset.c.

References REQUIRE, and UNUSED.

void dns_rdataset_makequestion ( dns_rdataset_t rdataset,
dns_rdataclass_t  rdclass,
dns_rdatatype_t  type 
)

Make 'rdataset' a valid, associated, question rdataset, with a question class of 'rdclass' and type 'type'.

Notes:

Requires: Ensures:

Definition at line 217 of file rdataset.c.

References dns_rdataset::attributes, DNS_RDATASET_VALID, DNS_RDATASETATTR_QUESTION, dns_rdataset::methods, dns_rdataset::rdclass, REQUIRE, and dns_rdataset::type.

Referenced by add_question(), buildquery(), create_query(), notify_createmessage(), request_soa(), resquery_send(), send_update(), sendstream(), setzone(), start_update(), and xfrin_send_request().

unsigned int dns_rdataset_count ( dns_rdataset_t rdataset  ) 

Return the number of records in 'rdataset'.

Requires:

Returns:

Definition at line 236 of file rdataset.c.

References dns_rdatasetmethods::count, DNS_RDATASET_VALID, dns_rdataset::methods, and REQUIRE.

Referenced by copy_rdataset(), dns64_aaaaok(), dns_dns64_aaaaok(), dns_rdataslab_fromrdataset(), dump_rdataset_raw(), iterate_node(), lookup_done(), query_dns64(), query_filter64(), rdataset_to_sortedarray(), and signset().

void dns_rdataset_clone ( dns_rdataset_t source,
dns_rdataset_t target 
)

Make 'target' refer to the same rdataset as 'source'.

Requires:

Ensures:

Definition at line 249 of file rdataset.c.

References dns_rdatasetmethods::clone, DNS_RDATASET_VALID, dns_rdataset::methods, and REQUIRE.

Referenced by better_param(), build_event(), clone_results(), dlv_validatezonekey(), dlvfetched(), dlvvalidated(), dns_acache_getentry(), dns_acache_setentry(), dns_dnssec_keylistfromrdataset(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_view_find2(), dns_view_findzonecut2(), fctx_create(), finddlvsep(), isc__rdatalist_getclosest(), isc__rdatalist_getnoqname(), isdelegation(), mark_active_keys(), rdataset_to_sortedarray(), redirect(), redirect2(), resume_dslookup(), rrset_cleanup(), validatezonekey(), zone_refreshkeys(), and zone_rrset_check_dup().

isc_result_t dns_rdataset_first ( dns_rdataset_t rdataset  ) 

Move the rdata cursor to the first rdata in the rdataset (if any).

Requires:

Returns:

Definition at line 264 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdatasetmethods::first, dns_rdataset::methods, and REQUIRE.

Referenced by 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(), copy_name(), copy_ptr_targets(), copy_rdataset(), 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_dns64_aaaaok(), dns_dnssec_findzonekeys2(), dns_dnssec_keylistfromrdataset(), dns_dnssec_signs(), dns_dnssec_verifymessage(), dns_message_checksig(), dns_message_getquerytsig(), dns_message_pseudosectiontotext(), dns_message_setopt(), dns_message_signer(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_ncache_towire(), dns_nsec3_activex(), dns_nsec3_addnsec3s(), dns_nsec3_addnsec3sx(), dns_nsec3_delnsec3sx(), dns_nsec3_maxiterations(), dns_nsec3_noexistnodata(), dns_nsec3param_deletechains(), dns_nsec_noexistnodata(), dns_nsec_nseconly(), dns_private_chains(), dns_rdataset_additionaldata(), dns_rdataslab_fromrdataset(), dns_root_checkhints(), dns_rpz_decode_cname(), dns_rriterator_first(), dns_rriterator_nextrrset(), dns_tkey_processdhresponse(), dns_tkey_processquery(), dns_tsig_sign(), dns_tsig_verify(), dns_update_signaturesinc(), dns_zone_notifyreceive(), dump_rdataset_raw(), fctx_getaddresses(), fill_array(), find_nsec3(), find_tkey(), findnoqname(), fixup_nsec3param(), followup_lookup(), foreach_node_rr_action(), foreach_rr(), get_current_rr(), get_dst_key(), get_edns_expire(), get_iterations(), get_key(), get_name_diff(), get_soa_ttls(), goodsig(), ignore(), import_rdataset(), in_rootns(), innsec3params(), inrrset(), integrity_checks(), is_answeraddress_allowed(), isdelegation(), isoptout(), isselfsigned(), iszonesecure(), keydone(), keyfetch_done(), keyfromds(), load_secroots(), loadds(), lookup_find(), main(), mark_active_keys(), match_nsec3(), matchkey(), minimal_update(), mkey_dumpzone(), ncache_summary(), need_nsec_chain(), notify_createmessage(), ns_server_signing(), ns_xfr_start(), nsec3clean(), printsection(), process_dhtkey(), process_opt(), process_soa(), query_addnxrrsetnsec(), query_addsoa(), query_addwildcardproof(), query_dns64(), query_filter64(), query_find(), query_findclosestnsec3(), question_totext(), rdataset_to_sortedarray(), rdataset_totext(), record_found(), recvsoa(), redirect(), redirect2(), refresh_callback(), refresh_time(), resolveaddr_done(), resume_addnsec3chain(), resume_signingwithkey(), revocable(), rpz_ck_dnssec(), rpz_rewrite(), rpz_rewrite_ip_rrset(), rr_exists(), rrset_cleanup(), rrsig_fromchildzone(), save_nsec3param(), save_nsrrset(), set_nsec3params(), set_target(), setresign(), setsoaserial(), short_answer(), signed_with_alg(), signed_with_key(), signset(), temp_check(), towiresorted(), tsig_verify_tcp(), updatesignwithkey(), val_rdataset_first(), validate(), validate_authority(), validate_ncache(), validatezonekey(), verifynsec(), verifynsec3s(), verifyset(), verifyzone(), view_find(), warn_rfc1918(), warnifallksk(), xfrin_recv_done(), zone_check_dnskeys(), zone_count_ns_rr(), zone_load_soa_rr(), zone_notify(), zone_refreshkeys(), and zone_rrset_check_dup().

isc_result_t dns_rdataset_next ( dns_rdataset_t rdataset  ) 

Move the rdata cursor to the next rdata in the rdataset (if any).

Requires:

Returns:

Definition at line 277 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdataset::methods, dns_rdatasetmethods::next, and REQUIRE.

Referenced by better_param(), check_address_records(), check_ds(), check_for_more_data(), check_nsec3param(), checkkey(), checknamessection(), checkns(), copy_name(), copy_ptr_targets(), copy_rdataset(), del_keysigs(), del_sig(), del_sigs(), delete(), delete_keydata(), delete_nsec(), deletematchingnsec3(), detailsection(), dlv_algorithm_supported(), dlv_validatezonekey(), dns_db_getsoaserial(), dns_dns64_aaaaok(), dns_dnssec_findzonekeys2(), dns_dnssec_keylistfromrdataset(), dns_dnssec_signs(), dns_message_checksig(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_ncache_towire(), dns_nsec3_activex(), dns_nsec3_addnsec3s(), dns_nsec3_addnsec3sx(), dns_nsec3_delnsec3sx(), dns_nsec3_maxiterations(), dns_nsec3param_deletechains(), dns_nsec_nseconly(), dns_private_chains(), dns_rdataset_additionaldata(), dns_rdataslab_fromrdataset(), dns_root_checkhints(), dns_rriterator_next(), dump_rdataset_raw(), fctx_getaddresses(), fill_array(), find_nsec3(), findnoqname(), fixup_nsec3param(), followup_lookup(), foreach_node_rr_action(), foreach_rr(), get_current_rr(), get_dst_key(), get_iterations(), get_key(), get_name_diff(), goodsig(), ignore(), import_rdataset(), in_rootns(), innsec3params(), inrrset(), integrity_checks(), is_answeraddress_allowed(), isdelegation(), isselfsigned(), iszonesecure(), keydone(), keyfetch_done(), keyfromds(), load_secroots(), loadds(), main(), mark_active_keys(), match_nsec3(), matchkey(), minimal_update(), mkey_dumpzone(), ncache_summary(), need_nsec_chain(), notify_createmessage(), ns_server_signing(), ns_xfr_start(), nsec3clean(), printsection(), process_dhtkey(), query_dns64(), query_filter64(), query_find(), rdataset_to_sortedarray(), rdataset_totext(), record_found(), redirect(), redirect2(), resolveaddr_done(), resume_addnsec3chain(), resume_signingwithkey(), revocable(), rpz_ck_dnssec(), rpz_rewrite(), rpz_rewrite_ip_rrset(), rr_exists(), rrset_cleanup(), rrsig_fromchildzone(), save_nsec3param(), save_nsrrset(), setresign(), short_answer(), signed_with_alg(), signed_with_key(), signset(), temp_check(), towiresorted(), updatesignwithkey(), val_rdataset_next(), validate(), validate_ncache(), validatezonekey(), verifynsec(), verifynsec3s(), verifyset(), verifyzone(), warnifallksk(), xfrin_recv_done(), zone_check_dnskeys(), zone_count_ns_rr(), zone_load_soa_rr(), zone_notify(), zone_refreshkeys(), and zone_rrset_check_dup().

void dns_rdataset_current ( dns_rdataset_t rdataset,
dns_rdata_t rdata 
)

Make 'rdata' refer to the current rdata.

Notes:

Requires: Ensures:

Definition at line 290 of file rdataset.c.

References dns_rdatasetmethods::current, DNS_RDATASET_VALID, dns_rdataset::methods, and REQUIRE.

Referenced by 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(), copy_name(), copy_ptr_targets(), copy_rdataset(), 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_dns64_aaaaok(), dns_dnssec_findzonekeys2(), dns_dnssec_keylistfromrdataset(), dns_dnssec_signs(), dns_dnssec_verifymessage(), dns_message_checksig(), dns_message_getquerytsig(), dns_message_pseudosectiontotext(), dns_message_setopt(), dns_message_signer(), dns_ncache_current(), dns_ncache_getrdataset(), dns_ncache_getsigrdataset(), dns_ncache_towire(), dns_nsec3_activex(), dns_nsec3_addnsec3s(), dns_nsec3_addnsec3sx(), dns_nsec3_delnsec3sx(), dns_nsec3_maxiterations(), dns_nsec3_noexistnodata(), dns_nsec3param_deletechains(), dns_nsec_noexistnodata(), dns_nsec_nseconly(), dns_private_chains(), dns_rdataset_additionaldata(), dns_rdataslab_fromrdataset(), dns_root_checkhints(), dns_rpz_decode_cname(), dns_rriterator_current(), dns_tkey_processdhresponse(), dns_tkey_processquery(), dns_tsig_sign(), dns_tsig_verify(), dns_update_signaturesinc(), dns_zone_notifyreceive(), dump_rdataset_raw(), fctx_getaddresses(), fill_array(), find_nsec3(), find_tkey(), findnoqname(), fixup_nsec3param(), followup_lookup(), foreach_node_rr_action(), foreach_rr(), get_current_rr(), get_dst_key(), get_edns_expire(), get_iterations(), get_key(), get_name_diff(), get_soa_ttls(), goodsig(), ignore(), import_rdataset(), in_rootns(), innsec3params(), inrrset(), integrity_checks(), is_answeraddress_allowed(), isdelegation(), isoptout(), isselfsigned(), iszonesecure(), keydone(), keyfetch_done(), keyfromds(), load_secroots(), loadds(), lookup_find(), main(), mark_active_keys(), match_nsec3(), matchkey(), minimal_update(), mkey_dumpzone(), ncache_summary(), need_nsec_chain(), notify_createmessage(), ns_server_signing(), ns_xfr_start(), nsec3clean(), printsection(), process_dhtkey(), process_opt(), process_soa(), query_addnxrrsetnsec(), query_addsoa(), query_addwildcardproof(), query_dns64(), query_filter64(), query_find(), query_findclosestnsec3(), rdataset_to_sortedarray(), rdataset_totext(), record_found(), recvsoa(), refresh_callback(), refresh_time(), resolveaddr_done(), 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(), setresign(), setsoaserial(), short_answer(), signed_with_alg(), signed_with_key(), signset(), temp_check(), towiresorted(), tsig_verify_tcp(), updatesignwithkey(), validate(), validate_authority(), validate_ncache(), validatezonekey(), verifynsec(), verifynsec3s(), verifyset(), verifyzone(), view_find(), warn_rfc1918(), warnifallksk(), xfrin_recv_done(), zone_check_dnskeys(), zone_count_ns_rr(), zone_load_soa_rr(), zone_notify(), zone_refreshkeys(), and zone_rrset_check_dup().

static int towire_compare ( const void *  av,
const void *  bv 
) [static]

Definition at line 312 of file rdataset.c.

References towire_sort::key.

Referenced by towiresorted().

static isc_result_t towiresorted ( dns_rdataset_t rdataset,
const dns_name_t owner_name,
dns_compress_t cctx,
isc_buffer_t target,
dns_rdatasetorderfunc_t  order,
const void *  order_arg,
isc_boolean_t  partial,
unsigned int  options,
unsigned int *  countp,
void **  state 
) [static]

Definition at line 319 of file rdataset.c.

References dns_rdataset::attributes, cleanup(), dns_rdataset::count, dns_rdatasetmethods::count, DNS_COMPRESS_GLOBAL14, dns_compress_rollback(), dns_compress_setmethods(), dns_fixedname_init, dns_fixedname_name, dns_name_copy(), dns_name_towire(), dns_ncache_towire(), DNS_NCACHETOWIRE_OMITDNSSEC, dns_rdata_init(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdata_towire(), dns_rdataset_current(), dns_rdataset_first(), dns_rdataset_getownercase(), dns_rdataset_next(), DNS_RDATASET_VALID, DNS_RDATASETATTR_NEGATIVE, DNS_RDATASETATTR_QUESTION, DNS_RDATASETTOWIRE_OMITDNSSEC, fixed, INSIST, isc_buffer_add, isc_buffer_availableregion, isc_buffer_putuint16, isc_buffer_putuint32, ISC_FALSE, isc_mem_get, isc_mem_put, ISC_R_NOMORE, ISC_R_NOSPACE, ISC_R_SUCCESS, isc_random_get(), ISC_TRUE, ISC_UINT32_MAX, towire_sort::key, isc_region::length, MAX_SHUFFLE, dns_compress::mctx, dns_rdataset::methods, name, r, towire_sort::rdata, dns_rdataset::rdclass, REQUIRE, towire_compare(), dns_rdataset::ttl, dns_rdataset::type, UNUSED, isc_buffer::used, WANT_FIXED, and WANT_RANDOM.

Referenced by dns_rdataset_towire(), dns_rdataset_towirepartial(), and dns_rdataset_towiresorted().

isc_result_t dns_rdataset_towiresorted ( dns_rdataset_t rdataset,
const dns_name_t owner_name,
dns_compress_t cctx,
isc_buffer_t target,
dns_rdatasetorderfunc_t  order,
const void *  order_arg,
unsigned int  options,
unsigned int *  countp 
)

Like dns_rdataset_towire(), but sorting the rdatasets according to the integer value returned by 'order' when called with the rdataset and 'order_arg' as arguments.

Requires:

Definition at line 571 of file rdataset.c.

References ISC_FALSE, and towiresorted().

Referenced by dns_message_rendersection().

isc_result_t dns_rdataset_towirepartial ( dns_rdataset_t rdataset,
const dns_name_t owner_name,
dns_compress_t cctx,
isc_buffer_t target,
dns_rdatasetorderfunc_t  order,
const void *  order_arg,
unsigned int  options,
unsigned int *  countp,
void **  state 
)

Like dns_rdataset_towiresorted() except that a partial rdataset may be written.

Requires:

Returns:

Definition at line 586 of file rdataset.c.

References ISC_TRUE, REQUIRE, and towiresorted().

Referenced by dns_message_rendersection().

isc_result_t dns_rdataset_towire ( dns_rdataset_t rdataset,
dns_name_t owner_name,
dns_compress_t cctx,
isc_buffer_t target,
unsigned int  options,
unsigned int *  countp 
)

Convert 'rdataset' to wire format, compressing names as specified in 'cctx', and storing the result in 'target'.

Notes:

Requires: Ensures: Returns:

Definition at line 603 of file rdataset.c.

References ISC_FALSE, and towiresorted().

Referenced by dns_message_renderend().

isc_result_t dns_rdataset_additionaldata ( dns_rdataset_t rdataset,
dns_additionaldatafunc_t  add,
void *  arg 
)

For each rdata in rdataset, call 'add' for each name and type in the rdata which is subject to additional section processing.

Requires:

Ensures:

Returns:

Definition at line 615 of file rdataset.c.

References dns_rdataset::attributes, dns_rdata_additionaldata(), DNS_RDATA_INIT, dns_rdata_reset(), dns_rdataset_current(), dns_rdataset_first(), dns_rdataset_next(), DNS_RDATASET_VALID, DNS_RDATASETATTR_QUESTION, ISC_R_NOMORE, ISC_R_SUCCESS, towire_sort::rdata, and REQUIRE.

Referenced by answer_response(), chase_additional(), noanswer_response(), query_addadditional(), and query_addrdataset().

isc_result_t dns_rdataset_addnoqname ( dns_rdataset_t rdataset,
dns_name_t name 
)

Associate a noqname proof with this record. Sets DNS_RDATASETATTR_NOQNAME if successful. Adjusts the 'rdataset->ttl' to minimum of the 'rdataset->ttl' and the 'nsec'/'nsec3' and 'rrsig(nsec)'/'rrsig(nsec3)' ttl.

Requires:

Definition at line 648 of file rdataset.c.

References dns_rdatasetmethods::addnoqname, DNS_RDATASET_VALID, ISC_R_NOTIMPLEMENTED, dns_rdataset::methods, and REQUIRE.

Referenced by cache_name().

isc_result_t dns_rdataset_getnoqname ( dns_rdataset_t rdataset,
dns_name_t name,
dns_rdataset_t neg,
dns_rdataset_t negsig 
)

Return the noqname proof for this record.

Requires:

Definition at line 658 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdatasetmethods::getnoqname, ISC_R_NOTIMPLEMENTED, dns_rdataset::methods, and REQUIRE.

Referenced by addnoqname(), and query_addnoqnameproof().

isc_result_t dns_rdataset_addclosest ( dns_rdataset_t rdataset,
dns_name_t name 
)

Associate a closest encloset proof with this record. Sets DNS_RDATASETATTR_CLOSEST if successful. Adjusts the 'rdataset->ttl' to minimum of the 'rdataset->ttl' and the 'nsec' and 'rrsig(nsec)' ttl.

Requires:

Definition at line 670 of file rdataset.c.

References dns_rdatasetmethods::addclosest, DNS_RDATASET_VALID, ISC_R_NOTIMPLEMENTED, dns_rdataset::methods, and REQUIRE.

isc_result_t dns_rdataset_getclosest ( dns_rdataset_t rdataset,
dns_name_t name,
dns_rdataset_t nsec,
dns_rdataset_t nsecsig 
)

Return the closest encloser for this record.

Requires:

Definition at line 680 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdatasetmethods::getclosest, ISC_R_NOTIMPLEMENTED, dns_rdataset::methods, and REQUIRE.

Referenced by addclosest(), and query_addnoqnameproof().

isc_result_t dns_rdataset_getadditional ( dns_rdataset_t rdataset,
dns_rdatasetadditional_t  type,
dns_rdatatype_t  qtype,
dns_acache_t acache,
dns_zone_t **  zonep,
dns_db_t **  dbp,
dns_dbversion_t **  versionp,
dns_dbnode_t **  nodep,
dns_name_t fname,
dns_message_t msg,
isc_stdtime_t  now 
)

Get cached additional information from the DB node for a particular 'rdataset.' 'type' is one of dns_rdatasetadditional_fromauth, dns_rdatasetadditional_fromcache, and dns_rdatasetadditional_fromglue, which specifies the origin of the information. 'qtype' is intended to be used for specifying a particular rdata type in the cached information.

Requires:

Ensures: Returns:

Definition at line 695 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdatasetmethods::getadditional, ISC_R_FAILURE, dns_rdataset::methods, and REQUIRE.

Referenced by query_addadditional2().

isc_result_t dns_rdataset_setadditional ( dns_rdataset_t rdataset,
dns_rdatasetadditional_t  type,
dns_rdatatype_t  qtype,
dns_acache_t acache,
dns_zone_t zone,
dns_db_t db,
dns_dbversion_t version,
dns_dbnode_t node,
dns_name_t fname 
)

Set cached additional information to the DB node for a particular 'rdataset.' See dns_rdataset_getadditional for the semantics of 'type' and 'qtype'.

Requires:

Ensures: Returns:

Definition at line 728 of file rdataset.c.

References DNS_RDATASET_VALID, ISC_R_FAILURE, dns_rdataset::methods, REQUIRE, and dns_rdatasetmethods::setadditional.

Referenced by query_addadditional2().

isc_result_t dns_rdataset_putadditional ( dns_acache_t acache,
dns_rdataset_t rdataset,
dns_rdatasetadditional_t  type,
dns_rdatatype_t  qtype 
)

Discard cached additional information stored in the DB node for a particular 'rdataset.' See dns_rdataset_getadditional for the semantics of 'type' and 'qtype'.

Requires:

Ensures: Returns:

Definition at line 752 of file rdataset.c.

References DNS_RDATASET_VALID, ISC_R_FAILURE, dns_rdataset::methods, dns_rdatasetmethods::putadditional, and REQUIRE.

Referenced by query_discardcache().

void dns_rdataset_settrust ( dns_rdataset_t rdataset,
dns_trust_t  trust 
)

Set the trust of the 'rdataset' to trust in any in the backing database. The local trust level of 'rdataset' is also set.

Definition at line 769 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdataset::methods, REQUIRE, dns_rdatasetmethods::settrust, and dns_rdataset::trust.

Referenced by markanswer(), and marksecure().

void dns_rdataset_expire ( dns_rdataset_t rdataset  ) 

Mark the rdataset to be expired in the backing database.

Definition at line 780 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdatasetmethods::expire, dns_rdataset::methods, and REQUIRE.

Referenced by cnamevalidated(), dlvvalidated(), dsvalidated(), and keyvalidated().

void dns_rdataset_clearprefetch ( dns_rdataset_t rdataset  ) 

Clear the PREFETCH attribute for the given rdataset in the underlying database.

In the cache database, this signals that the rdataset is not eligible to be prefetched when the TTL is close to expiring. It has no function in other databases.

Definition at line 789 of file rdataset.c.

References dns_rdatasetmethods::clearprefetch, DNS_RDATASET_VALID, dns_rdataset::methods, and REQUIRE.

Referenced by query_prefetch().

void dns_rdataset_setownercase ( dns_rdataset_t rdataset,
const dns_name_t name 
)

Store the casing of 'name', the owner name of 'rdataset', into a bitfield so that the name can be capitalized the same when when the rdataset is used later. This sets the CASESET attribute.

Definition at line 798 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdataset::methods, REQUIRE, and dns_rdatasetmethods::setownercase.

Referenced by checkandaddsoa(), getsection(), query_add_cname(), query_dns64(), query_filter64(), and setownercase().

void dns_rdataset_getownercase ( const dns_rdataset_t rdataset,
dns_name_t name 
)

If the CASESET attribute is set, retrieve the case bitfield that was previously stored by dns_rdataset_getownername(), and capitalize 'name' according to it. If CASESET is not set, do nothing.

Definition at line 807 of file rdataset.c.

References DNS_RDATASET_VALID, dns_rdatasetmethods::getownercase, dns_rdataset::methods, and REQUIRE.

Referenced by addrdataset(), checkandaddsoa(), dns_db_createsoatuple(), dns_rriterator_first(), dns_rriterator_nextrrset(), foreach_rr(), getownercase(), rdataset_totext(), and towiresorted().

void dns_rdataset_trimttl ( dns_rdataset_t rdataset,
dns_rdataset_t sigrdataset,
dns_rdata_rrsig_t *  rrsig,
isc_stdtime_t  now,
isc_boolean_t  acceptexpired 
)

Trim the ttl of 'rdataset' and 'sigrdataset' so that they will expire at or before 'rrsig->expiretime'. If 'acceptexpired' is true and the signature has expired or will expire in the next 120 seconds, limit the ttl to be no more than 120 seconds.

The ttl is further limited by the original ttl as stored in 'rrsig' and the original ttl values of 'rdataset' and 'sigrdataset'.

Requires:

Definition at line 816 of file rdataset.c.

References DNS_RDATASET_VALID, ISC_MIN, isc_serial_ge(), isc_serial_le(), REQUIRE, dns_rdataset::ttl, and ttl.

Referenced by ATF_TC_BODY(), mark_secure(), and validate().


Variable Documentation

const char* trustnames[] [static]

Initial value:

 {
        "none",
        "pending-additional",
        "pending-answer",
        "additional",
        "glue",
        "answer",
        "authauthority",
        "authanswer",
        "secure",
        "local" 
}

Definition at line 39 of file rdataset.c.

Referenced by dns_trust_totext().

dns_rdatasetmethods_t question_methods [static]

Initial value:

 {
        question_disassociate,
        question_cursor,
        question_cursor,
        question_current,
        question_clone,
        question_count,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL
}

Definition at line 195 of file rdataset.c.


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