packages feed

network-run 0.2.7 → 0.2.8

raw patch · 6 files changed

+28/−12 lines, 6 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Network.Run.TCP.Timeout: openClientSocket :: AddrInfo -> IO Socket

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for network-run +## 0.2.8++* runTCPClient specifies AI_ADDRCONFIG.+ ## 0.2.7  * Introduce `runTCPServerWithSocket`
Network/Run/Core.hs view
@@ -4,6 +4,7 @@ module Network.Run.Core (     resolve,     openSocket,+    openClientSocket,     openServerSocket,     gclose, ) where@@ -11,20 +12,31 @@ import qualified Control.Exception as E import Network.Socket -resolve :: SocketType -> Maybe HostName -> ServiceName -> Bool -> IO AddrInfo-resolve socketType mhost port passive =+resolve+    :: SocketType+    -> Maybe HostName+    -> ServiceName+    -> [AddrInfoFlag]+    -> IO AddrInfo+resolve socketType mhost port flags =     head <$> getAddrInfo (Just hints) mhost (Just port)   where     hints =         defaultHints             { addrSocketType = socketType-            , addrFlags = if passive then [AI_PASSIVE] else []+            , addrFlags = flags             }  #if !MIN_VERSION_network(3,1,2) openSocket :: AddrInfo -> IO Socket openSocket addr = socket (addrFamily addr) (addrSocketType addr) (addrProtocol addr) #endif++openClientSocket :: AddrInfo -> IO Socket+openClientSocket ai = do+    sock <- openSocket ai+    connect sock $ addrAddress ai+    return sock  -- | Open socket for server use --
Network/Run/TCP.hs view
@@ -20,12 +20,10 @@ -- | Running a TCP client with a connected socket. runTCPClient :: HostName -> ServiceName -> (Socket -> IO a) -> IO a runTCPClient host port client = withSocketsDo $ do-    addr <- resolve Stream (Just host) port False+    addr <- resolve Stream (Just host) port [AI_ADDRCONFIG]     E.bracket (open addr) gclose client   where-    open addr = E.bracketOnError (openSocket addr) close $ \sock -> do-        connect sock $ addrAddress addr-        return sock+    open addr = E.bracketOnError (openClientSocket addr) close return  -- | Running a TCP server with an accepted socket and its peer name. runTCPServer :: Maybe HostName -> ServiceName -> (Socket -> IO a) -> IO a@@ -48,7 +46,7 @@     -- ^ Called for each incoming connection, in a new thread     -> IO a runTCPServerWithSocket initSocket mhost port server = withSocketsDo $ do-    addr <- resolve Stream mhost port True+    addr <- resolve Stream mhost port [AI_PASSIVE]     E.bracket (open addr) close loop   where     open addr = E.bracketOnError (initSocket addr) close $ \sock -> do
Network/Run/TCP/Timeout.hs view
@@ -4,8 +4,10 @@ module Network.Run.TCP.Timeout (     runTCPServer,     TimeoutServer,+     -- * Generalized API     runTCPServerWithSocket,+    openClientSocket,     openServerSocket, ) where @@ -53,7 +55,7 @@     -> IO a runTCPServerWithSocket initSocket tm mhost port server = withSocketsDo $ do     T.withManager (tm * 1000000) $ \mgr -> do-        addr <- resolve Stream mhost port True+        addr <- resolve Stream mhost port [AI_PASSIVE]         E.bracket (open addr) close $ loop mgr   where     open addr = E.bracketOnError (initSocket addr) close $ \sock -> do
Network/Run/UDP.hs view
@@ -20,14 +20,14 @@ --   They should be used with 'sendTo'. runUDPClient :: HostName -> ServiceName -> (Socket -> SockAddr -> IO a) -> IO a runUDPClient host port client = withSocketsDo $ do-    addr <- resolve Datagram (Just host) port False+    addr <- resolve Datagram (Just host) port [AI_ADDRCONFIG]     let sockAddr = addrAddress addr     E.bracket (openSocket addr) close $ \sock -> client sock sockAddr  -- | Running a UDP server with an open socket in a single Haskell thread. runUDPServer :: Maybe HostName -> ServiceName -> (Socket -> IO a) -> IO a runUDPServer mhost port server = withSocketsDo $ do-    addr <- resolve Datagram mhost port True+    addr <- resolve Datagram mhost port [AI_PASSIVE]     E.bracket (openServerSocket addr) close server  -- | Running a UDP server with a connected socket in each Haskell thread.
network-run.cabal view
@@ -1,5 +1,5 @@ name:                network-run-version:             0.2.7+version:             0.2.8 synopsis:            Simple network runner library description:         Simple functions to run network clients and servers. -- bug-reports: