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 |
|
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 |