tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 236c92a0a78285a73b53c6d0f5edba7982407e9b
parent 2b3138741002e298ee9b6a0fb8150432bfdcb0fc
Author: David Goulet <dgoulet@torproject.org>
Date:   Fri, 23 Mar 2018 10:11:37 -0400

chan: Use channel_is_client() in channel_do_open_actions()

Make sure we actually only report client channel to the geoip cache instead of
looking if it is a known relay. Looking if it is a known relay can be
unreliable because they come and go from the consensus.

Fixes #24904

Signed-off-by: David Goulet <dgoulet@torproject.org>

Diffstat:
Achanges/bug24904 | 4++++
Msrc/or/channel.c | 4++--
2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/changes/bug24904 b/changes/bug24904 @@ -0,0 +1,4 @@ + o Minor bugfix (channel, client): + - Better identify client connection when reporting to the geoip client + cache. Fixes bug 24904; bugfix on 0.3.1.7. + diff --git a/src/or/channel.c b/src/or/channel.c @@ -1849,8 +1849,8 @@ channel_do_open_actions(channel_t *chan) circuit_build_times_network_is_live(get_circuit_build_times_mutable()); router_set_status(chan->identity_digest, 1); } else { - /* only report it to the geoip module if it's not a known router */ - if (!connection_or_digest_is_known_relay(chan->identity_digest)) { + /* only report it to the geoip module if it's a client */ + if (channel_is_client(chan)) { if (channel_get_addr_if_possible(chan, &remote_addr)) { char *transport_name = NULL; channel_tls_t *tlschan = BASE_CHAN_TO_TLS(chan);