author | nemo |
Sun, 03 Jun 2012 18:52:22 -0400 | |
changeset 7170 | 84ac6c6d2d8e |
parent 5209 | f7a610e2ef5f |
child 7757 | c20e6c80e249 |
permissions | -rw-r--r-- |
{-# LANGUAGE ScopedTypeVariables, OverloadedStrings #-} module NetRoutines where import Network.Socket import Control.Concurrent.Chan import qualified Control.Exception as Exception import Data.Time import Control.Monad import Data.Unique ----------------------------- import CoreTypes import Utils import RoomsAndClients acceptLoop :: Socket -> Chan CoreMessage -> IO () acceptLoop servSock chan = forever $ do (sock, sockAddr) <- Network.Socket.accept servSock clientHost <- sockAddr2String sockAddr currentTime <- getCurrentTime sendChan' <- newChan uid <- newUnique let newClient = (ClientInfo uid sendChan' sock clientHost currentTime "" "" False 0 lobbyId 0 False False False Nothing 0 ) writeChan chan $ Accept newClient return ()