gameServer/hedgewars-server.hs
branchserver_refactor
changeset 4593 39d07170085b
parent 4295 1f5604cd99be
child 4904 0eab727d4717
equal deleted inserted replaced
4591:c91364bf6a69 4593:39d07170085b
     1 {-# LANGUAGE CPP, ScopedTypeVariables #-}
     1 {-# LANGUAGE CPP, ScopedTypeVariables #-}
     2 
     2 
     3 module Main where
     3 module Main where
     4 
     4 
     5 import Network
     5 import Network.Socket
       
     6 import Network.BSD
     6 import Control.Concurrent.STM
     7 import Control.Concurrent.STM
     7 import Control.Concurrent.Chan
     8 import Control.Concurrent.Chan
     8 import qualified Control.Exception as Exception
     9 import qualified Control.Exception as Exception
     9 import System.Log.Logger
    10 import System.Log.Logger
    10 -----------------------------------
    11 -----------------------------------
    44     let serverInfo = serverInfo'{dbHost = dbHost', dbLogin = dbLogin', dbPassword = dbPassword'}
    45     let serverInfo = serverInfo'{dbHost = dbHost', dbLogin = dbLogin', dbPassword = dbPassword'}
    45 #else
    46 #else
    46     let serverInfo = serverInfo'
    47     let serverInfo = serverInfo'
    47 #endif
    48 #endif
    48 
    49 
       
    50 
       
    51     proto <- getProtocolNumber "tcp"
    49     Exception.bracket
    52     Exception.bracket
    50         (Network.listenOn $ Network.PortNumber $ listenPort serverInfo)
    53         (socket AF_INET Stream proto)
    51         sClose
    54         sClose
    52         (startServer serverInfo)
    55         (\sock -> do
       
    56             setSocketOption sock ReuseAddr 1
       
    57             bindSocket sock (SockAddrInet (listenPort serverInfo) iNADDR_ANY)
       
    58             listen sock maxListenQueue
       
    59             startServer serverInfo sock
       
    60         )