]> git.rkrishnan.org Git - functorrent.git/blobdiff - src/FuncTorrent/Peer.hs
more hlint fixes
[functorrent.git] / src / FuncTorrent / Peer.hs
index 3e16254a53c84f618bce0d569e2bfe4a03af4e78..c833c061bd4285be88f3754e62e5b83774c1d806 100644 (file)
@@ -1,7 +1,26 @@
+{-
+ - Copyright (C) 2015-2016 Ramakrishnan Muthukrishnan <ram@rkrishnan.org>
+ -
+ - This file is part of FuncTorrent.
+ -
+ - FuncTorrent is free software; you can redistribute it and/or modify
+ - it under the terms of the GNU General Public License as published by
+ - the Free Software Foundation; either version 3 of the License, or
+ - (at your option) any later version.
+ -
+ - FuncTorrent is distributed in the hope that it will be useful,
+ - but WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ - GNU General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License
+ - along with FuncTorrent; if not,  see <http://www.gnu.org/licenses/>
+ -}
+
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE OverloadedStrings #-}
+
 module FuncTorrent.Peer
 module FuncTorrent.Peer
-    (Peer(..),
-     PieceMap,
+    (PieceMap,
      handlePeerMsgs
     ) where
 
      handlePeerMsgs
     ) where
 
@@ -19,7 +38,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 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, writePieceToDisk, Piece(..))
+import qualified FuncTorrent.FileSystem as FS (MsgChannel, writePieceToDisk)
 
 data PState = PState { handle :: Handle
                      , peer :: Peer
 
 data PState = PState { handle :: Handle
                      , peer :: Peer
@@ -33,7 +52,7 @@ havePiece pm index =
   dlstate (pm ! index) == Have
 
 connectToPeer :: Peer -> IO Handle
   dlstate (pm ! index) == Have
 
 connectToPeer :: Peer -> IO Handle
-connectToPeer (Peer ip port) = do
+connectToPeer (Peer ip port) = do
   h <- connectTo ip (PortNumber (fromIntegral port))
   hSetBuffering h LineBuffering
   return h
   h <- connectTo ip (PortNumber (fromIntegral port))
   hSetBuffering h LineBuffering
   return h
@@ -147,7 +166,7 @@ msgLoop pieceStatus msgchannel = do
         NotInterestedMsg -> do
           modify (\st' -> st' {heInterested = False})
           msgLoop pieceStatus msgchannel
         NotInterestedMsg -> do
           modify (\st' -> st' {heInterested = False})
           msgLoop pieceStatus msgchannel
-        CancelMsg _ _ _ -> -- check if valid index, begin, length
+        CancelMsg {} -> -- check if valid index, begin, length
           msgLoop pieceStatus msgchannel
         PortMsg _ ->
           msgLoop pieceStatus msgchannel
           msgLoop pieceStatus msgchannel
         PortMsg _ ->
           msgLoop pieceStatus msgchannel
@@ -155,8 +174,10 @@ msgLoop pieceStatus msgchannel = do
           p <- gets peer
           let pieceStatus' = updatePieceAvailability pieceStatus p [idx]
           msgLoop pieceStatus' msgchannel
           p <- gets peer
           let pieceStatus' = updatePieceAvailability pieceStatus p [idx]
           msgLoop pieceStatus' msgchannel
-        -- handle RequestMsg. No need to handle PieceMsg here.
-        -- also BitFieldMsg
+        _ -> do
+          liftIO $ putStrLn ".. not doing anything with the msg"
+          msgLoop pieceStatus msgchannel
+        -- No need to handle PieceMsg and RequestMsg here.
 
 
 downloadPiece :: Handle -> Integer -> Integer -> IO ByteString
 
 
 downloadPiece :: Handle -> Integer -> Integer -> IO ByteString