Browse Source

The bridge GeoIP stats were counting other relays, for example
self-reachability and authority-reachability tests.


svn:r12960

Roger Dingledine 17 years ago
parent
commit
c6788cc0de
3 changed files with 6 additions and 2 deletions
  1. 2 0
      ChangeLog
  2. 1 1
      doc/TODO
  3. 3 1
      src/or/connection_or.c

+ 2 - 0
ChangeLog

@@ -15,6 +15,8 @@ Changes in version 0.2.0.15-alpha - 2007-12-24
       previously unreachable, mark it as retriable so we won't just
       ignore it. Also, try fetching a new copy immediately. Bugfixes
       on 0.2.0.13-alpha.
+    - The bridge GeoIP stats were counting other relays, for example
+      self-reachability and authority-reachability tests.
 
   o Minor features:
     - Support compilation to target iPhone; patch from cjacker huang.

+ 1 - 1
doc/TODO

@@ -48,7 +48,7 @@ R   . spec
       - Write some basic unit tests.
     - Mention in dir-spec.txt
     - Mention in control-spec.txt
-    - we count hits from our reachability tests too. stop that somehow.
+    o we count hits from our reachability tests too. stop that somehow.
     - have normal relays report geoip stats too.
     - different thresholds for bridges than for normal relays.
     d let Vidalia use the geoip data too rather than doing its own

+ 3 - 1
src/or/connection_or.c

@@ -906,7 +906,9 @@ connection_or_set_state_open(or_connection_t *conn)
     }
     router_set_status(conn->identity_digest, 1);
   } else {
-    geoip_note_client_seen(TO_CONN(conn)->addr, now);
+    /* only report it to the geoip module if it's not a known router */
+    if (!router_get_by_digest(conn->identity_digest))
+      geoip_note_client_seen(TO_CONN(conn)->addr, now);
   }
   if (conn->handshake_state) {
     or_handshake_state_free(conn->handshake_state);