tor/changes/bug6538
Nick Mathewson 07df4dd52d Refactor the core of choosing by weights into a function
This eliminates duplicated code, and lets us test a hairy piece of
functionality.
2012-08-09 14:15:58 -04:00

17 lines
793 B
Plaintext

o Minor bugfixes:
- Switch weighted node selection rule from using a list of doubles
to using a list of int64_t. This should make the process slightly
easier to debug and maintain. Needed for fix for bug 6538.
o Security features:
- Switch to a completely time-invariant approach for picking nodes
weighted by bandwidth. Our old approach would run through the
part of the loop after it had made its choice slightly slower
than it ran through the part of the loop before it had made its
choice. Fix for bug 6538.
o Code simplifications and refactoring:
- Move the core of our "choose a weighted element at random" logic
into its own function, and give it unit tests. Now the logic is
testable, and a little less fragile too.