|
Tor 0.5.0.0-alpha-dev
|
#include <microdesc_st.h>
Public Member Functions | |
| HT_ENTRY (microdesc_t) node | |
Data Fields | |
| time_t | last_listed |
| saved_location_bitfield_t | saved_location: 3 |
| unsigned int | no_save: 1 |
| unsigned int | held_in_map: 1 |
| unsigned int | policy_is_reject_star: 1 |
| unsigned int | held_by_nodes |
| off_t | off |
| char * | body |
| size_t | bodylen |
| char | digest [DIGEST256_LEN] |
| struct curve25519_public_key_t * | onion_curve25519_pkey |
| struct ed25519_public_key_t * | ed25519_identity_pkey |
| tor_addr_t | ipv6_addr |
| uint16_t | ipv6_orport |
| struct nodefamily_t * | family |
| struct smartlist_t * | family_ids |
| struct short_policy_t * | exit_policy |
| struct short_policy_t * | ipv6_exit_policy |
A microdescriptor is the smallest amount of information needed to build a circuit through a router. They are generated by the directory authorities, using information from the uploaded routerinfo documents. They are not self-signed, but are rather authenticated by having their hash in a signed networkstatus document.
Definition at line 28 of file microdesc_st.h.
| HT_ENTRY | ( | microdesc_t | ) |
Hashtable node, used to look up the microdesc by its digest.
| char* body |
A pointer to the encoded body of the microdescriptor. If the saved_location is SAVED_IN_CACHE, then the body is a pointer into an mmap'd region. Otherwise, it is a malloc'd string. The string might not be NUL-terminated; take the length from bodylen.
Definition at line 59 of file microdesc_st.h.
Referenced by dump_microdescriptor(), getinfo_helper_dir(), microdesc_cache_rebuild(), microdesc_extract_body(), microdesc_free_(), microdesc_wipe_body(), and spooled_resource_lookup_body().
| size_t bodylen |
The length of the microdescriptor in body.
Definition at line 61 of file microdesc_st.h.
Referenced by dump_microdescriptor(), getinfo_helper_dir(), microdesc_cache_clean(), microdesc_cache_rebuild(), microdesc_extract_body(), microdesc_wipe_body(), and spooled_resource_lookup_body().
| char digest[DIGEST256_LEN] |
A SHA256-digest of the microdescriptor.
Definition at line 63 of file microdesc_st.h.
Referenced by dirvote_format_microdesc_vote_line(), microdesc_cache_lookup_by_digest256(), microdesc_eq_(), microdesc_extract_body(), microdesc_hash_(), microdescs_parse_from_string(), nodelist_add_microdesc(), and nodelist_set_consensus().
| struct ed25519_public_key_t* ed25519_identity_pkey |
Ed25519 identity key, if included.
Definition at line 70 of file microdesc_st.h.
Referenced by microdesc_free_(), microdesc_parse_fields(), and node_get_ed25519_id().
| struct short_policy_t* exit_policy |
IPv4 exit policy summary
Definition at line 83 of file microdesc_st.h.
Referenced by compare_tor_addr_to_node_policy(), microdesc_free_(), and microdesc_parse_fields().
| struct nodefamily_t* family |
As routerinfo_t.family, with readable members parsed.
Definition at line 76 of file microdesc_st.h.
Referenced by microdesc_free_(), microdesc_parse_fields(), node_family_list_contains(), node_has_declared_family_list(), and node_lookup_declared_family_list().
| struct smartlist_t* family_ids |
A list of strings representing router family IDs. May be null; Copied from family-ids. (Happy families only.)
Definition at line 80 of file microdesc_st.h.
Referenced by microdesc_free_(), microdesc_parse_fields(), and node_get_family_ids().
| unsigned int held_by_nodes |
Reference count: how many node_ts have a reference to this microdesc?
Definition at line 47 of file microdesc_st.h.
Referenced by microdesc_check_counts(), microdesc_free_(), node_free_(), nodelist_add_microdesc(), nodelist_assert_ok(), nodelist_purge(), nodelist_remove_microdesc(), and nodelist_set_consensus().
| unsigned int held_in_map |
If true, this microdesc has an entry in the microdesc_map
Definition at line 43 of file microdesc_st.h.
Referenced by microdesc_cache_clean(), microdesc_cache_clear(), and microdesc_free_().
| tor_addr_t ipv6_addr |
Definition at line 72 of file microdesc_st.h.
Referenced by microdesc_parse_fields(), node_add_to_address_set(), node_describe(), node_get_pref_ipv6_orport(), node_is_a_configured_bridge(), nodelist_set_consensus(), and reachable_addr_allows_md_impl().
| struct short_policy_t* ipv6_exit_policy |
IPv6 exit policy summary
Definition at line 85 of file microdesc_st.h.
Referenced by compare_tor_addr_to_node_policy(), microdesc_free_(), and microdesc_parse_fields().
| uint16_t ipv6_orport |
As routerinfo_t.ipv6_orport
Definition at line 74 of file microdesc_st.h.
Referenced by microdesc_parse_fields(), node_add_to_address_set(), node_get_pref_ipv6_orport(), node_is_a_configured_bridge(), and reachable_addr_allows_md_impl().
| time_t last_listed |
When was this microdescriptor last listed in a consensus document? Once a microdesc has been unlisted long enough, we can drop it.
Definition at line 37 of file microdesc_st.h.
Referenced by dump_microdescriptor(), microdesc_parse_fields(), microdescs_add_list_to_cache(), microdescs_add_to_cache(), and update_microdescs_from_networkstatus().
| unsigned int no_save |
If true, do not attempt to cache this microdescriptor on disk.
Definition at line 41 of file microdesc_st.h.
Referenced by microdesc_cache_rebuild(), and microdesc_wipe_body().
| off_t off |
If saved_location == SAVED_IN_CACHE, this field holds the offset of the microdescriptor in the cache.
Definition at line 51 of file microdesc_st.h.
Referenced by dump_microdescriptor(), microdesc_cache_rebuild(), microdesc_extract_body(), and microdesc_wipe_body().
| struct curve25519_public_key_t* onion_curve25519_pkey |
As routerinfo_t.onion_curve25519_pkey
Definition at line 68 of file microdesc_st.h.
Referenced by microdesc_free_(), microdesc_has_curve25519_onion_key(), microdesc_parse_fields(), and node_get_curve25519_onion_key().
| unsigned int policy_is_reject_star |
True iff the exit policy for this router rejects everything.
Definition at line 45 of file microdesc_st.h.
Referenced by microdesc_parse_fields(), and node_exit_policy_rejects_all().
| saved_location_bitfield_t saved_location |
Where is this microdescriptor currently stored?
Definition at line 39 of file microdesc_st.h.
Referenced by microdesc_cache_rebuild(), microdesc_extract_body(), microdesc_free_(), and microdesc_wipe_body().