From 236c92a0a78285a73b53c6d0f5edba7982407e9b Mon Sep 17 00:00:00 2001 From: David Goulet Date: Fri, 23 Mar 2018 10:11:37 -0400 Subject: [PATCH] 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 --- changes/bug24904 | 4 ++++ src/or/channel.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 changes/bug24904 diff --git a/changes/bug24904 b/changes/bug24904 new file mode 100644 index 0000000000..648d9a5834 --- /dev/null +++ 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 index ff1cfde2ad..a4740dd752 100644 --- 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);