Tor  0.4.5.0-alpha-dev
Macros | Functions
dirlist.h File Reference

Header file for dirlist.c. More...

Go to the source code of this file.

Macros

#define router_addr_is_trusted_dir(d)    router_addr_is_trusted_dir_type((d), NO_DIRINFO)
 
#define router_digest_is_trusted_dir(d)    router_digest_is_trusted_dir_type((d), NO_DIRINFO)
 

Functions

int get_n_authorities (dirinfo_type_t type)
 
const smartlist_trouter_get_trusted_dir_servers (void)
 
const smartlist_trouter_get_fallback_dir_servers (void)
 
smartlist_trouter_get_trusted_dir_servers_mutable (void)
 
smartlist_trouter_get_fallback_dir_servers_mutable (void)
 
void mark_all_dirservers_up (smartlist_t *server_list)
 
dir_server_trouter_get_trusteddirserver_by_digest (const char *d)
 
dir_server_trouter_get_fallback_dirserver_by_digest (const char *digest)
 
int router_digest_is_fallback_dir (const char *digest)
 
dir_server_ttrusteddirserver_get_by_v3_auth_digest (const char *d)
 
bool router_addr_is_trusted_dir_type (const tor_addr_t *addr, dirinfo_type_t type)
 
int router_digest_is_trusted_dir_type (const char *digest, dirinfo_type_t type)
 
dir_server_ttrusted_dir_server_new (const char *nickname, const char *address, uint16_t dir_port, uint16_t or_port, const tor_addr_port_t *addrport_ipv6, const char *digest, const char *v3_auth_digest, dirinfo_type_t type, double weight)
 
dir_server_tfallback_dir_server_new (const tor_addr_t *addr, uint16_t dir_port, uint16_t or_port, const tor_addr_port_t *addrport_ipv6, const char *id_digest, double weight)
 
void dir_server_add (dir_server_t *ent)
 
void clear_dir_servers (void)
 
void dirlist_free_all (void)
 
void dirlist_add_trusted_dir_addresses (void)
 

Detailed Description

Header file for dirlist.c.

Definition in file dirlist.h.

Function Documentation

◆ clear_dir_servers()

void clear_dir_servers ( void  )

Remove all members from the list of dir servers.

Definition at line 455 of file dirlist.c.

◆ dir_server_add()

void dir_server_add ( dir_server_t ent)

Add a directory server to the global list(s).

Definition at line 423 of file dirlist.c.

◆ dirlist_add_trusted_dir_addresses()

void dirlist_add_trusted_dir_addresses ( void  )

Go over the trusted directory server list and add their address(es) to the nodelist address set. This is called everytime a new consensus is set.

Definition at line 71 of file dirlist.c.

◆ fallback_dir_server_new()

dir_server_t* fallback_dir_server_new ( const tor_addr_t ipv4_addr,
uint16_t  ipv4_dirport,
uint16_t  ipv4_orport,
const tor_addr_port_t addrport_ipv6,
const char *  id_digest,
double  weight 
)

Return a new dir_server_t for a fallback directory server at addr:or_port/dir_port, with identity key digest id_digest

Definition at line 412 of file dirlist.c.

◆ get_n_authorities()

int get_n_authorities ( dirinfo_type_t  type)

Return the number of directory authorities whose type matches some bit set in type

Definition at line 87 of file dirlist.c.

Referenced by fetch_bridge_descriptors(), networkstatus_check_consensus_signature(), and should_keep_srv().

◆ mark_all_dirservers_up()

void mark_all_dirservers_up ( smartlist_t server_list)

Mark as running every dir_server_t in server_list.

Definition at line 216 of file dirlist.c.

Referenced by router_reset_status_download_failures().

◆ router_addr_is_trusted_dir_type()

bool router_addr_is_trusted_dir_type ( const tor_addr_t addr,
dirinfo_type_t  type 
)

Return true iff the given address matches a trusted directory that matches at least one bit of type.

If type is NO_DIRINFO or ALL_DIRINFO, any authority is matched.

Definition at line 258 of file dirlist.c.

◆ router_digest_is_fallback_dir()

int router_digest_is_fallback_dir ( const char *  digest)

Return 1 if any fallback dirserver's identity key hashes to digest, or 0 if no such fallback is in the list of fallback_dir_servers. (fallback_dir_servers is affected by the FallbackDir and UseDefaultFallbackDirs torrc options.) The list of fallback directories includes the list of authorities.

Definition at line 189 of file dirlist.c.

◆ router_digest_is_trusted_dir_type()

int router_digest_is_trusted_dir_type ( const char *  digest,
dirinfo_type_t  type 
)

Return true iff digest is the digest of the identity key of a trusted directory matching at least one bit of type. If type is zero (NO_DIRINFO), or ALL_DIRINFO, any authority is okay.

Definition at line 240 of file dirlist.c.

◆ router_get_fallback_dirserver_by_digest()

dir_server_t* router_get_fallback_dirserver_by_digest ( const char *  digest)

Return the dir_server_t for the fallback dirserver whose identity key hashes to digest, or NULL if no such fallback is in the list of fallback_dir_servers. (fallback_dir_servers is affected by the FallbackDir and UseDefaultFallbackDirs torrc options.) The list of fallback directories includes the list of authorities.

Definition at line 165 of file dirlist.c.

Referenced by router_digest_is_fallback_dir().

◆ router_get_trusted_dir_servers_mutable()

smartlist_t* router_get_trusted_dir_servers_mutable ( void  )

Return a smartlist containing a list of dir_server_t * for all known trusted dirservers. Callers must not modify the list or its contents.

Definition at line 103 of file dirlist.c.

◆ router_get_trusteddirserver_by_digest()

dir_server_t* router_get_trusteddirserver_by_digest ( const char *  digest)

Return the dir_server_t for the directory authority whose identity key hashes to digest, or NULL if no such authority is known.

Definition at line 144 of file dirlist.c.

Referenced by handle_response_upload_dir().

◆ trusted_dir_server_new()

dir_server_t* trusted_dir_server_new ( const char *  nickname,
const char *  address,
uint16_t  ipv4_dirport,
uint16_t  ipv4_orport,
const tor_addr_port_t ipv6_addrport,
const char *  digest,
const char *  v3_auth_digest,
dirinfo_type_t  type,
double  weight 
)

Create an authoritative directory server at address:port, with identity key digest. If ipv4_addr_str is NULL, add ourself. Return the new trusted directory server entry on success or NULL if we couldn't add it.

Definition at line 366 of file dirlist.c.

◆ trusteddirserver_get_by_v3_auth_digest()

dir_server_t* trusteddirserver_get_by_v3_auth_digest ( const char *  digest)

Return the dir_server_t for the directory authority whose v3 identity key hashes to digest, or NULL if no such authority is known.

Definition at line 199 of file dirlist.c.