]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add log message checks for different rates.
authorMike Perry <mikeperry-git@fscked.org>
Thu, 25 Oct 2012 01:15:41 +0000 (18:15 -0700)
committerMike Perry <mikeperry-git@fscked.org>
Fri, 7 Dec 2012 23:28:37 +0000 (15:28 -0800)
May want to squash this forward or back..

src/or/circuitbuild.c
src/or/entrynodes.h

index 65c649260155f5df49ec774536816c2eff3d1678..34234322e48702f88dc4d10b4c83ded896cf6c35 100644 (file)
@@ -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,21 +1418,31 @@ 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;
         guard->bad_since = approx_time();
       }
       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 */
index b34744183c4c932e21633c40db3756a18a293ccd..6fdb3f7585f35b8d60bbb81a39cb5572b857eb21 100644 (file)
@@ -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? */