From: Ramakrishnan Muthukrishnan Date: Sat, 25 Jul 2015 06:40:09 +0000 (+0530) Subject: hlint caught some ugly code X-Git-Url: https://git.rkrishnan.org/listings/vdrive/%22doc.html//%22?a=commitdiff_plain;h=6902cd2d7856b416a793dd95efdb4fd329c63e06;p=functorrent.git hlint caught some ugly code --- diff --git a/src/FuncTorrent/Peer.hs b/src/FuncTorrent/Peer.hs index 9984a2a..845c14a 100644 --- a/src/FuncTorrent/Peer.hs +++ b/src/FuncTorrent/Peer.hs @@ -192,22 +192,20 @@ createDummyFile path size = -- write into a file at a specific offet writeFileAtOffset :: FilePath -> Integer -> ByteString -> IO () writeFileAtOffset path offset block = - withFile path ReadWriteMode $ (\h -> do - _ <- hSeek h AbsoluteSeek offset - hPut h block) + withFile path ReadWriteMode (\h -> do + _ <- hSeek h AbsoluteSeek offset + hPut h block) -- recvMsg :: Peer -> Handle -> Msg msgLoop :: PeerState -> PieceMap -> IO () -msgLoop pState pieceStatus | meInterested pState == False && - heChoking pState == True = do - -- if me NOT Interested and she is Choking, tell her that - -- I am interested. - let h = handle pState - sendMsg h InterestedMsg - putStrLn $ "--> InterestedMsg to peer: " ++ show (peer pState) - msgLoop (pState { meInterested = True }) pieceStatus - | meInterested pState == True && - heChoking pState == False = +msgLoop pState pieceStatus | not (meInterested pState) && heChoking pState = do + -- if me NOT Interested and she is Choking, tell her that + -- I am interested. + let h = handle pState + sendMsg h InterestedMsg + putStrLn $ "--> InterestedMsg to peer: " ++ show (peer pState) + msgLoop (pState { meInterested = True }) pieceStatus + | meInterested pState && not (heChoking pState) = -- if me Interested and she not Choking, send her a request -- for a piece. case pickPiece pieceStatus of @@ -239,9 +237,9 @@ msgLoop pState pieceStatus | meInterested pState == False && -- map with pieceIndex as the key and modify the value to add the peer. -- download each of the piece in order msgLoop pState pieceStatus' - UnChokeMsg -> do + UnChokeMsg -> msgLoop (pState { heChoking = False }) pieceStatus - _ -> do + _ -> msgLoop pState pieceStatus -- simple algorithm to pick piece. @@ -258,7 +256,7 @@ pickPiece m = updatePieceAvailability :: PieceMap -> Peer -> [Integer] -> PieceMap updatePieceAvailability pieceStatus p pieceList = mapWithKey (\k pd -> if k `elem` pieceList - then (pd { peers = p : (peers pd) }) + then (pd { peers = p : peers pd }) else pd) pieceStatus handlePeerMsgs :: Peer -> Metainfo -> String -> IO () @@ -284,7 +282,7 @@ downloadPiece h index pieceLength = do liftM concat $ forM (zip [0..] chunks) (\(i, pLen) -> do sendMsg h (RequestMsg index (i*pLen) pLen) putStrLn $ "--> " ++ "RequestMsg for Piece " - ++ (show index) ++ ", part: " ++ show i ++ " of length: " + ++ show index ++ ", part: " ++ show i ++ " of length: " ++ show pLen msg <- getMsg h case msg of