diff options
author | joe <joe@jerkface.net> | 2017-01-22 21:26:22 -0500 |
---|---|---|
committer | joe <joe@jerkface.net> | 2017-01-22 21:26:22 -0500 |
commit | be0436e4d5c301fa643799cc41b204459d696f17 (patch) | |
tree | 17bae90fceaecc1928179580ef7bc51c31048d6e /src/Network/BitTorrent | |
parent | 655efe0e7e1b25e2b4d333cf7551998ed69a4dfa (diff) |
Added "peers" command to cli.
Diffstat (limited to 'src/Network/BitTorrent')
-rw-r--r-- | src/Network/BitTorrent/DHT/ContactInfo.hs | 7 | ||||
-rw-r--r-- | src/Network/BitTorrent/DHT/Session.hs | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/Network/BitTorrent/DHT/ContactInfo.hs b/src/Network/BitTorrent/DHT/ContactInfo.hs index 823982d4..4302288c 100644 --- a/src/Network/BitTorrent/DHT/ContactInfo.hs +++ b/src/Network/BitTorrent/DHT/ContactInfo.hs | |||
@@ -1,5 +1,6 @@ | |||
1 | module Network.BitTorrent.DHT.ContactInfo | 1 | module Network.BitTorrent.DHT.ContactInfo |
2 | ( PeerStore | 2 | ( PeerStore |
3 | , Network.BitTorrent.DHT.ContactInfo.lookup | ||
3 | , Network.BitTorrent.DHT.ContactInfo.freshPeers | 4 | , Network.BitTorrent.DHT.ContactInfo.freshPeers |
4 | , Network.BitTorrent.DHT.ContactInfo.insertPeer | 5 | , Network.BitTorrent.DHT.ContactInfo.insertPeer |
5 | , knownSwarms | 6 | , knownSwarms |
@@ -156,9 +157,9 @@ instance Serialize (PeerStore a) where | |||
156 | get = undefined | 157 | get = undefined |
157 | put = undefined | 158 | put = undefined |
158 | 159 | ||
159 | -- | Used in 'get_peers' DHT queries. | 160 | -- | Returns all peers associated with a given info hash. |
160 | -- lookup :: Ord a => InfoHash -> PeerStore a -> [PeerAddr a] | 161 | lookup :: Ord a => InfoHash -> PeerStore a -> [PeerAddr a] |
161 | -- lookup ih (PeerStore m) = maybe [] (PSQ.keys . peers) $ HM.lookup ih m | 162 | lookup ih (PeerStore m) = maybe [] (PSQ.keys . peers) $ HM.lookup ih m |
162 | 163 | ||
163 | batchSize = 64 | 164 | batchSize = 64 |
164 | 165 | ||
diff --git a/src/Network/BitTorrent/DHT/Session.hs b/src/Network/BitTorrent/DHT/Session.hs index 4f861a1e..bc9fda91 100644 --- a/src/Network/BitTorrent/DHT/Session.hs +++ b/src/Network/BitTorrent/DHT/Session.hs | |||
@@ -55,6 +55,7 @@ module Network.BitTorrent.DHT.Session | |||
55 | , getTable | 55 | , getTable |
56 | , getClosest | 56 | , getClosest |
57 | , getSwarms | 57 | , getSwarms |
58 | , allPeers | ||
58 | 59 | ||
59 | -- ** Peer storage | 60 | -- ** Peer storage |
60 | , insertPeer | 61 | , insertPeer |
@@ -408,6 +409,11 @@ getSwarms = do | |||
408 | store <- asks contactInfo >>= liftIO . atomically . readTVar | 409 | store <- asks contactInfo >>= liftIO . atomically . readTVar |
409 | return $ P.knownSwarms store | 410 | return $ P.knownSwarms store |
410 | 411 | ||
412 | allPeers :: Ord ip => InfoHash -> DHT ip [ PeerAddr ip ] | ||
413 | allPeers ih = do | ||
414 | store <- asks contactInfo >>= liftIO . atomically . readTVar | ||
415 | return $ P.lookup ih store | ||
416 | |||
411 | -- | Find a set of closest nodes from routing table of this node. (in | 417 | -- | Find a set of closest nodes from routing table of this node. (in |
412 | -- no particular order) | 418 | -- no particular order) |
413 | -- | 419 | -- |