diff options
Diffstat (limited to 'src/Network/BitTorrent/DHT/Query.hs')
-rw-r--r-- | src/Network/BitTorrent/DHT/Query.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Network/BitTorrent/DHT/Query.hs b/src/Network/BitTorrent/DHT/Query.hs index c5fcccb4..7f20ad6d 100644 --- a/src/Network/BitTorrent/DHT/Query.hs +++ b/src/Network/BitTorrent/DHT/Query.hs | |||
@@ -41,6 +41,7 @@ module Network.BitTorrent.DHT.Query | |||
41 | , publish | 41 | , publish |
42 | 42 | ||
43 | -- ** Routing table | 43 | -- ** Routing table |
44 | , restoreTable | ||
44 | , insertNode | 45 | , insertNode |
45 | , refreshNodes | 46 | , refreshNodes |
46 | 47 | ||
@@ -266,3 +267,10 @@ queryNode addr q = do | |||
266 | q <@> addr = snd <$> queryNode addr q | 267 | q <@> addr = snd <$> queryNode addr q |
267 | {-# INLINE (<@>) #-} | 268 | {-# INLINE (<@>) #-} |
268 | 269 | ||
270 | restoreTable :: Address ip => Table ip -> DHT ip () | ||
271 | restoreTable tbl = do | ||
272 | tblvar <- asks routingTable | ||
273 | tbl0 <- liftIO $ takeMVar tblvar | ||
274 | mb <- routing $ merge tbl tbl0 | ||
275 | maybe (return ()) (liftIO . putMVar tblvar) mb | ||
276 | |||