import System.Random (randomIO)
import System.Timeout (timeout)
-import FuncTorrent.Peer (Peer(..))
+import FuncTorrent.PeerMsgs (Peer(..))
import FuncTorrent.Tracker.Types (TrackerEventState(..), TState(..))
import FuncTorrent.Utils (IP, Port, toIP, toPort, getHostname, getPort)
import qualified FuncTorrent.FileSystem as FS (MsgChannel, Stats(..), getStats)
ip <- toIP <$> getByteString 4
port <- toPort <$> getByteString 2
ipportpairs <- getIPPortPairs
- return $ (Peer "" ip port) : ipportpairs
+ return $ (Peer ip port) : ipportpairs
startSession :: String -> Port -> IO UDPTrackerHandle
startSession host port = do
trackerLoop :: String -> Port -> String -> ByteString -> FS.MsgChannel -> TState -> IO ()
trackerLoop url sport peerId infohash fschan tstate = forever $ do
- st <- fmap readMVar $ FS.getStats fschan
+ st <- readMVar <$> FS.getStats fschan
up <- fmap FS.bytesRead st
down <- fmap FS.bytesWritten st
handle <- startSession host port