gameServer/hedgewars-server.hs
changeset 4975 31da8979e5b1
parent 4974 078cd026a7b1
child 4982 3572eaf14340
equal deleted inserted replaced
4974:078cd026a7b1 4975:31da8979e5b1
     6 import Network.BSD
     6 import Network.BSD
     7 import Control.Concurrent.Chan
     7 import Control.Concurrent.Chan
     8 import qualified Control.Exception as E
     8 import qualified Control.Exception as E
     9 import System.Log.Logger
     9 import System.Log.Logger
    10 import System.Process
    10 import System.Process
       
    11 import Data.TConfig
       
    12 import Data.Maybe
    11 #if defined(OFFICIAL_SERVER)
    13 #if defined(OFFICIAL_SERVER)
    12 import Control.Monad
    14 import Control.Monad
    13 #endif
    15 #endif
    14 -----------------------------------
    16 -----------------------------------
    15 import Opts
    17 import Opts
    26 setupLoggers =
    28 setupLoggers =
    27     updateGlobalLogger "Clients"
    29     updateGlobalLogger "Clients"
    28         (setLevel INFO)
    30         (setLevel INFO)
    29 
    31 
    30 
    32 
    31 server :: ServerInfo -> IO ()
    33 server :: ServerInfo c -> IO ()
    32 server si = do
    34 server si = do
    33     proto <- getProtocolNumber "tcp"
    35     proto <- getProtocolNumber "tcp"
    34     E.bracket
    36     E.bracket
    35         (socket AF_INET Stream proto)
    37         (socket AF_INET Stream proto)
    36         sClose
    38         sClose
    56 
    58 
    57     setupLoggers
    59     setupLoggers
    58 
    60 
    59     dbQueriesChan <- newChan
    61     dbQueriesChan <- newChan
    60     coreChan' <- newChan
    62     coreChan' <- newChan
    61     serverInfo' <- getOpts $ newServerInfo coreChan' dbQueriesChan
    63     serverInfo' <- getOpts $ newServerInfo coreChan' dbQueriesChan Nothing
    62 
    64 
    63 #if defined(OFFICIAL_SERVER)
    65 #if defined(OFFICIAL_SERVER)
    64     [dbHost', dbLogin', dbPassword'] <- liftM read $ readFile "hedgewars-server.ini"
    66     si <- readServerConfig serverInfo'
    65     let si = serverInfo'{dbHost = dbHost', dbLogin = dbLogin', dbPassword = dbPassword'}
       
    66 #else
    67 #else
    67     let si = serverInfo'
    68     let si = serverInfo'
    68 #endif
    69 #endif
    69 
    70 
    70     (server si) `E.catch` handleRestart
    71     (server si) `E.catch` handleRestart