mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Rewrite bridge addresses earlier
Call rewrite_node_address_for_bridge() in launch_direct_bridge_descriptor_fetch() in case there's an existing node_t for it.
This commit is contained in:
parent
990322fca4
commit
9b60acd4d4
4
changes/bug20532
Normal file
4
changes/bug20532
Normal file
@ -0,0 +1,4 @@
|
||||
o Minor bugfixes (bridges):
|
||||
- Overwrite the bridge address earlier in the process of directly
|
||||
retrieving its descriptor, to make sure we reach it on the configured
|
||||
address. Fixes bug 20532; bugfix on 0.2.0.10-alpha.
|
@ -54,6 +54,8 @@ struct bridge_info_t {
|
||||
};
|
||||
|
||||
static void bridge_free(bridge_info_t *bridge);
|
||||
static void rewrite_node_address_for_bridge(const bridge_info_t *bridge,
|
||||
node_t *node);
|
||||
|
||||
/** A list of configured bridges. Whenever we actually get a descriptor
|
||||
* for one, we add it as an entry guard. Note that the order of bridges
|
||||
@ -571,6 +573,12 @@ launch_direct_bridge_descriptor_fetch(bridge_info_t *bridge)
|
||||
return;
|
||||
}
|
||||
|
||||
/* If we already have a node_t for this bridge, rewrite its address now. */
|
||||
node_t *node = node_get_mutable_by_id(bridge->identity);
|
||||
if (node) {
|
||||
rewrite_node_address_for_bridge(bridge, node);
|
||||
}
|
||||
|
||||
tor_addr_port_t bridge_addrport;
|
||||
memcpy(&bridge_addrport.addr, &bridge->addr, sizeof(tor_addr_t));
|
||||
bridge_addrport.port = bridge->port;
|
||||
|
Loading…
Reference in New Issue
Block a user