streaming-commons 0.2.0.0 → 0.2.1.0
raw patch · 3 files changed
+9/−27 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- ChangeLog.md +4/−0
- Data/Streaming/Network.hs +4/−26
- streaming-commons.cabal +1/−1
ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.2.1.0++* Change `bindRandomPortGen` to use binding to port 0+ ## 0.2.0 * Drop `blaze-builder` dependency
Data/Streaming/Network.hs view
@@ -205,24 +205,10 @@ -- -- Since 0.1.1 bindRandomPortGen :: SocketType -> HostPreference -> IO (Int, Socket)-bindRandomPortGen sockettype s =- loop (30 :: Int)- where- loop cnt = do- port <- getUnassignedPort- esocket <- try $ bindPortGen sockettype port s- case esocket :: Either IOException Socket of- Left e- | cnt <= 1 -> error $ concat- [ "Data.Streaming.Network.bindRandomPortGen: Could not get port. Last attempted: "- , show port- , ". Exception was: "- , show e- ]- | otherwise -> do- skipUnassigned 50- loop $! cnt - 1- Right socket -> return (port, socket)+bindRandomPortGen sockettype s = do+ socket <- bindPortGen sockettype 0 s+ port <- NS.socketPort socket+ return (fromIntegral port, socket) -- | Top 10 Largest IANA unassigned port ranges with no unauthorized uses known unassignedPortsList :: [Int]@@ -262,14 +248,6 @@ go i | i > unassignedPortsMax = (succ unassignedPortsMin, unassignedPorts ! unassignedPortsMin) | otherwise = (succ i, unassignedPorts ! i)---- | Skip ahead in the unassigned ports list by the given number-skipUnassigned :: Int -> IO ()-skipUnassigned i = do- !() <- atomicModifyIORef nextUnusedPort $ \j ->- let k = i + j `mod` unassignedPortsMax- in k `seq` (k, ())- return () -- | Attempt to connect to the given host/port. getSocketUDP :: String -> Int -> IO (Socket, AddrInfo)
streaming-commons.cabal view
@@ -1,5 +1,5 @@ name: streaming-commons-version: 0.2.0.0+version: 0.2.1.0 synopsis: Common lower-level functions needed by various streaming data libraries description: Provides low-dependency functionality commonly needed by various streaming data libraries, such as conduit and pipes. homepage: https://github.com/fpco/streaming-commons