packages feed

network-run 0.2.2 → 0.2.3

raw patch · 3 files changed

+9/−11 lines, 3 files

Files

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: