From 6ac50d6e0323094ea0fd6ff37520698b94fa9d41 Mon Sep 17 00:00:00 2001 From: Sam T Date: Fri, 3 May 2013 09:36:02 +0400 Subject: ~ Reorganize modules. All peer location & identification & information stuff should be placed in Network.BitTorrent.Peer now. --- src/Network/BitTorrent/Tracker/Protocol.hs | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) (limited to 'src/Network/BitTorrent/Tracker/Protocol.hs') diff --git a/src/Network/BitTorrent/Tracker/Protocol.hs b/src/Network/BitTorrent/Tracker/Protocol.hs index c0e84c24..a6c1c8b6 100644 --- a/src/Network/BitTorrent/Tracker/Protocol.hs +++ b/src/Network/BitTorrent/Tracker/Protocol.hs @@ -53,7 +53,6 @@ import Network.HTTP import Network.URI import Network.BitTorrent.Peer -import Network.BitTorrent.PeerID import Network.BitTorrent.Tracker.Scrape @@ -84,27 +83,9 @@ data TResponse = , respMinInterval :: Maybe Int -- ^ Minimal amount of time between requests. , respComplete :: Maybe Int -- ^ Number of peers completed the torrent. (seeders) , respIncomplete :: Maybe Int -- ^ Number of peers downloading the torrent. - , respPeers :: [Peer] -- ^ Peers that must be contacted. + , respPeers :: [PeerAddr] -- ^ Peers that must be contacted. } deriving Show -instance BEncodable PortNumber where - toBEncode = toBEncode . fromEnum - fromBEncode b = toEnum <$> fromBEncode b - -instance BEncodable Peer where - toBEncode (Peer pid pip pport) = fromAssocs - [ "peer id" -->? pid - , "ip" --> pip - , "port" --> pport - ] - - fromBEncode (BDict d) = - Peer <$> d >--? "peer id" - <*> d >-- "ip" - <*> d >-- "port" - - fromBEncode _ = decodingError "Peer" - instance BEncodable TResponse where toBEncode (Failure t) = fromAssocs ["failure reason" --> t] toBEncode resp@(OK {}) = fromAssocs @@ -125,7 +106,7 @@ instance BEncodable TResponse where <*> getPeers (M.lookup "peers" d) where - getPeers :: Maybe BEncode -> Result [Peer] + getPeers :: Maybe BEncode -> Result [PeerAddr] getPeers (Just (BList l)) = fromBEncode (BList l) getPeers (Just (BString s)) | B.length s `mod` 6 == 0 = @@ -136,7 +117,7 @@ instance BEncodable TResponse where peerG = do pip <- getWord32be pport <- getWord16be - return (Peer Nothing (fromIntegral pip) (fromIntegral pport)) + return (PeerAddr Nothing (fromIntegral pip) (fromIntegral pport)) getPeers _ = decodingError "Peers" -- cgit v1.2.3