gameServer/hedgewars-server.hs
changeset 15699 27eb5abd5058
parent 11046 47a8c19ecb60
equal deleted inserted replaced
15698:f681c3f2eeba 15699:27eb5abd5058
    48 server :: ServerInfo -> IO ()
    48 server :: ServerInfo -> IO ()
    49 server si = do
    49 server si = do
    50     proto <- getProtocolNumber "tcp"
    50     proto <- getProtocolNumber "tcp"
    51     E.bracket
    51     E.bracket
    52         (socket AF_INET Stream proto)
    52         (socket AF_INET Stream proto)
    53         sClose
    53         close
    54         (\sock -> do
    54         (\sock -> do
    55             setSocketOption sock ReuseAddr 1
    55             setSocketOption sock ReuseAddr 1
    56             bindSocket sock (SockAddrInet (listenPort si) iNADDR_ANY)
    56             iNADDR_ANY <- addrAddress . head <$> getAddrInfo Nothing (Just "0") (Just (show (listenPort si)))
       
    57             bind sock iNADDR_ANY
    57             listen sock maxListenQueue
    58             listen sock maxListenQueue
    58             startServer si{serverSocket = Just sock}
    59             startServer si{serverSocket = Just sock}
    59         )
    60         )
    60 
    61 
    61 handleRestart :: ShutdownException -> IO ()
    62 handleRestart :: ShutdownException -> IO ()