author unc0rr
Thu, 25 Feb 2010 18:28:33 +0000
changeset 2867 9be6693c78cb
parent 2349 ba7a0813c532
child 3425 ead2ed20dfd4
permissions -rw-r--r--
- Unbreak support for client versions prior to 0.9.13-dev - Replace tabs with spaces (sorry for mixing with code changes)

{-# LANGUAGE CPP, ScopedTypeVariables #-}

module Main where

import Network.Socket
import qualified Network
import Control.Concurrent.STM
import Control.Concurrent.Chan
#if defined(NEW_EXCEPTIONS)
import qualified Control.OldException as Exception
import qualified Control.Exception as Exception
import System.Log.Logger
import Opts
import CoreTypes
import OfficialServer.DBInteraction
import ServerCore
import Utils

#if !defined(mingw32_HOST_OS)
import System.Posix

setupLoggers =
    updateGlobalLogger "Clients"
        (setLevel INFO)

main = withSocketsDo $ do
#if !defined(mingw32_HOST_OS)
    installHandler sigPIPE Ignore Nothing;
    installHandler sigCHLD Ignore Nothing;


    stats <- atomically $ newTMVar (StatisticsInfo 0 0)
    dbQueriesChan <- newChan
    coreChan <- newChan
    serverInfo' <- getOpts $ newServerInfo stats coreChan dbQueriesChan
#if defined(OFFICIAL_SERVER)
    dbHost' <- askFromConsole "DB host: "
    dbLogin' <- askFromConsole "login: "
    dbPassword' <- askFromConsole "password: "
    let serverInfo = serverInfo'{dbHost = dbHost', dbLogin = dbLogin', dbPassword = dbPassword'}
    let serverInfo = serverInfo'

        (Network.listenOn $ Network.PortNumber $ listenPort serverInfo)
        (startServer serverInfo)