summaryrefslogtreecommitdiff
path: root/Presence/Server.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Presence/Server.hs')
-rw-r--r--Presence/Server.hs12
1 files changed, 9 insertions, 3 deletions
diff --git a/Presence/Server.hs b/Presence/Server.hs
index 369bd538..a9bd4112 100644
--- a/Presence/Server.hs
+++ b/Presence/Server.hs
@@ -59,7 +59,11 @@ doServer
59 -> IO l) 59 -> IO l)
60 -> IO Socket 60 -> IO Socket
61-} 61-}
62doServer port g startCon = runServer2 port (runConn2 g) 62doServer port g startCon = do
63 -- doServer' AF_INET port g startCon
64 doServer' AF_INET6 port g startCon
65
66doServer' family port g startCon = runServer2 port (runConn2 g)
63 where 67 where
64 runConn2 g st (sock,_) = do 68 runConn2 g st (sock,_) = do
65 h <- socketToHandle sock ReadWriteMode 69 h <- socketToHandle sock ReadWriteMode
@@ -80,9 +84,11 @@ doServer port g startCon = runServer2 port (runConn2 g)
80 PortNumber -> (num -> (Socket, SockAddr) -> IO b -> IO b) -> IO b 84 PortNumber -> (num -> (Socket, SockAddr) -> IO b -> IO b) -> IO b
81 -} 85 -}
82 runServer2 st@(HCons port _) go = do 86 runServer2 st@(HCons port _) go = do
83 sock <- socket AF_INET Stream 0 87 sock <- socket family Stream 0
84 setSocketOption sock ReuseAddr 1 88 setSocketOption sock ReuseAddr 1
85 bindSocket sock (SockAddrInet port iNADDR_ANY) 89 case family of
90 AF_INET -> bindSocket sock (SockAddrInet port iNADDR_ANY)
91 AF_INET6 -> bindSocket sock (SockAddrInet6 port 0 iN6ADDR_ANY 8)
86 listen sock 2 92 listen sock 2
87 forkIO $ do 93 forkIO $ do
88 mainLoop sock (ConnId 0) go 94 mainLoop sock (ConnId 0) go