diff options
author | Joe Crayne <joe@jerkface.net> | 2018-12-10 10:19:41 -0500 |
---|---|---|
committer | Joe Crayne <joe@jerkface.net> | 2018-12-16 14:08:26 -0500 |
commit | 790ec8072f856247c0566b263ee9901bd1cde638 (patch) | |
tree | a776d5588d3d639f6d99e8220e12fdaed642edf2 /OnionRouter.hs | |
parent | c4c381a5e9295e14382404e88a98af27690c5ec9 (diff) |
Update TCP kademlia table.
Diffstat (limited to 'OnionRouter.hs')
-rw-r--r-- | OnionRouter.hs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/OnionRouter.hs b/OnionRouter.hs index 0e0b5afb..55ba9c28 100644 --- a/OnionRouter.hs +++ b/OnionRouter.hs | |||
@@ -191,6 +191,13 @@ newOnionRouter crypto perror = do | |||
191 | , trampolineIds = ti | 191 | , trampolineIds = ti |
192 | , trampolineCount = tc | 192 | , trampolineCount = tc |
193 | , tcpKademliaClient = tcp | 193 | , tcpKademliaClient = tcp |
194 | { TCP.tcpClient = | ||
195 | let c = TCP.tcpClient tcp | ||
196 | in c { clientNet = addHandler perror (handleMessage c) | ||
197 | $ onInbound (updateTCP refresher) | ||
198 | $ clientNet c | ||
199 | } | ||
200 | } | ||
194 | , tcpBucketRefresher = refresher | 201 | , tcpBucketRefresher = refresher |
195 | , routeLog = rlog | 202 | , routeLog = rlog |
196 | , routeThread = error "forkRouteBuilder not invoked (missing onion route builder thread)." | 203 | , routeThread = error "forkRouteBuilder not invoked (missing onion route builder thread)." |
@@ -199,6 +206,9 @@ newOnionRouter crypto perror = do | |||
199 | } | 206 | } |
200 | return or | 207 | return or |
201 | 208 | ||
209 | updateTCP :: BucketRefresher NodeId TCP.NodeInfo -> TCP.NodeInfo -> p -> IO () | ||
210 | updateTCP refresher addr x = insertNode (refreshKademlia refresher) addr | ||
211 | |||
202 | selectGateway :: TVar (R.BucketList TCP.NodeInfo) -> NodeInfo -> STM (Maybe TCP.NodeInfo) | 212 | selectGateway :: TVar (R.BucketList TCP.NodeInfo) -> NodeInfo -> STM (Maybe TCP.NodeInfo) |
203 | selectGateway tbl ni = do | 213 | selectGateway tbl ni = do |
204 | ns <- kclosest TCP.tcpSpace 2 (nodeId ni) <$> readTVar tbl | 214 | ns <- kclosest TCP.tcpSpace 2 (nodeId ni) <$> readTVar tbl |