Pārlūkot izejas kodu

Merge branch 'maint-0.3.2'

Nick Mathewson 6 gadi atpakaļ
vecāks
revīzija
3beb3dac2d
2 mainītis faili ar 8 papildinājumiem un 1 dzēšanām
  1. 7 0
      changes/bug23318
  2. 1 1
      src/or/routerlist.c

+ 7 - 0
changes/bug23318

@@ -0,0 +1,7 @@
+  o Minor bugfixes (path selection):
+    - When selecting relays by bandwidth, avoid a rounding error that
+      could sometimes cause load to be imbalanced incorrectly. Previously,
+      we would always round upwards; now, we round towards the nearest
+      integer.  This had the biggest effect when a relay's weight adjustments
+      should have given it weight 0, but it got weight 1 instead.
+      Fixes bug 23318; bugfix on 0.2.4.3-alpha.

+ 1 - 1
src/or/routerlist.c

@@ -2706,7 +2706,7 @@ compute_weighted_bandwidths(const smartlist_t *sl,
       final_weight = weight*this_bw;
     }
 
-    bandwidths[node_sl_idx] = final_weight + 0.5;
+    bandwidths[node_sl_idx] = final_weight;
   } SMARTLIST_FOREACH_END(node);
 
   log_debug(LD_CIRC, "Generated weighted bandwidths for rule %s based "