Back to index

tor  0.2.3.18-rc
Public Member Functions | Public Attributes
node_t Struct Reference

A node_t represents a Tor router. More...

#include <or.h>

Collaboration diagram for node_t:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 HT_ENTRY (node_t) ht_ent
 Used to look up the node_t by its identity digest.

Public Attributes

int nodelist_idx
 Position of the node within the list of nodes.
char identity [DIGEST_LEN]
 The identity digest of this node_t.
microdesc_tmd
routerinfo_tri
routerstatus_trs
unsigned int is_running:1
 As far as we know, is this OR currently running?
unsigned int is_valid:1
 Has a trusted dirserver validated this OR? (For Authdir: Have we validated this OR?)
unsigned int is_fast:1
unsigned int is_stable:1
 Do we think this is a fast OR?
unsigned int is_possible_guard:1
 Do we think this is a stable OR?
unsigned int is_exit:1
 Do we think this is an OK exit?
unsigned int is_bad_exit:1
 Do we think this exit is censored, borked, or otherwise nasty?
unsigned int is_bad_directory:1
 Do we think this directory is junky, underpowered, or otherwise useless?
unsigned int is_hs_dir:1
 True iff this router is a hidden service directory according to the authorities.
unsigned int name_lookup_warned:1
 Have we warned the user for referring to this (unnamed) router by nickname?
unsigned int rejects_all:1
 Local info: we treat this node as if it rejects everything.
country_t country
 According to the geoip db what country is this router in?

Detailed Description

A node_t represents a Tor router.

Specifically, a node_t is a Tor router as we are using it: a router that we are considering for circuits, connections, and so on. A node_t is a thin wrapper around the routerstatus, routerinfo, and microdesc for a single wrapper, and provides a consistent interface for all of them.

Also, a node_t has mutable state. While a routerinfo, a routerstatus, and a microdesc have[*] only the information read from a router descriptor, a consensus entry, and a microdescriptor (respectively)... a node_t has flags based on our own current opinion of the node.

[*] Actually, there is some leftover information in each that is mutable. We should try to excise that.

Definition at line 1992 of file or.h.


Member Function Documentation

Used to look up the node_t by its identity digest.


Member Data Documentation

According to the geoip db what country is this router in?

Definition at line 2039 of file or.h.

The identity digest of this node_t.

No more than one node_t per identity may exist at a time.

Definition at line 2002 of file or.h.

Do we think this directory is junky, underpowered, or otherwise useless?

Definition at line 2022 of file or.h.

unsigned int node_t::is_bad_exit

Do we think this exit is censored, borked, or otherwise nasty?

Definition at line 2020 of file or.h.

unsigned int node_t::is_exit

Do we think this is an OK exit?

Definition at line 2019 of file or.h.

unsigned int node_t::is_fast

Definition at line 2016 of file or.h.

unsigned int node_t::is_hs_dir

True iff this router is a hidden service directory according to the authorities.

Definition at line 2024 of file or.h.

Do we think this is a stable OR?

Do we think this is an OK guard?

Definition at line 2018 of file or.h.

unsigned int node_t::is_running

As far as we know, is this OR currently running?

Definition at line 2011 of file or.h.

unsigned int node_t::is_stable

Do we think this is a fast OR?

Definition at line 2017 of file or.h.

unsigned int node_t::is_valid

Has a trusted dirserver validated this OR? (For Authdir: Have we validated this OR?)

Definition at line 2013 of file or.h.

Definition at line 2004 of file or.h.

Have we warned the user for referring to this (unnamed) router by nickname?

Definition at line 2029 of file or.h.

Position of the node within the list of nodes.

Definition at line 1998 of file or.h.

unsigned int node_t::rejects_all

Local info: we treat this node as if it rejects everything.

Definition at line 2034 of file or.h.

Definition at line 2005 of file or.h.

Definition at line 2006 of file or.h.


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