tor  master
bridges.h
Go to the documentation of this file.
1 /* Copyright (c) 2001 Matej Pfajfar.
2  * Copyright (c) 2001-2004, Roger Dingledine.
3  * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
4  * Copyright (c) 2007-2017, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
6 
12 #ifndef TOR_BRIDGES_H
13 #define TOR_BRIDGES_H
14 
15 struct bridge_line_t;
16 
17 /* Opaque handle to a configured bridge */
18 typedef struct bridge_info_t bridge_info_t;
19 
20 void mark_bridge_list(void);
21 void sweep_bridge_list(void);
22 const smartlist_t *bridge_list_get(void);
23 const uint8_t *bridge_get_rsa_id_digest(const bridge_info_t *bridge);
26  const tor_addr_t *addr,
27  uint16_t port,
28  const char *digest);
30  const tor_addr_t *addr,
31  uint16_t port,
32  const char *digest);
33 
34 int addr_is_a_configured_bridge(const tor_addr_t *addr, uint16_t port,
35  const char *digest);
38 int node_is_a_configured_bridge(const node_t *node);
39 void learned_router_identity(const tor_addr_t *addr, uint16_t port,
40  const char *digest,
41  const ed25519_public_key_t *ed_id);
42 
43 void bridge_add_from_config(struct bridge_line_t *bridge_line);
44 void retry_bridge_descriptor_fetch_directly(const char *digest);
45 void fetch_bridge_descriptors(const or_options_t *options, time_t now);
46 void learned_bridge_descriptor(routerinfo_t *ri, int from_cache);
48  uint16_t port);
49 
50 int any_bridges_dont_support_microdescriptors(void);
51 
53  uint16_t port);
54 struct transport_t;
56  const struct transport_t **transport);
57 
58 MOCK_DECL(int, transport_is_needed, (const char *transport_name));
59 int validate_pluggable_transports_config(void);
60 
61 MOCK_DECL(smartlist_t *, list_bridge_identities, (void));
62 MOCK_DECL(download_status_t *, get_bridge_dl_status_by_id,
63  (const char *digest));
64 
65 void bridges_free_all(void);
66 
67 #ifdef TOR_BRIDGES_PRIVATE
68 STATIC void clear_bridge_list(void);
69 STATIC bridge_info_t *find_bridge_by_digest(const char *digest);
71  const char *digest,
72  const smartlist_t *orports);
73 STATIC void bridge_resolve_conflicts(const tor_addr_t *addr,
74  uint16_t port,
75  const char *digest,
76  const char *transport_name);
77 #endif /* defined(TOR_BRIDGES_PRIVATE) */
78 
79 #endif /* !defined(TOR_BRIDGES_H) */
80 
bridge_info_t * get_configured_bridge_by_addr_port_digest(const tor_addr_t *addr, uint16_t port, const char *digest)
Definition: bridges.c:190
Definition: or.h:3657
bridge_info_t * get_configured_bridge_by_exact_addr_port_digest(const tor_addr_t *addr, uint16_t port, const char *digest)
Definition: bridges.c:216
Definition: or.h:2504
Definition: crypto_ed25519.h:23
Definition: address.h:56
Definition: transports.h:15
const tor_addr_port_t * bridge_get_addr_port(const bridge_info_t *bridge)
Definition: bridges.c:151
Definition: config.h:199
void sweep_bridge_list(void)
Definition: bridges.c:85
const smartlist_t * get_socks_args_by_bridge_addrport(const tor_addr_t *addr, uint16_t port)
Definition: bridges.c:546
MOCK_DECL(int, router_have_minimum_dir_info,(void))
STATIC void bridge_resolve_conflicts(const tor_addr_t *addr, uint16_t port, const char *digest, const char *transport_name)
Definition: bridges.c:356
Definition: container.h:18
const uint8_t * bridge_get_rsa_id_digest(const bridge_info_t *bridge)
Definition: bridges.c:137
Definition: address.h:68
uint16_t port
Definition: transports.h:24
void bridges_free_all(void)
Definition: bridges.c:926
int extend_info_is_a_configured_bridge(const extend_info_t *ei)
Definition: bridges.c:254
void retry_bridge_descriptor_fetch_directly(const char *digest)
Definition: bridges.c:611
void learned_bridge_descriptor(routerinfo_t *ri, int from_cache)
Definition: bridges.c:838
void bridge_add_from_config(struct bridge_line_t *bridge_line)
Definition: bridges.c:423
Definition: bridges.c:33
tor_addr_t addr
Definition: transports.h:22
STATIC bridge_info_t * get_configured_bridge_by_orports_digest(const char *digest, const smartlist_t *orports)
Definition: bridges.c:162
int addr_is_a_configured_bridge(const tor_addr_t *addr, uint16_t port, const char *digest)
Definition: bridges.c:241
const char * find_transport_name_by_bridge_addrport(const tor_addr_t *addr, uint16_t port)
Definition: bridges.c:493
Definition: or.h:2107
tor_addr_t addr
Definition: bridges.c:37
void learned_router_identity(const tor_addr_t *addr, uint16_t port, const char *digest, const ed25519_public_key_t *ed_id)
Definition: bridges.c:299
STATIC void clear_bridge_list(void)
Definition: bridges.c:99
int routerinfo_is_a_configured_bridge(const routerinfo_t *ri)
Definition: bridges.c:276
const smartlist_t * bridge_list_get(void)
Definition: bridges.c:125
uint16_t port
Definition: bridges.c:39
int node_is_a_configured_bridge(const node_t *node)
Definition: bridges.c:283
void mark_bridge_list(void)
Definition: bridges.c:74
void fetch_bridge_descriptors(const or_options_t *options, time_t now)
Definition: bridges.c:624
STATIC bridge_info_t * find_bridge_by_digest(const char *digest)
Definition: bridges.c:477
Definition: or.h:2838
int get_transport_by_bridge_addrport(const tor_addr_t *addr, uint16_t port, const transport_t **transport)
Definition: bridges.c:516
Definition: or.h:2232