[tor-commits] [tor/master] Add log message checks for different rates.

nickm at torproject.org nickm at torproject.org
Wed Dec 26 04:34:54 UTC 2012


commit 9bf5582e7368bf91e2b9bf9e88ee71d2ba51a335
Author: Mike Perry <mikeperry-git at fscked.org>
Date:   Wed Oct 24 18:15:41 2012 -0700

    Add log message checks for different rates.
    
    May want to squash this forward or back..
---
 src/or/circuitbuild.c |   17 ++++++++++++++---
 src/or/entrynodes.h   |    6 +++++-
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 65c6492..3423432 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -1408,7 +1408,8 @@ entry_guard_inc_first_hop_count(entry_guard_t *guard)
      * rate and disable the feature entirely. If refactoring, don't
      * change to <= */
     if (guard->circuit_successes/((double)guard->first_hops)
-        < pathbias_get_crit_rate(options)) {
+        < pathbias_get_crit_rate(options)
+        && !guard->path_bias_crited) {
 
       /* This message is currently disabled by default. */
       log_warn(LD_PROTOCOL,
@@ -1417,6 +1418,7 @@ entry_guard_inc_first_hop_count(entry_guard_t *guard)
                "a bug.",
                guard->circuit_successes, guard->first_hops, guard->nickname,
                hex_str(guard->identity, DIGEST_LEN));
+      guard->path_bias_crited = 1;
 
       if (pathbias_get_dropguards(options)) {
         guard->path_bias_disabled = 1;
@@ -1424,14 +1426,23 @@ entry_guard_inc_first_hop_count(entry_guard_t *guard)
       }
       return -1;
     } else if (guard->circuit_successes/((double)guard->first_hops)
+               < pathbias_get_warn_rate(options)
+               && !guard->path_bias_warned) {
+      guard->path_bias_warned = 1;
+      log_notice(LD_PROTOCOL,
+                 "Low circuit success rate %u/%u for guard %s=%s.",
+                 guard->circuit_successes, guard->first_hops, guard->nickname,
+                 hex_str(guard->identity, DIGEST_LEN));
+    } else if (guard->circuit_successes/((double)guard->first_hops)
                < pathbias_get_notice_rate(options)
-               && !guard->path_bias_notice) {
-      guard->path_bias_notice = 1;
+               && !guard->path_bias_noticed) {
+      guard->path_bias_noticed = 1;
       log_notice(LD_PROTOCOL,
                  "Low circuit success rate %u/%u for guard %s=%s.",
                  guard->circuit_successes, guard->first_hops, guard->nickname,
                  hex_str(guard->identity, DIGEST_LEN));
     }
+
   }
 
   /* If we get a ton of circuits, just scale everything down */
diff --git a/src/or/entrynodes.h b/src/or/entrynodes.h
index b347441..6fdb3f7 100644
--- a/src/or/entrynodes.h
+++ b/src/or/entrynodes.h
@@ -31,7 +31,11 @@ typedef struct entry_guard_t {
                                   * router, 1 if we have. */
   unsigned int can_retry : 1; /**< Should we retry connecting to this entry,
                                * in spite of having it marked as unreachable?*/
-  unsigned int path_bias_notice : 1; /**< Did we alert the user about path bias
+  unsigned int path_bias_noticed : 1; /**< Did we alert the user about path bias
+                                      * for this node already? */
+  unsigned int path_bias_warned : 1; /**< Did we alert the user about path bias
+                                      * for this node already? */
+  unsigned int path_bias_crited : 1; /**< Did we alert the user about path bias
                                       * for this node already? */
   unsigned int path_bias_disabled : 1; /**< Have we disabled this node because
                                         * of path bias issues? */





More information about the tor-commits mailing list