unbound: ub_packed_rrset_key Struct Reference

unbound 0.1

Data Fields
ub_packed_rrset_key Struct Reference

This structure contains an RRset. More...

`#include <packed_rrset.h>`

## Data Fields
struct lruhash_entry | entry
| entry into hashtable.
rrset_id_type | id
| the ID of this rrset.
struct packed_rrset_key | rk
| key data: dname, type and class

## Detailed Description

This structure contains an RRset.

A set of resource records that share the same domain name, type and class.

Due to memory management and threading, the key structure cannot be deleted, although the data can be. The id can be set to 0 to store and the structure can be recycled with a new id.

## Field Documentation

## ◆ entry

struct lruhash_entry ub_packed_rrset_key::entry

entry into hashtable.

Note the lock is never destroyed, even when this key is retired to the cache. the data pointer (if not null) points to a struct packed_rrset.

Referenced by add_item(), add_soa(), addr_to_additional(), adjust_ttl(), alloc_clear_special_list(), alloc_get_mem(), alloc_setup_special(), anchor_list_keytags(), assemble_it(), assembled_rrset_delete(), assembled_rrset_get_mem(), auth_packed_rrset_copy_region(), auth_zone_verify_zonemd_key_with_ds(), autr_assemble(), autr_rrset_delete(), az_add_negative_soa(), az_change_dnames(), az_generate_dname_answer(), cache_fill_missing(), canonical_compare(), check_contains_revoked(), check_delegation_secure(), deleg_remove_nonsecure_additional(), delegpt_add_rrset_A(), delegpt_add_rrset_AAAA(), delegpt_rrset_add_ns(), detect_wrongly_truncated(), dns64_adjust_a(), dns_cache_find_delegation(), dns_cache_lookup(), dns_cache_store(), dns_msg_ansadd(), dns_msg_authadd(), do_list_local_data(), ds_response_to_ke(), fill_any(), fill_res(), find_add_addrs(), find_add_ds(), find_closest_of_type(), get_cname_target(), get_rrset_ttl(), grab_nsec(), invalidateQueryInCache(), iter_find_rrset_in_prepend_answer(), iter_lookup_parent_glue_from_cache(), iter_lookup_parent_NS_from_cache(), iter_store_parentside_neg(), iter_store_parentside_rrset(), key_entry_create_rrset(), key_entry_get_rrset(), key_matches_a_ds(), key_ttl(), limit_nsec_ttl(), load_ref(), local_alias_shallow_copy_qname(), local_data_answer(), local_data_find_tag_datas(), local_zone_enter_rr(), local_zones_zone_answer(), make_soa_ubrrset(), mesh_state_add_reply(), move_into_cache(), neg_insert_data(), new_cname_override(), new_local_rrset(), new_rrset(), nsec3_get_algo(), nsec3_get_iter(), nsec3_get_nextowner(), nsec3_get_salt(), nsec3_has_optout(), nsec3_has_type(), nsec3_known_algo(), nsec3_no_type(), nsec3_of_param_has_type(), nsec3_unknown_flags(), nsec_verify_rrset(), packed_rrset_copy_alloc(), packed_rrset_copy_region(), packed_rrset_encode(), parse_copy_decompress(), parse_copy_decompress_rrset(), pr_rrs(), print_dp_main(), remove_spurious_authority(), repinfo_copy_rrsets(), reply_all_rrsets_secure(), reply_info_absolute_ttls(), reply_info_alloc_rrset_keys(), reply_info_set_ttls(), respip_addr_lookup(), respip_copy_rrset(), respip_enter_rr(), respip_rewrite_reply(), rpz_local_encode(), rpz_remove_clientip_rr(), rpz_rrset_delete_rr(), rrset_array_lock(), rrset_cache_expired_above(), rrset_cache_lookup(), rrset_cache_remove(), rrset_cache_remove_above(), rrset_cache_touch(), rrset_cache_update(), rrset_cache_update_wildcard(), rrset_canonical(), rrset_canonical_equal(), rrset_canonicalize_to_buffer(), rrset_check_sec_status(), rrset_equal(), rrset_get_count(), rrset_get_count(), rrset_get_count(), rrset_get_count(), rrset_get_rdata(), rrset_get_sig_algo(), rrset_get_sig_keytag(), rrset_get_sigcount(), rrset_get_ttl(), rrset_get_ttl(), rrset_msg(), rrset_update_id(), rrset_update_sec_status(), store_rrset(), store_rrsets(), synth_dname_msg(), tomsg(), ub_packed_rrset_parsedelete(), ub_rrset_sizefunc(), update_events(), val_check_nonsecure(), val_find_best_signer(), val_find_DS(), val_find_rrset_signer(), val_has_signed_nsecs(), val_mark_indeterminate(), val_mark_insecure(), val_neg_getmsg(), val_next_unchecked(), val_verify_rrset_entry(), validate_msg_signatures(), validate_referral_response(), xfr_master_add_addrs(), zonemd_check_dnssec_absence(), zonemd_dnssec_verify_rrset(), zonemd_get_dnskey_from_anchor(), zonemd_simple_rrset(), and zonemd_simple_rrsig().

## ◆ id

rrset_id_type ub_packed_rrset_key::id

the ID of this rrset.

unique, based on threadid + sequenceno. ids are not reused, except after flushing the cache. zero is an unused entry, and never a valid id. Check this value after getting entry.lock. The other values in this struct may only be altered after changing the id (which needs a writelock on entry.lock).

Referenced by alloc_special_obtain(), dns64_adjust_a(), dns_cache_store(), dns_cache_store_msg(), dump_rrset(), iter_store_parentside_rrset(), move_into_cache(), packed_rrset_copy_region(), repinfo_copy_rrsets(), respip_copy_rrset(), rrset_cache_touch(), rrset_cache_update(), rrset_cache_update_wildcard(), rrset_markdel(), rrset_update_id(), store_rrset(), store_rrsets(), ub_packed_rrset_parsedelete(), and ub_rrset_key_delete().

The documentation for this struct was generated from the following file:

- util/data/packed_rrset.h