Browse Source

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>
David Goulet 6 years ago
parent
commit
236c92a0a7
2 changed files with 6 additions and 2 deletions
  1. 4 0
      changes/bug24904
  2. 2 2
      src/or/channel.c

+ 4 - 0
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.
+

+ 2 - 2
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);