Tor 0.4.9.2-alpha-dev
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Public Member Functions | Data Fields
microdesc_t Struct Reference

#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_tonion_curve25519_pkey
 
struct ed25519_public_key_ted25519_identity_pkey
 
tor_addr_t ipv6_addr
 
uint16_t ipv6_orport
 
struct nodefamily_tfamily
 
struct smartlist_tfamily_ids
 
struct short_policy_texit_policy
 
struct short_policy_tipv6_exit_policy
 

Detailed Description

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.

Member Function Documentation

◆ HT_ENTRY()

HT_ENTRY ( microdesc_t  )

Hashtable node, used to look up the microdesc by its digest.

Field Documentation

◆ body

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

◆ bodylen

size_t bodylen

The length of the microdescriptor in body.

Definition at line 61 of file microdesc_st.h.

Referenced by microdesc_wipe_body().

◆ digest

char digest[DIGEST256_LEN]

A SHA256-digest of the microdescriptor.

Definition at line 63 of file microdesc_st.h.

Referenced by microdesc_cache_lookup_by_digest256(), microdesc_eq_(), and microdesc_hash_().

◆ ed25519_identity_pkey

struct ed25519_public_key_t* ed25519_identity_pkey

Ed25519 identity key, if included.

Definition at line 70 of file microdesc_st.h.

◆ exit_policy

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

◆ family

struct nodefamily_t* family

As routerinfo_t.family, with readable members parsed.

Definition at line 76 of file microdesc_st.h.

Referenced by node_family_list_contains().

◆ family_ids

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

◆ held_by_nodes

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(), node_free_(), and nodelist_remove_microdesc().

◆ held_in_map

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_clear(), and microdesc_free_().

◆ ipv6_addr

tor_addr_t ipv6_addr

As routerinfo_t.ipv6_addr

Definition at line 72 of file microdesc_st.h.

Referenced by node_add_to_address_set(), and node_describe().

◆ ipv6_exit_policy

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

◆ ipv6_orport

uint16_t ipv6_orport

As routerinfo_t.ipv6_orport

Definition at line 74 of file microdesc_st.h.

Referenced by node_add_to_address_set().

◆ last_listed

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

◆ no_save

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

◆ off

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

◆ onion_curve25519_pkey

struct curve25519_public_key_t* onion_curve25519_pkey

◆ policy_is_reject_star

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

◆ saved_location

saved_location_bitfield_t saved_location

Where is this microdescriptor currently stored?

Definition at line 39 of file microdesc_st.h.

Referenced by microdesc_wipe_body().


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