netserver/hedgewars-server.hs
changeset 1397 471c42a1c358
parent 1396 abb28dcb6d0d
child 1398 29eedf717d0f
equal deleted inserted replaced
1396:abb28dcb6d0d 1397:471c42a1c358
    10 import Maybe (fromMaybe, isJust, fromJust)
    10 import Maybe (fromMaybe, isJust, fromJust)
    11 import Data.List
    11 import Data.List
    12 import Miscutils
    12 import Miscutils
    13 import HWProto
    13 import HWProto
    14 import Opts
    14 import Opts
       
    15 
       
    16 #ifndef WIN32
    15 import System.Posix
    17 import System.Posix
       
    18 #endif
       
    19 
    16 
    20 
    17 acceptLoop :: Socket -> TChan ClientInfo -> IO ()
    21 acceptLoop :: Socket -> TChan ClientInfo -> IO ()
    18 acceptLoop servSock acceptChan = do
    22 acceptLoop servSock acceptChan = do
    19 	(cHandle, host, port) <- accept servSock
    23 	(cHandle, host, port) <- accept servSock
    20 	hPutStrLn cHandle "CONNECTED\n"
    24 	hPutStrLn cHandle "CONNECTED\n"
    95 	forkIO $ acceptLoop serverSocket acceptChan
    99 	forkIO $ acceptLoop serverSocket acceptChan
    96 	mainLoop serverSocket acceptChan [] []
   100 	mainLoop serverSocket acceptChan [] []
    97 
   101 
    98 
   102 
    99 main = withSocketsDo $ do
   103 main = withSocketsDo $ do
       
   104 #ifndef WIN32
   100 	installHandler sigPIPE Ignore Nothing;
   105 	installHandler sigPIPE Ignore Nothing;
       
   106 #endif
   101 	putStrLn $ "Listening on port " ++ show (listenPort globalOptions)
   107 	putStrLn $ "Listening on port " ++ show (listenPort globalOptions)
   102 	serverSocket <- listenOn $ PortNumber (listenPort globalOptions)
   108 	serverSocket <- listenOn $ PortNumber (listenPort globalOptions)
   103 	startServer serverSocket `finally` sClose serverSocket
   109 	startServer serverSocket `finally` sClose serverSocket