get_configured_bridge_by_addr_port_digest is not robust
In `bridge_add_from_config()` we call `get_configured_bridge_by_addr_port_digest()` to check if a carbon-copy version of the bridge already exists (so that we don't add duplicate bridges after SIGHUPs). I think there are two shortcomings in `get_configured_bridge_by_addr_port_digest()`: a) It's not pluggable transports aware. If the bridge's transport changes, tor won't notice it. b) If a bridge has a fingerprint and it remains the same, but its address/port changes, tor won't notice it. ``` SMARTLIST_FOREACH_BEGIN(bridge_list, bridge_info_t *, bridge) { if (tor_digest_is_zero(bridge->identity) && !tor_addr_compare(&bridge->addr, addr, CMP_EXACT) && bridge->port == port) return bridge; if (digest && tor_memeq(bridge->identity, digest, DIGEST_LEN)) return bridge; } ```
issue