import Prelude hiding (log, length, readFile, getContents)
+import Control.Concurrent (forkIO)
import Data.ByteString.Char8 (ByteString, getContents, readFile, unpack)
import System.Environment (getArgs)
import System.Exit (exitSuccess)
import FuncTorrent.Logger (initLogger, logMessage, logStop)
import FuncTorrent.Metainfo (Info(..), Metainfo(..), torrentToMetainfo)
import FuncTorrent.Peer (handlePeerMsgs)
+import qualified FuncTorrent.Server as Server
import FuncTorrent.Tracker (peers, getTrackerResponse)
logError :: String -> (String -> IO ()) -> IO ()
Right m -> do
log "Input File OK"
log $ "Downloading file : " ++ name (info m)
- log "Trying to fetch peers"
+ log $ "starting server"
+ (serverSock, portnum) <- Server.start
+ log "Trying to fetch peers"
+ forkIO $ Server.run serverSock peerId m
log $ "Trackers: " ++ head (announceList m)
trackerResp <- getTrackerResponse peerId m
case trackerResp of