summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/DHT/Session.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Network/BitTorrent/DHT/Session.hs')
-rw-r--r--src/Network/BitTorrent/DHT/Session.hs18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/Network/BitTorrent/DHT/Session.hs b/src/Network/BitTorrent/DHT/Session.hs
index 55e66a7e..c47f7491 100644
--- a/src/Network/BitTorrent/DHT/Session.hs
+++ b/src/Network/BitTorrent/DHT/Session.hs
@@ -96,13 +96,16 @@ defaultAlpha = 3
96 96
97data Options = Options 97data Options = Options
98 { -- | the degree of parallelism in 'find_node' queries. 98 { -- | the degree of parallelism in 'find_node' queries.
99 optAlpha :: {-# UNPACK #-} !Alpha 99 optAlpha :: {-# UNPACK #-} !Alpha
100 100
101 -- | number of nodes to return in 'find_node' responses. 101 -- | number of nodes to return in 'find_node' responses.
102 , optK :: {-# UNPACK #-} !K 102 , optK :: {-# UNPACK #-} !K
103
104 -- | Number of buckets to maintain.
105 , optBucketCount :: {-# UNPACK #-} !BucketCount
103 106
104 -- | RPC timeout. 107 -- | RPC timeout.
105 , optTimeout :: !NominalDiffTime 108 , optTimeout :: !NominalDiffTime
106 109
107-- , optReannounceInterval :: NominalDiffTime 110-- , optReannounceInterval :: NominalDiffTime
108-- , optDataExpiredTimeout :: NominalDiffTime 111-- , optDataExpiredTimeout :: NominalDiffTime
@@ -110,9 +113,10 @@ data Options = Options
110 113
111instance Default Options where 114instance Default Options where
112 def = Options 115 def = Options
113 { optAlpha = defaultAlpha 116 { optAlpha = defaultAlpha
114 , optK = defaultK 117 , optK = defaultK
115 , optTimeout = 5 -- seconds 118 , optBucketCount = defaultBucketCount
119 , optTimeout = 5 -- seconds
116 } 120 }
117 121
118microseconds :: NominalDiffTime -> Int 122microseconds :: NominalDiffTime -> Int
@@ -194,7 +198,7 @@ runDHT handlers opts naddr action = runResourceT $ do
194 (_, m) <- allocate (newManager (toSockAddr naddr) handlers) closeManager 198 (_, m) <- allocate (newManager (toSockAddr naddr) handlers) closeManager
195 myId <- liftIO genNodeId 199 myId <- liftIO genNodeId
196 node <- liftIO $ Node opts m 200 node <- liftIO $ Node opts m
197 <$> newMVar (nullTable myId) 201 <$> newMVar (nullTable myId (optBucketCount opts))
198 <*> newTVarIO def 202 <*> newTVarIO def
199 <*> (newTVarIO =<< nullSessionTokens) 203 <*> (newTVarIO =<< nullSessionTokens)
200 <*> pure logger 204 <*> pure logger