From efb9d17c8cb83eeecf3ccaa8cc34b647aabe4af5 Mon Sep 17 00:00:00 2001 From: Yawning Angel Date: Sun, 18 May 2014 03:37:22 +0000 Subject: Change the server failure close delay/discard length to be consistent. It will vary per bridge as it is based off the DRBG, but ever attempt at poking at any given bridge will exhibit consistent behavior. --- weighted_dist.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'weighted_dist.go') diff --git a/weighted_dist.go b/weighted_dist.go index 067adaf..af0fa7d 100644 --- a/weighted_dist.go +++ b/weighted_dist.go @@ -136,6 +136,8 @@ type wDist struct { maxValue int values []int buckets []float64 + + rng *rand.Rand } // newWDist creates a weighted distribution of values ranging from min to max @@ -174,15 +176,15 @@ func (w *wDist) sample() int { func (w *wDist) reset(seed *DrbgSeed) { // Initialize the deterministic random number generator. drbg := newHashDrbg(seed) - dRng := rand.New(drbg) + w.rng = rand.New(drbg) nBuckets := (w.maxValue + 1) - w.minValue - w.values = dRng.Perm(nBuckets) + w.values = w.rng.Perm(nBuckets) w.buckets = make([]float64, nBuckets) var totalProb float64 for i, _ := range w.buckets { - prob := dRng.Float64() * (1.0 - totalProb) + prob := w.rng.Float64() * (1.0 - totalProb) w.buckets[i] = prob totalProb += prob } -- cgit v1.2.3