author | unc0rr |
Thu, 16 Feb 2012 20:32:47 +0400 | |
changeset 6690 | 46b3f4776538 |
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 ()