replace deprecated iNADDR_ANY
This commit is contained in:
@@ -48,13 +48,18 @@ initServer :: Net.PortNumber -> Buffering -> OnReceive -> IO ServerEnv
|
|||||||
initServer port buffermode handler = do
|
initServer port buffermode handler = do
|
||||||
sock <- Net.socket Net.AF_INET Net.Stream 0
|
sock <- Net.socket Net.AF_INET Net.Stream 0
|
||||||
Net.setSocketOption sock Net.ReuseAddr 1
|
Net.setSocketOption sock Net.ReuseAddr 1
|
||||||
Net.bind sock (Net.SockAddrInet port Net.iNADDR_ANY)
|
addr <- Net.addrAddress <$> resolve
|
||||||
|
Net.bind sock addr
|
||||||
Net.listen sock 5
|
Net.listen sock 5
|
||||||
chan <- newChan
|
chan <- newChan
|
||||||
forkIO $ forever $ do
|
forkIO $ forever $ do
|
||||||
msg <- readChan chan -- clearing the main channel
|
msg <- readChan chan -- clearing the main channel
|
||||||
return ()
|
return ()
|
||||||
return (ServerEnv buffermode sock chan handler)
|
return (ServerEnv buffermode sock chan handler)
|
||||||
|
where resolve = do
|
||||||
|
let hints = Net.defaultHints { Net.addrSocketType = Net.Stream }
|
||||||
|
addrs <- Net.getAddrInfo (Just hints) (Just "127.0.0.1") (Just $ show port)
|
||||||
|
return $ head addrs
|
||||||
|
|
||||||
close :: ServerEnv -> IO ()
|
close :: ServerEnv -> IO ()
|
||||||
close = Net.close . socket
|
close = Net.close . socket
|
||||||
|
|||||||
Reference in New Issue
Block a user