Merge remote-tracking branch 'catalyst-oniongit/bug20532_031' into maint-0.3.2

This commit is contained in:
Nick Mathewson 2017-10-24 19:41:26 -04:00
commit e7126a1030
2 changed files with 12 additions and 0 deletions

4
changes/bug20532 Normal file
View 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.

View File

@ -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
@ -574,6 +576,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;