]> git.rkrishnan.org Git - functorrent.git/commitdiff
remove the use of ReaderT
authorRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Sun, 13 Sep 2015 14:47:48 +0000 (20:17 +0530)
committerRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Sun, 13 Sep 2015 14:47:48 +0000 (20:17 +0530)
src/FuncTorrent/Tracker.hs

index 5cd6aeaa686dcd6b45bec0e18037054a7fb80fa8..a2dc48b65b46e10e0f93af76b2b7a5114dbab49a 100644 (file)
@@ -1,15 +1,11 @@
 {-# LANGUAGE OverloadedStrings #-}
 module FuncTorrent.Tracker
     (TrackerResponse(..),
 {-# LANGUAGE OverloadedStrings #-}
 module FuncTorrent.Tracker
     (TrackerResponse(..),
-     mkArgs,
-     getTrackerResponse,
-     urlEncodeHash
+     getTrackerResponse
     ) where
 
 import Prelude hiding (lookup, splitAt)
 
     ) where
 
 import Prelude hiding (lookup, splitAt)
 
-import Control.Monad.IO.Class (liftIO)
-import Control.Monad.Reader (ReaderT, ask, runReaderT)
 import Data.ByteString (ByteString)
 import Data.ByteString.Char8 as BC (pack, unpack, splitAt)
 import Data.Char (chr)
 import Data.ByteString (ByteString)
 import Data.ByteString.Char8 as BC (pack, unpack, splitAt)
 import Data.Char (chr)
@@ -67,18 +63,15 @@ mkTrackerResponse resp =
           where (ip', port') = splitAt 4 peer
 
 -- | Connect to a tracker and get peer info
           where (ip', port') = splitAt 4 peer
 
 -- | Connect to a tracker and get peer info
-tracker :: String -> ReaderT Metainfo IO ByteString
-tracker peer_id = do
-  m <- ask
-  let args = mkArgs peer_id m
-  liftIO $ get (head . announceList $ m) args
-
-getTrackerResponse ::  String -> ReaderT Metainfo IO (Either ByteString TrackerResponse)
-getTrackerResponse peerId = do
-  m <- ask
-  resp <- liftIO $ runReaderT (tracker peerId) m
+tracker :: String -> Metainfo -> IO ByteString
+tracker peer_id m = do
+  get (head . announceList $ m) $ mkArgs peer_id m
+
+getTrackerResponse ::  String -> Metainfo -> IO (Either ByteString TrackerResponse)
+getTrackerResponse peerId m = do
+  resp <- tracker peerId m
   case decode resp of
   case decode resp of
-   Right trackerInfo -> liftIO $ return $ mkTrackerResponse trackerInfo
+   Right trackerInfo -> return $ mkTrackerResponse trackerInfo
    Left e -> return $ Left (pack (show e))
 
 --- | URL encode hash as per RFC1738
    Left e -> return $ Left (pack (show e))
 
 --- | URL encode hash as per RFC1738