X-Git-Url: https://git.rkrishnan.org/?p=functorrent.git;a=blobdiff_plain;f=src%2FFuncTorrent%2FTracker%2FUdp.hs;h=aaa99472b44c3a9d72f955afd0f35a5e8c05d534;hp=5e98879f976a082d4611def19bef7224e20077a2;hb=272216c101f5f411726898f90355956ab9a105b7;hpb=ebda66bc8731a77d63ec63635473a717bc434885 diff --git a/src/FuncTorrent/Tracker/Udp.hs b/src/FuncTorrent/Tracker/Udp.hs index 5e98879..aaa9947 100644 --- a/src/FuncTorrent/Tracker/Udp.hs +++ b/src/FuncTorrent/Tracker/Udp.hs @@ -40,7 +40,7 @@ import System.Random (randomIO) import System.Timeout (timeout) import FuncTorrent.PeerMsgs (Peer(..)) -import FuncTorrent.Tracker.Types (TrackerEventState(..), TState(..)) +import FuncTorrent.Tracker.Types (TrackerEventState(..), TState(..), UdpTrackerResponse(..)) import FuncTorrent.Utils (IP, Port, toIP, toPort, getHostname, getPort) import qualified FuncTorrent.FileSystem as FS (MsgChannel, Stats(..), getStats) @@ -171,13 +171,7 @@ announceRequest cid infohash peerId up down left port = do liftIO $ sendRequest h (toStrict pkt) return tidi -data PeerStats = PeerStats { leechers :: Word32 - , seeders :: Word32 - , interval :: Word32 - , peers :: [Peer] - } deriving (Show) - -announceResponse :: Word32 -> ReaderT UDPTrackerHandle IO PeerStats +announceResponse :: Word32 -> ReaderT UDPTrackerHandle IO UdpTrackerResponse announceResponse tid = do h <- ask resp <- liftIO $ recvResponse h @@ -186,10 +180,10 @@ announceResponse tid = do if tidr == tid then do liftIO $ putStrLn "announce succeeded" - return $ PeerStats ls ss interval xs + return $ UdpTrackerResponse ls ss interval xs else - return $ PeerStats 0 0 0 [] - _ -> return $ PeerStats 0 0 0 [] + return $ UdpTrackerResponse 0 0 0 [] + _ -> return $ UdpTrackerResponse 0 0 0 [] getIPPortPairs :: Get [Peer] getIPPortPairs = do