diff options
Diffstat (limited to 'Presence/Server.hs')
-rw-r--r-- | Presence/Server.hs | 12 |
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 | -} |
62 | doServer port g startCon = runServer2 port (runConn2 g) | 62 | doServer port g startCon = do |
63 | -- doServer' AF_INET port g startCon | ||
64 | doServer' AF_INET6 port g startCon | ||
65 | |||
66 | doServer' 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 |