]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix a rather serious use-count state bug.
authorMike Perry <mikeperry-git@fscked.org>
Mon, 10 Dec 2012 04:56:48 +0000 (20:56 -0800)
committerMike Perry <mikeperry-git@fscked.org>
Mon, 10 Dec 2012 04:56:48 +0000 (20:56 -0800)
We need to use the success count or the use count depending on the consensus
parameter.

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

index cbc1af961832ff0c035be04be7fe855f02eb9429..349063d325709113e10cef67f327862bbde51459 100644 (file)
@@ -1642,7 +1642,7 @@ pathbias_get_closed_count(entry_guard_t *guard)
  * if it should return guard->circ_successes or
  * guard->successful_circuits_closed.
  */
-static double 
+double 
 pathbias_get_success_count(entry_guard_t *guard)
 {
   if (pathbias_use_close_counts(get_options())) {
index 21c09f79c319ea10e216c94376a5874ef0eb3a23..96b075a35cef2dcb20c7376548e0e30e9660cc1e 100644 (file)
@@ -1065,8 +1065,8 @@ entry_guards_parse_state(or_state_t *state, int set, char **msg)
       /* Note: We rely on the < comparison here to allow us to set a 0
        * rate and disable the feature entirely. If refactoring, don't
        * change to <= */
-      if ((node->circ_successes/((double)node->circ_attempts)
-          < pathbias_get_extreme_rate(options)) &&
+      if (pathbias_get_success_count(node)/node->circ_attempts
+            < pathbias_get_extreme_rate(options) &&
           pathbias_get_dropguards(options)) {
         node->path_bias_disabled = 1;
         log_info(LD_GENERAL,
index de8c60c33dddf802417f699281228f401558a049..b9d0e555f16647d604d57134348ba8fb918c86bd 100644 (file)
@@ -112,6 +112,7 @@ int find_transport_by_bridge_addrport(const tor_addr_t *addr, uint16_t port,
 int validate_pluggable_transports_config(void);
 
 double pathbias_get_closed_count(entry_guard_t *gaurd);
+double pathbias_get_success_count(entry_guard_t *guard);
 
 #endif