Tor 0.4.9.0-alpha-dev
Data Fields
routerinfo_t Struct Reference

#include <routerinfo_st.h>

Data Fields

signed_descriptor_t cache_info
 
char * nickname
 
tor_addr_t ipv4_addr
 
uint16_t ipv4_orport
 
uint16_t ipv4_dirport
 
tor_addr_t ipv6_addr
 
uint16_t ipv6_orport
 
char * tap_onion_pkey
 
size_t tap_onion_pkey_len
 
crypto_pk_tidentity_pkey
 
struct curve25519_public_key_tonion_curve25519_pkey
 
time_t cert_expiration_time
 
char * platform
 
char * protocol_list
 
uint32_t bandwidthrate
 
uint32_t bandwidthburst
 
uint32_t bandwidthcapacity
 
smartlist_texit_policy
 
struct short_policy_tipv6_exit_policy
 
long uptime
 
smartlist_tdeclared_family
 
char * contact_info
 
unsigned int is_hibernating:1
 
unsigned int caches_extra_info:1
 
unsigned int allow_single_hop_exits:1
 
unsigned int wants_to_be_hs_dir:1
 
unsigned int policy_is_reject_star:1
 
unsigned int needs_retest_if_added:1
 
unsigned int supports_tunnelled_dir_requests:1
 
unsigned int omit_from_vote:1
 
protover_summary_flags_t pv
 
uint8_t purpose
 

Detailed Description

Information about another onion router in the network.

Definition at line 20 of file routerinfo_st.h.

Field Documentation

◆ allow_single_hop_exits

unsigned int allow_single_hop_exits

Whether the router says it allows single hop exits.

Definition at line 75 of file routerinfo_st.h.

Referenced by node_allows_single_hop_exits().

◆ bandwidthburst

uint32_t bandwidthburst

How large is this OR's token bucket?

Definition at line 59 of file routerinfo_st.h.

◆ bandwidthcapacity

uint32_t bandwidthcapacity

◆ bandwidthrate

uint32_t bandwidthrate

How many bytes does this OR add to its token bucket per second?

Definition at line 57 of file routerinfo_st.h.

Referenced by bridge_get_advertised_bandwidth_bounded(), router_get_advertised_bandwidth(), and router_get_advertised_bandwidth_capped().

◆ cache_info

signed_descriptor_t cache_info

Definition at line 21 of file routerinfo_st.h.

◆ caches_extra_info

unsigned int caches_extra_info

Whether the router says it caches and serves extrainfo documents.

Definition at line 73 of file routerinfo_st.h.

Referenced by router_supports_extrainfo().

◆ cert_expiration_time

time_t cert_expiration_time

What's the earliest expiration time on all the certs in this routerinfo?

Definition at line 49 of file routerinfo_st.h.

◆ contact_info

char* contact_info

Declared contact info for this router.

Definition at line 70 of file routerinfo_st.h.

Referenced by authdir_wants_to_reject_router(), esc_router_info(), router_differences_are_cosmetic(), and routerinfo_free_().

◆ declared_family

smartlist_t* declared_family

Nicknames of router which this router claims are its family.

Definition at line 68 of file routerinfo_st.h.

Referenced by node_family_contains(), node_has_declared_family(), node_lookup_declared_family(), and router_differences_are_cosmetic().

◆ exit_policy

smartlist_t* exit_policy

What streams will this OR permit to exit on IPv4? NULL for 'reject *:*'.

Definition at line 62 of file routerinfo_st.h.

Referenced by compare_tor_addr_to_node_policy(), router_add_exit_policy(), router_compare_to_my_exit_policy(), router_differences_are_cosmetic(), and router_dump_exit_policy_to_string().

◆ identity_pkey

crypto_pk_t* identity_pkey

Public RSA key for signing.

Definition at line 44 of file routerinfo_st.h.

Referenced by router_differences_are_cosmetic(), and routerinfo_free_().

◆ ipv4_addr

tor_addr_t ipv4_addr

◆ ipv4_dirport

uint16_t ipv4_dirport

Definition at line 27 of file routerinfo_st.h.

◆ ipv4_orport

uint16_t ipv4_orport

Definition at line 26 of file routerinfo_st.h.

◆ ipv6_addr

tor_addr_t ipv6_addr

◆ ipv6_exit_policy

struct short_policy_t* ipv6_exit_policy

What streams will this OR permit to exit on IPv6? NULL for 'reject *:*'

Definition at line 66 of file routerinfo_st.h.

Referenced by compare_tor_addr_to_node_policy(), and router_compare_to_my_exit_policy().

◆ ipv6_orport

uint16_t ipv6_orport

Definition at line 31 of file routerinfo_st.h.

◆ is_hibernating

unsigned int is_hibernating

Whether the router claims to be hibernating

Definition at line 71 of file routerinfo_st.h.

Referenced by router_differences_are_cosmetic(), and router_is_active().

◆ needs_retest_if_added

unsigned int needs_retest_if_added

True if, after we have added this router, we should re-launch tests for it.

Definition at line 84 of file routerinfo_st.h.

◆ nickname

char* nickname

◆ omit_from_vote

unsigned int omit_from_vote

Used during voting to indicate that we should not include an entry for this routerinfo. Used only during voting.

Definition at line 93 of file routerinfo_st.h.

Referenced by routers_make_ed_keys_unique().

◆ onion_curve25519_pkey

struct curve25519_public_key_t* onion_curve25519_pkey

Public curve25519 key for onions

Definition at line 46 of file routerinfo_st.h.

Referenced by routerinfo_free_().

◆ platform

char* platform

What software/operating system is this OR using?

Definition at line 51 of file routerinfo_st.h.

Referenced by esc_router_info(), node_get_platform(), router_differences_are_cosmetic(), and routerinfo_free_().

◆ policy_is_reject_star

unsigned int policy_is_reject_star

True iff the exit policy for this router rejects everything.

Definition at line 80 of file routerinfo_st.h.

Referenced by node_exit_policy_rejects_all(), router_dump_exit_policy_to_string(), router_exit_policy_rejects_all(), and router_my_exit_policy_is_reject_star().

◆ protocol_list

char* protocol_list

Encoded list of subprotocol versions supported by this OR

Definition at line 53 of file routerinfo_st.h.

Referenced by routerinfo_free_().

◆ purpose

uint8_t purpose

In what way did we find out about this router? One of ROUTER_PURPOSE_*. Routers of different purposes are kept segregated and used for different things; see notes on ROUTER_PURPOSE_* macros above.

Definition at line 118 of file routerinfo_st.h.

Referenced by dirserv_set_bridges_running(), dirserv_should_launch_reachability_test(), learned_bridge_descriptor(), node_get_purpose(), router_add_to_routerlist(), router_differences_are_cosmetic(), and signed_descriptor_from_routerinfo().

◆ pv

Flags to summarize the protocol versions for this routerinfo_t.

Definition at line 96 of file routerinfo_st.h.

Referenced by node_get_protover_summary_flags().

◆ supports_tunnelled_dir_requests

unsigned int supports_tunnelled_dir_requests

True iff this router included "tunnelled-dir-server" in its descriptor, implying it accepts tunnelled directory requests, or it advertised dir_port > 0.

Definition at line 89 of file routerinfo_st.h.

Referenced by dirclient_fetches_from_authorities(), node_is_dir(), and router_differences_are_cosmetic().

◆ tap_onion_pkey

char* tap_onion_pkey

Public RSA TAP key for onions, ASN.1 encoded. We store this in its encoded format since storing it as a crypto_pk_t uses significantly more memory.

This may be absent.

Definition at line 40 of file routerinfo_st.h.

Referenced by router_tap_onion_keys_eq(), and routerinfo_free_().

◆ tap_onion_pkey_len

size_t tap_onion_pkey_len

Length of onion_pkey, in bytes.

Definition at line 42 of file routerinfo_st.h.

Referenced by router_tap_onion_keys_eq().

◆ uptime

long uptime

How many seconds the router claims to have been up

Definition at line 67 of file routerinfo_st.h.

Referenced by node_get_declared_uptime(), and real_uptime().

◆ wants_to_be_hs_dir

unsigned int wants_to_be_hs_dir

True iff this router claims to be a hidden service directory.

Definition at line 78 of file routerinfo_st.h.


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