Would-be fix for bug 7733: learn bridge ID from descriptor

If somebody has configured a client to use a bridge without setting
an identity digest (not recommended), learn the identity digest from
whatever bridge descriptor we have downloaded or have in our cache.
This commit is contained in:
Nick Mathewson 2014-05-14 14:34:01 -04:00
parent 747f368c6d
commit 79c875ecdc

View File

@ -2187,6 +2187,13 @@ learned_bridge_descriptor(routerinfo_t *ri, int from_cache)
node = node_get_mutable_by_id(ri->cache_info.identity_digest);
tor_assert(node);
rewrite_node_address_for_bridge(bridge, node);
if (tor_digest_is_zero(bridge->identity)) {
memcpy(bridge->identity,ri->cache_info.identity_digest, DIGEST_LEN);
log_notice(LD_DIR, "Learned identity %s for bridge at %s:%d",
hex_str(bridge->identity, DIGEST_LEN),
fmt_and_decorate_addr(&bridge->addr),
(int) bridge->port);
}
add_an_entry_guard(node, 1, 1, 0, 0);
log_notice(LD_DIR, "new bridge descriptor '%s' (%s): %s", ri->nickname,