tor  master
Typedefs | Functions
bridges.h File Reference

Header file for circuitbuild.c. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct bridge_info_t bridge_info_t
 

Functions

void mark_bridge_list (void)
 
void sweep_bridge_list (void)
 
const smartlist_tbridge_list_get (void)
 
const uint8_t * bridge_get_rsa_id_digest (const bridge_info_t *bridge)
 
const tor_addr_port_tbridge_get_addr_port (const bridge_info_t *bridge)
 
bridge_info_tget_configured_bridge_by_addr_port_digest (const tor_addr_t *addr, uint16_t port, const char *digest)
 
bridge_info_tget_configured_bridge_by_exact_addr_port_digest (const tor_addr_t *addr, uint16_t port, const char *digest)
 
int addr_is_a_configured_bridge (const tor_addr_t *addr, uint16_t port, const char *digest)
 
int extend_info_is_a_configured_bridge (const extend_info_t *ei)
 
int routerinfo_is_a_configured_bridge (const routerinfo_t *ri)
 
int node_is_a_configured_bridge (const node_t *node)
 
void learned_router_identity (const tor_addr_t *addr, uint16_t port, const char *digest, const ed25519_public_key_t *ed_id)
 
void bridge_add_from_config (struct bridge_line_t *bridge_line)
 
void retry_bridge_descriptor_fetch_directly (const char *digest)
 
void fetch_bridge_descriptors (const or_options_t *options, time_t now)
 
void learned_bridge_descriptor (routerinfo_t *ri, int from_cache)
 
const smartlist_tget_socks_args_by_bridge_addrport (const tor_addr_t *addr, uint16_t port)
 
int any_bridges_dont_support_microdescriptors (void)
 
const char * find_transport_name_by_bridge_addrport (const tor_addr_t *addr, uint16_t port)
 
int get_transport_by_bridge_addrport (const tor_addr_t *addr, uint16_t port, const struct transport_t **transport)
 
 MOCK_DECL (int, transport_is_needed,(const char *transport_name))
 
int validate_pluggable_transports_config (void)
 
 MOCK_DECL (smartlist_t *, list_bridge_identities,(void))
 
 MOCK_DECL (download_status_t *, get_bridge_dl_status_by_id,(const char *digest))
 
void bridges_free_all (void)
 

Detailed Description

Header file for circuitbuild.c.

Function Documentation

◆ addr_is_a_configured_bridge()

int addr_is_a_configured_bridge ( const tor_addr_t addr,
uint16_t  port,
const char *  digest 
)

If we have a bridge configured whose digest matches digest, or a bridge with no known digest whose address matches addr:port, return 1. Else return 0. If digest is NULL, check for address/port matches only.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bridge_add_from_config()

void bridge_add_from_config ( bridge_line_t bridge_line)

Register the bridge information in bridge_line to the bridge subsystem. Steals reference of bridge_line.

◆ bridge_get_addr_port()

const tor_addr_port_t* bridge_get_addr_port ( const bridge_info_t bridge)

Given a bridge, return a pointer to its configured addr:port combination.

Here is the caller graph for this function:

◆ bridge_get_rsa_id_digest()

const uint8_t* bridge_get_rsa_id_digest ( const bridge_info_t bridge)

Given a bridge, return a pointer to its RSA identity digest, or NULL if we don't know one for it.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bridge_list_get()

const smartlist_t* bridge_list_get ( void  )

Return a list of all the configured bridges, as bridge_info_t pointers.

◆ bridges_free_all()

void bridges_free_all ( void  )

Release all storage held in bridges.c

Here is the call graph for this function:

◆ extend_info_is_a_configured_bridge()

int extend_info_is_a_configured_bridge ( const extend_info_t ei)

If we have a bridge configured whose digest matches ei->identity_digest, or a bridge with no known digest whose address matches ei->addr:ei->port, return 1. Else return 0. If ei->onion_key is NULL, check for address/port matches only.

Here is the call graph for this function:

◆ fetch_bridge_descriptors()

void fetch_bridge_descriptors ( const or_options_t options,
time_t  now 
)

For each bridge in our list for which we don't currently have a descriptor, fetch a new copy of its descriptor – either directly from the bridge or via a bridge authority.

Here is the call graph for this function:

◆ find_transport_name_by_bridge_addrport()

const char* find_transport_name_by_bridge_addrport ( const tor_addr_t addr,
uint16_t  port 
)

Given the addr and port of a bridge, if that bridge supports a pluggable transport, return its name. Otherwise, return NULL.

Here is the caller graph for this function:

◆ get_configured_bridge_by_addr_port_digest()

bridge_info_t* get_configured_bridge_by_addr_port_digest ( const tor_addr_t addr,
uint16_t  port,
const char *  digest 
)

If we have a bridge configured whose digest matches digest, or a bridge with no known digest whose address matches addr:port, return that bridge. Else return NULL. If digest is NULL, check for address/port matches only.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_configured_bridge_by_exact_addr_port_digest()

bridge_info_t* get_configured_bridge_by_exact_addr_port_digest ( const tor_addr_t addr,
uint16_t  port,
const char *  digest 
)

As get_configured_bridge_by_addr_port, but require that the address match addr:port, and that the ID digest match digest. (The other function will ignore the address if the digest matches.)

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_socks_args_by_bridge_addrport()

const smartlist_t* get_socks_args_by_bridge_addrport ( const tor_addr_t addr,
uint16_t  port 
)

Return a smartlist containing all the SOCKS arguments that we should pass to the SOCKS proxy.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ learned_bridge_descriptor()

void learned_bridge_descriptor ( routerinfo_t ri,
int  from_cache 
)

We just learned a descriptor for a bridge. See if that digest is in our entry guard list, and add it if not.

Here is the caller graph for this function:

◆ learned_router_identity()

void learned_router_identity ( const tor_addr_t addr,
uint16_t  port,
const char *  digest,
const ed25519_public_key_t ed_id 
)

We made a connection to a router at addr:port without knowing its digest. Its digest turned out to be digest. If it was a bridge, and we still don't know its digest, record it.

Here is the call graph for this function:

◆ mark_bridge_list()

void mark_bridge_list ( void  )

Mark every entry of the bridge list to be removed on our next call to sweep_bridge_list unless it has first been un-marked.

◆ node_is_a_configured_bridge()

int node_is_a_configured_bridge ( const node_t node)

Return 1 if node is one of our configured bridges, else 0.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retry_bridge_descriptor_fetch_directly()

void retry_bridge_descriptor_fetch_directly ( const char *  digest)

Fetching the bridge descriptor from the bridge authority returned a "not found". Fall back to trying a direct fetch.

Here is the call graph for this function:

◆ routerinfo_is_a_configured_bridge()

int routerinfo_is_a_configured_bridge ( const routerinfo_t ri)

Return 1 if ri is one of our known bridges, else 0.

◆ sweep_bridge_list()

void sweep_bridge_list ( void  )

Remove every entry of the bridge list that was marked with mark_bridge_list if it has not subsequently been un-marked.