]> git.rkrishnan.org Git - functorrent.git/blobdiff - src/FuncTorrent/Tracker.hs
preparations to introduce Metainfo as an environment
[functorrent.git] / src / FuncTorrent / Tracker.hs
index 425b5d43ec5172e6dedc5a7b4f009295793c6aff..206e1b8294c290e84605cbe611a82968fe616f6f 100644 (file)
@@ -65,12 +65,12 @@ mkTrackerResponse resp =
           where (ip', port') = splitAt 4 peer
 
 -- | Connect to a tracker and get peer info
-tracker :: Metainfo -> String -> IO ByteString
-tracker m peer_id = get (head . announceList $ m) $ mkArgs m peer_id
+tracker :: String -> Metainfo -> IO ByteString
+tracker peer_id m = get (head . announceList $ m) $ mkArgs peer_id m
 
-getTrackerResponse :: Metainfo -> String -> IO (Either ByteString TrackerResponse)
-getTrackerResponse m peerId = do
-  resp <- tracker m peerId
+getTrackerResponse ::  String -> Metainfo -> IO (Either ByteString TrackerResponse)
+getTrackerResponse peerId m = do
+  resp <- tracker peerId m
   case decode resp of
    Right trackerInfo -> return $ mkTrackerResponse trackerInfo
    Left e -> return $ Left (pack (show e))
@@ -91,8 +91,8 @@ urlEncodeHash bs = concatMap (encode' . unpack) (splitN 2 bs)
 
 -- | Make arguments that should be posted to tracker.
 -- This is a separate pure function for testability.
-mkArgs :: Metainfo -> String -> [(String, ByteString)]
-mkArgs m peer_id = [("info_hash", pack . urlEncodeHash . B16.encode . infoHash $ m),
+mkArgs :: String -> Metainfo -> [(String, ByteString)]
+mkArgs peer_id m = [("info_hash", pack . urlEncodeHash . B16.encode . infoHash $ m),
                     ("peer_id", pack . urlEncode $ peer_id),
                     ("port", "6881"),
                     ("uploaded", "0"),