summaryrefslogtreecommitdiff
path: root/src/Network
diff options
context:
space:
mode:
Diffstat (limited to 'src/Network')
-rw-r--r--src/Network/Kademlia.hs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/Network/Kademlia.hs b/src/Network/Kademlia.hs
index 873fc8c0..f1ffda19 100644
--- a/src/Network/Kademlia.hs
+++ b/src/Network/Kademlia.hs
@@ -277,7 +277,13 @@ forkPollForRefresh interval psq refresh = do
277 again 277 again
278 278
279refreshBucket :: forall nid tok ni addr. 279refreshBucket :: forall nid tok ni addr.
280 ( Show nid, Serialize nid, Ord nid, Ord ni, Hashable nid, Hashable ni, Ord addr ) => 280 ( Show nid
281 , Serialize nid
282 , Ord nid
283 , Ord ni
284 , Ord addr
285 , Hashable nid
286 , Hashable ni ) =>
281 Search nid addr tok ni ni -> TVar (BucketList ni) -> Int -> IO Int 287 Search nid addr tok ni ni -> TVar (BucketList ni) -> Int -> IO Int
282refreshBucket sch var n = do 288refreshBucket sch var n = do
283 tbl <- atomically (readTVar var) 289 tbl <- atomically (readTVar var)
@@ -379,10 +385,6 @@ bootstrap sch var ping ns ns0 = do
379 (R.defaultBucketCount - 1) 385 (R.defaultBucketCount - 1)
380 again cnt 386 again cnt
381 (size,num):_ -> do 387 (size,num):_ -> do
382 -- If we don't yet have enough buckets, we need to search our own id. 388 hPutStrLn stderr $ "Bucket too small, refresh "++ show (size,num,shp)
383 -- We indicate that by setting the bucket number to the target. 389 cnt <- refreshBucket sch var num
384 let num' | bktCount tbl < R.defaultBucketCount = R.defaultBucketCount - 1
385 | otherwise = num
386 hPutStrLn stderr $ "Bucket too small, refresh "++ show (num',(size,num),shp)
387 cnt <- refreshBucket sch var num'
388 again cnt 390 again cnt