netserver/hedgewars-server.hs
changeset 1396 abb28dcb6d0d
parent 1394 962001cfcf48
child 1397 471c42a1c358
equal deleted inserted replaced
1395:46fd70de89e2 1396:abb28dcb6d0d
    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 import System.Posix
    15 
    16 
    16 acceptLoop :: Socket -> TChan ClientInfo -> IO ()
    17 acceptLoop :: Socket -> TChan ClientInfo -> IO ()
    17 acceptLoop servSock acceptChan = do
    18 acceptLoop servSock acceptChan = do
    18 	(cHandle, host, port) <- accept servSock
    19 	(cHandle, host, port) <- accept servSock
    19 	hPutStrLn cHandle "CONNECTED\n"
    20 	hPutStrLn cHandle "CONNECTED\n"
    94 	forkIO $ acceptLoop serverSocket acceptChan
    95 	forkIO $ acceptLoop serverSocket acceptChan
    95 	mainLoop serverSocket acceptChan [] []
    96 	mainLoop serverSocket acceptChan [] []
    96 
    97 
    97 
    98 
    98 main = withSocketsDo $ do
    99 main = withSocketsDo $ do
       
   100 	installHandler sigPIPE Ignore Nothing;
    99 	putStrLn $ "Listening on port " ++ show (listenPort globalOptions)
   101 	putStrLn $ "Listening on port " ++ show (listenPort globalOptions)
   100 	serverSocket <- listenOn $ PortNumber (listenPort globalOptions)
   102 	serverSocket <- listenOn $ PortNumber (listenPort globalOptions)
   101 	startServer serverSocket `finally` sClose serverSocket
   103 	startServer serverSocket `finally` sClose serverSocket