equal
deleted
inserted
replaced
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 |