X-Git-Url: https://git.rkrishnan.org/?a=blobdiff_plain;f=src%2FFuncTorrent%2FPeer.hs;fp=src%2FFuncTorrent%2FPeer.hs;h=bd66f99a43ef5c0f0357a56fd32ec4cc00c3b781;hb=4e20d9e8c878c6f2125ea25d062ccfb427cf96f5;hp=834c8086032c700f921e7034975156f2b1653e6e;hpb=273f2b0dde373ef12e7915e82aba8e2c38733dc9;p=functorrent.git diff --git a/src/FuncTorrent/Peer.hs b/src/FuncTorrent/Peer.hs index 834c808..bd66f99 100644 --- a/src/FuncTorrent/Peer.hs +++ b/src/FuncTorrent/Peer.hs @@ -7,7 +7,6 @@ module FuncTorrent.Peer import Prelude hiding (lookup, concat, replicate, splitAt, take, drop) -import Control.Concurrent.Chan (writeChan) import Control.Monad.State import Data.ByteString (ByteString, unpack, concat, hGet, hPut, take, drop, empty) import Data.Bits @@ -20,7 +19,7 @@ import FuncTorrent.Metainfo (Metainfo(..)) import FuncTorrent.PeerMsgs (Peer(..), PeerMsg(..), sendMsg, getMsg, genHandshakeMsg) import FuncTorrent.Utils (splitNum, verifyHash) import FuncTorrent.PieceManager (PieceDlState(..), PieceData(..), PieceMap, pickPiece, updatePieceAvailability) -import qualified FuncTorrent.FileSystem as FS (MsgChannel, Msg(..), Piece(..)) +import qualified FuncTorrent.FileSystem as FS (MsgChannel, writePiece, Piece(..)) data PState = PState { handle :: Handle , peer :: Peer @@ -117,7 +116,7 @@ msgLoop pieceStatus msgchannel = do liftIO $ putStrLn "Hash mismatch" else do liftIO $ putStrLn $ "Write piece: " ++ show workPiece - liftIO $ writeChan msgchannel $ FS.WritePiece (FS.Piece workPiece pBS) + liftIO $ FS.writePiece msgchannel workPiece pBS msgLoop (adjust (\pieceData -> pieceData { dlstate = Have }) workPiece pieceStatus) msgchannel _ -> do msg <- liftIO $ getMsg h