network-run 0.2.2 → 0.2.3
raw patch · 3 files changed
+9/−11 lines, 3 files
Files
- Network/Run/Core.hs +2/−2
- Network/Run/TCP.hs +6/−8
- network-run.cabal +1/−1
Network/Run/Core.hs view
@@ -7,6 +7,7 @@ , openServerSocket ) where +import qualified Control.Exception as E import Network.Socket resolve :: SocketType -> Maybe HostName -> ServiceName -> Bool -> IO AddrInfo@@ -22,8 +23,7 @@ openSocket addr = socket (addrFamily addr) (addrSocketType addr) (addrProtocol addr) openServerSocket :: AddrInfo -> IO Socket-openServerSocket addr = do- sock <- openSocket addr+openServerSocket addr = E.bracketOnError (openSocket addr) close $ \sock -> do setSocketOption sock ReuseAddr 1 withFdSocket sock $ setCloseOnExecIfNeeded bind sock $ addrAddress addr
Network/Run/TCP.hs view
@@ -24,8 +24,7 @@ E.bracket (open addr) close client #endif where- open addr = do- sock <- openSocket addr+ open addr = E.bracketOnError (openSocket addr) close $ \sock -> do connect sock $ addrAddress addr return sock @@ -35,14 +34,13 @@ addr <- resolve Stream mhost port True E.bracket (open addr) close loop where- open addr = do- sock <- openServerSocket addr+ open addr = E.bracketOnError (openServerSocket addr) close $ \sock -> do listen sock 1024 return sock- loop sock = forever $ do- (conn, _peer) <- accept sock+ loop sock = forever $ E.bracketOnError (accept sock) (close . fst) $+ \(conn, _peer) -> #if MIN_VERSION_network(3,1,1)- void $ forkFinally (server conn) (const $ gracefulClose conn 5000)+ void $ forkFinally (server conn) (const $ gracefulClose conn 5000) #else- void $ forkFinally (server conn) (const $ close conn)+ void $ forkFinally (server conn) (const $ close conn) #endif
network-run.cabal view
@@ -1,5 +1,5 @@ name: network-run-version: 0.2.2+version: 0.2.3 synopsis: Simple network runner library description: Simple functions to run network clients and servers. -- bug-reports: