summaryrefslogtreecommitdiffhomepage
path: root/Storage.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2016-09-23 17:59:48 -0400
committerJoey Hess <joeyh@joeyh.name>2016-09-23 17:59:48 -0400
commitd666c064b8ca06170cf4b955d5a3371fdb63881a (patch)
tree1140156d372d44ccd0949b30831d25f71b29109d /Storage.hs
parent823ebff934cf2e23afae199c24cc599983209438 (diff)
downloadkeysafe-d666c064b8ca06170cf4b955d5a3371fdb63881a.tar.gz
delay before starting chaffing
Since there are multiple threads, this prevents the first upload from each coming at nearly the same time.
Diffstat (limited to 'Storage.hs')
-rw-r--r--Storage.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/Storage.hs b/Storage.hs
index b5d07f5..b40a84a 100644
--- a/Storage.hs
+++ b/Storage.hs
@@ -156,6 +156,9 @@ storeChaff hn port delayseconds = forever $ do
objsize = objectSize defaultTunables * shareOverhead defaultTunables
maxmsdelay = ceiling $ 1000000 * fromMaybe 0 delayseconds
go sis rng n = do
+ msdelay <- getStdRandom (randomR (0, maxmsdelay))
+ delay msdelay
+
let (b, rng') = cprgGenerate objsize rng
let share = Share 0 (StorableObject b)
let (is, sis') = nextShareIdents sis
@@ -165,6 +168,4 @@ storeChaff hn port delayseconds = forever $ do
StoreSuccess -> putStr "+"
_ -> putStr "!"
hFlush stdout
- msdelay <- getStdRandom (randomR (0, maxmsdelay))
- delay msdelay
go sis' rng' n