equal
deleted
inserted
replaced
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 |