packages feed

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 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))   --------------------------------------------------------------------------------