import FuncTorrent.Network (sendGetRequest)
import FuncTorrent.PeerMsgs (makePeer)
import FuncTorrent.Utils (splitN, IP, Port)
-import FuncTorrent.Tracker.Types(TState(..), TrackerResponse(..))
+import FuncTorrent.Tracker.Types(TState(..), HttpTrackerResponse(..))
--- | URL encode hash as per RFC1738
void $ swapMVar (connectedPeers tstate) (peers tresp)
threadDelay $ fromIntegral (interval tresp)
-parseTrackerResponse :: BVal -> Either ByteString TrackerResponse
+parseTrackerResponse :: BVal -> Either ByteString HttpTrackerResponse
parseTrackerResponse resp =
case lookup "failure reason" body of
Just (Bstr err) -> Left err
let (Just (Bint i)) = lookup "interval" body
(Just (Bstr peersBS)) = lookup "peers" body
pl = map makePeer (splitN 6 peersBS)
- in Right TrackerResponse {
+ in Right HttpTrackerResponse {
interval = i
, peers = pl
, complete = Nothing