1 {-# LANGUAGE OverloadedStrings #-}
2 module FuncTorrent.Tracker
8 import Control.Concurrent.MVar (newEmptyMVar, newMVar)
9 import Data.List (isPrefixOf)
11 import FuncTorrent.Tracker.Http(trackerLoop)
12 import FuncTorrent.Tracker.Types(TState(..), TrackerEventState(..), TrackerProtocol(..))
14 initialTrackerState :: Integer -> IO TState
15 initialTrackerState sz = do
19 return $ TState { currentState = None
25 getTrackerType :: String -> TrackerProtocol
26 getTrackerType url | isPrefixOf "http://" url = Http
27 | isPrefixOf "udp://" url = Udp
28 | otherwise = UnknownProtocol