author | unc0rr |
Fri, 01 Nov 2013 23:50:13 +0400 | |
changeset 9666 | 8dcb25112d96 |
parent 9528 | 9351e96990ae |
child 10076 | b235e520ea21 |
permissions | -rw-r--r-- |
{-# LANGUAGE ScopedTypeVariables, OverloadedStrings #-} module NetRoutines where import Network.Socket import Control.Concurrent.Chan 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 False 0 0 False False False False False False False False Nothing Nothing 0 ) writeChan chan $ Accept newClient return ()