network-carbon 1.0.5 → 1.0.6
raw patch · 3 files changed
+12/−4 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Network.Carbon.Plaintext: connectionSocket :: Connection -> !Socket
- Network.Carbon.Plaintext: instance Eq Connection
- Network.Carbon.Plaintext: instance Eq Metric
- Network.Carbon.Plaintext: instance Show Connection
- Network.Carbon.Plaintext: instance Show Metric
- Network.Carbon.Plaintext: instance Typeable Connection
- Network.Carbon.Plaintext: instance Typeable Metric
- Network.Carbon.Plaintext: metricPath :: Metric -> !Text
- Network.Carbon.Plaintext: metricTimeStamp :: Metric -> !UTCTime
- Network.Carbon.Plaintext: metricValue :: Metric -> !Double
+ Network.Carbon.Plaintext: [connectionSocket] :: Connection -> !Socket
+ Network.Carbon.Plaintext: [metricPath] :: Metric -> !Text
+ Network.Carbon.Plaintext: [metricTimeStamp] :: Metric -> !UTCTime
+ Network.Carbon.Plaintext: [metricValue] :: Metric -> !Double
+ Network.Carbon.Plaintext: instance GHC.Classes.Eq Network.Carbon.Plaintext.Connection
+ Network.Carbon.Plaintext: instance GHC.Classes.Eq Network.Carbon.Plaintext.Metric
+ Network.Carbon.Plaintext: instance GHC.Show.Show Network.Carbon.Plaintext.Connection
+ Network.Carbon.Plaintext: instance GHC.Show.Show Network.Carbon.Plaintext.Metric
Files
- Changelog.md +6/−0
- network-carbon.cabal +1/−1
- src/Network/Carbon/Plaintext.hs +5/−3
Changelog.md view
@@ -1,3 +1,9 @@+## 1.0.6++* Use `bracketOnError` when opening the network socket. Thanks to @purefn+ for this improvement, which should stop `network-carbon` leaking file+ descriptors when connections fail.+ ## 1.0.5 * Correct the lower-bound of `bytestring` (introduced by @bergmark in 1.0.3)
network-carbon.cabal view
@@ -1,5 +1,5 @@ name: network-carbon-version: 1.0.5+version: 1.0.6 synopsis: A Haskell implementation of the Carbon protocol (part of the Graphite monitoring tools) homepage: http://github.com/ocharles/network-carbon license: BSD3
src/Network/Carbon/Plaintext.hs view
@@ -17,6 +17,7 @@ ) where +import Control.Exception (bracketOnError) import Control.Monad (unless) import Data.Monoid ((<>), mempty, mappend) import Data.Typeable (Typeable)@@ -46,9 +47,10 @@ -- | Connect to Carbon. connect :: Network.SockAddr -> IO Connection connect sockAddr = fmap Connection $ do- s <- Network.socket Network.AF_INET Network.Stream Network.defaultProtocol- Network.connect s sockAddr- return s+ let openSocket = Network.socket Network.AF_INET Network.Stream Network.defaultProtocol+ bracketOnError openSocket+ Network.close+ (\s -> fmap (const s) (Network.connect s sockAddr)) --------------------------------------------------------------------------------