[tor-commits] [tor/release-0.3.3] chan: Use channel_is_client() in channel_do_open_actions()

nickm at torproject.org nickm at torproject.org
Mon Mar 26 23:47:53 UTC 2018


commit 236c92a0a78285a73b53c6d0f5edba7982407e9b
Author: David Goulet <dgoulet at torproject.org>
Date:   Fri Mar 23 10:11:37 2018 -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 at torproject.org>
---
 changes/bug24904 | 4 ++++
 src/or/channel.c | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/changes/bug24904 b/changes/bug24904
new file mode 100644
index 000000000..648d9a583
--- /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 ff1cfde2a..a4740dd75 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);





More information about the tor-commits mailing list