From ddf761b1f828eb0c3601acb06155c99c161a4e71 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sat, 26 Oct 2013 20:45:30 +0000
Subject: [PATCH]  * Streaming: Randomize end of first conn limit period    to
 prevent correlation

---
 .../java/src/net/i2p/client/streaming/ConnThrottler.java  | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnThrottler.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnThrottler.java
index 2fd58533d8..3d2b6fb2d1 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/ConnThrottler.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnThrottler.java
@@ -4,6 +4,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import net.i2p.data.Hash;
 import net.i2p.util.ObjectCounter;
+import net.i2p.util.RandomSource;
 import net.i2p.util.SimpleScheduler;
 import net.i2p.util.SimpleTimer;
 
@@ -29,7 +30,12 @@ class ConnThrottler {
         _totalMax = totalMax;
         this.counter = new ObjectCounter<Hash>();
         _currentTotal = new AtomicInteger();
-        SimpleScheduler.getInstance().addPeriodicEvent(new Cleaner(), period);
+        // shorten the initial period by a random amount,mpleScheduler.getInstance().addPeriodicEvent(new Cleaner(),
+        // to prevent correlation across destinations
+        // and identification of router startup time
+        SimpleScheduler.getInstance().addPeriodicEvent(new Cleaner(),
+                                                       RandomSource.getInstance().nextLong(period),
+                                                       period);
     }
 
     /*
-- 
GitLab