]> git.rkrishnan.org Git - functorrent.git/blobdiff - src/FuncTorrent/Server.hs
new modules FileSystem and PieceManager
[functorrent.git] / src / FuncTorrent / Server.hs
index 766ac4e77aea22510569ace8598767dc77e294f3..465ef045ac4e45b3f516a2ff8e3bd384aebb2bde 100644 (file)
@@ -8,6 +8,7 @@ import System.IO (hSetBuffering, BufferMode ( NoBuffering ))
 
 import FuncTorrent.Metainfo (Metainfo)
 import FuncTorrent.Peer (handlePeerMsgs, Peer(..), PieceMap)
+import qualified FuncTorrent.FileSystem as FS (MsgChannel)
 
 -- server is listening on any port from 6881 - 6889
 -- return the port number used
@@ -17,9 +18,9 @@ start = withSocketsDo $ do
   sock <- listenOn $ PortNumber $ fromIntegral (head portnums)
   return (sock, PortNumber $ head portnums)
 
-run :: Socket -> String -> Metainfo -> PieceMap -> IO ()
-run listenSock peerid m pieceMap = forever $ do
+run :: Socket -> String -> Metainfo -> PieceMap -> FS.MsgChannel -> IO ()
+run listenSock peerid m pieceMap = forever $ do
   (handle, ip, port) <- accept listenSock
   let peer = Peer "" ip (fromIntegral port)
   hSetBuffering handle NoBuffering
-  forkIO $ handlePeerMsgs peer peerid m pieceMap False
+  forkIO $ handlePeerMsgs peer peerid m pieceMap False c