Header file for dirlist.c.
More...
Go to the source code of this file.
|
int | get_n_authorities (dirinfo_type_t type) |
|
const smartlist_t * | router_get_trusted_dir_servers (void) |
|
const smartlist_t * | router_get_fallback_dir_servers (void) |
|
smartlist_t * | router_get_trusted_dir_servers_mutable (void) |
|
smartlist_t * | router_get_fallback_dir_servers_mutable (void) |
|
void | mark_all_dirservers_up (smartlist_t *server_list) |
|
auth_dirport_usage_t | auth_dirport_usage_for_purpose (int purpose) |
|
dir_server_t * | router_get_trusteddirserver_by_digest (const char *d) |
|
dir_server_t * | router_get_fallback_dirserver_by_digest (const char *digest) |
|
int | router_digest_is_fallback_dir (const char *digest) |
|
dir_server_t * | trusteddirserver_get_by_v3_auth_digest (const char *d) |
|
int | router_digest_is_trusted_dir_type (const char *digest, dirinfo_type_t type) |
|
const tor_addr_port_t * | trusted_dir_server_get_dirport (const dir_server_t *ds, auth_dirport_usage_t usage, int addr_family) |
|
const tor_addr_port_t * | trusted_dir_server_get_dirport_exact (const dir_server_t *ds, auth_dirport_usage_t usage, int addr_family) |
|
bool | router_addr_is_trusted_dir_type (const tor_addr_t *addr, dirinfo_type_t type) |
|
dir_server_t * | trusted_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) |
|
void | trusted_dir_server_add_dirport (dir_server_t *ds, auth_dirport_usage_t usage, const tor_addr_port_t *dirport) |
|
dir_server_t * | fallback_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) |
|
Header file for dirlist.c.
Definition in file dirlist.h.
◆ router_addr_is_trusted_dir
◆ router_digest_is_trusted_dir
◆ auth_dirport_usage_t
Different usages for an authority's HTTP directory port.
Historically, only legacy ports existed; proposal 330 added multiple types of dirport to better enable authorities to offload work and resist DoS attacks.
Enumerator |
---|
AUTH_USAGE_LEGACY | Flag for an authority's dirport that is intended for misc/legacy usage. May be used when no other dirport is available.
|
AUTH_USAGE_UPLOAD | Flag for an authority's dirport that is intended for descriptor uploads only.
|
AUTH_USAGE_VOTING | Flag for an authority's dirport that is intended for voting only
|
AUTH_USAGE_DOWNLOAD | Flag for an authority's dirport that is intended for relay downloads only.
|
Definition at line 22 of file dirlist.h.
◆ auth_dirport_usage_for_purpose()
Return an appropriate usage value describing which authdir port to use for a given directory connection purpose.
Definition at line 304 of file dirlist.c.
◆ clear_dir_servers()
void clear_dir_servers |
( |
void |
| ) |
|
Remove all members from the list of dir servers.
Definition at line 600 of file dirlist.c.
◆ dir_server_add()
Add a directory server to the global list(s).
Definition at line 564 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 every time a new consensus is set.
Definition at line 87 of file dirlist.c.
◆ dirlist_free_all()
void dirlist_free_all |
( |
void |
| ) |
|
◆ 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 553 of file dirlist.c.
◆ get_n_authorities()
◆ mark_all_dirservers_up()
void mark_all_dirservers_up |
( |
smartlist_t * |
server_list | ) |
|
◆ router_addr_is_trusted_dir_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.
Only ORPorts' addresses are considered.
Definition at line 277 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 205 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 256 of file dirlist.c.
◆ router_get_fallback_dir_servers()
const smartlist_t * router_get_fallback_dir_servers |
( |
void |
| ) |
|
◆ router_get_fallback_dir_servers_mutable()
smartlist_t * router_get_fallback_dir_servers_mutable |
( |
void |
| ) |
|
◆ 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 181 of file dirlist.c.
Referenced by router_digest_is_fallback_dir().
◆ router_get_trusted_dir_servers()
const smartlist_t * router_get_trusted_dir_servers |
( |
void |
| ) |
|
◆ 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 119 of file dirlist.c.
◆ router_get_trusteddirserver_by_digest()
dir_server_t * router_get_trusteddirserver_by_digest |
( |
const char * |
digest | ) |
|
◆ trusted_dir_server_add_dirport()
Add dirport as an HTTP DirPort contact point for the directory authority ds, for use when contacting that authority for the given usage.
Multiple ports of the same usage are allowed; if present, then only the first one of each address family is currently used.
Definition at line 477 of file dirlist.c.
◆ trusted_dir_server_get_dirport()
Return the DirPort of the authority ds for with the usage type usage and address family addr_family. If none is found, try again with an AUTH_USAGE_LEGACY dirport, if there is one. Return NULL if no port can be found.
Definition at line 529 of file dirlist.c.
◆ trusted_dir_server_get_dirport_exact()
◆ 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 419 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 215 of file dirlist.c.