diff -r 95efe37482e3 -r 4e78ad846fb6 gameServer/hedgewars-server.hs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gameServer/hedgewars-server.hs Wed Feb 18 15:04:40 2009 +0000 @@ -0,0 +1,58 @@ +{-# LANGUAGE CPP, ScopedTypeVariables, PatternSignatures #-} + +module Main where + +import Network.Socket +import qualified Network +import Control.Concurrent.STM +import Control.Concurrent.Chan +import Control.Exception +import System.Log.Logger +----------------------------------- +import Opts +import CoreTypes +import OfficialServer.DBInteraction +import ServerCore + + +#if !defined(mingw32_HOST_OS) +import System.Posix +#endif + + +{-data Messages = + Accept ClientInfo + | ClientMessage ([String], ClientInfo) + | CoreMessage [String] + | TimerTick + +messagesLoop :: TChan String -> IO() +messagesLoop messagesChan = forever $ do + threadDelay (25 * 10^6) -- 25 seconds + atomically $ writeTChan messagesChan "PING" + +timerLoop :: TChan String -> IO() +timerLoop messagesChan = forever $ do + threadDelay (60 * 10^6) -- 60 seconds + atomically $ writeTChan messagesChan "MINUTELY"-} + +setupLoggers = + updateGlobalLogger "Clients" + (setLevel DEBUG) + +main = withSocketsDo $ do +#if !defined(mingw32_HOST_OS) + installHandler sigPIPE Ignore Nothing; +#endif + + setupLoggers + + stats <- atomically $ newTMVar (StatisticsInfo 0 0) + --dbQueriesChan <- atomically newTChan + coreChan <- newChan + serverInfo <- getOpts $ newServerInfo stats -- dbQueriesChan + + bracket + (Network.listenOn $ Network.PortNumber $ listenPort serverInfo) + (sClose) + (startServer serverInfo coreChan)