dns 3.0.1 → 3.0.2
raw patch · 4 files changed
+20/−7 lines, 4 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- Changelog.md +5/−0
- Network/DNS/IO.hs +4/−4
- Network/DNS/StateBinary.hs +10/−2
- dns.cabal +1/−1
Changelog.md view
@@ -1,3 +1,8 @@+# 3.0.2++- Supporting conduit 1.3 [#105](https://github.com/kazu-yamamoto/dns/pull/105)+- Supporting GHC 8.4 with semigroup hack.+ # 3.0.1 - Supporting GHC 7.8 again.
Network/DNS/IO.hs view
@@ -31,7 +31,7 @@ import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy.Char8 as LBS import Data.Char (ord)-import Data.Conduit (($$), ($$+), ($$+-), (=$), Sink)+import Data.Conduit (($$+), ($$+-), ConduitM, (.|), runConduit) import Data.Conduit.Attoparsec (sinkParser) import qualified Data.Conduit.Binary as CB import Data.Conduit.Network (sourceSocket)@@ -53,13 +53,13 @@ ---------------------------------------------------------------- -sink :: Sink ByteString IO (DNSMessage, PState)+sink :: ConduitM ByteString o IO (DNSMessage, PState) sink = sinkParser $ ST.runStateT getResponse initialState -- | Receiving DNS data from 'Socket' and parse it. receive :: Socket -> IO DNSMessage-receive sock = fst <$> (sourceSocket sock $$ sink)+receive sock = fst <$> runConduit (sourceSocket sock .| sink) -- | Receive and parse a single virtual-circuit (TCP) query or response. -- It is up to the caller to implement any desired timeout.@@ -70,7 +70,7 @@ let len = case map ord $ LBS.unpack lenbytes of [hi, lo] -> 256 * hi + lo _ -> 0- fst <$> (src $$+- CB.isolate len =$ sink)+ fst <$> (src $$+- CB.isolate len .| sink) ----------------------------------------------------------------
Network/DNS/StateBinary.hs view
@@ -1,4 +1,6 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}+{-# LANGUAGE TypeSynonymInstances #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE CPP #-} module Network.DNS.StateBinary ( PState(..) , initialState@@ -43,6 +45,7 @@ import qualified Data.IntMap as IM import Data.Map (Map) import qualified Data.Map as M+import Data.Semigroup as Sem import Network.DNS.Imports import Network.DNS.Types@@ -59,9 +62,14 @@ initialWState :: WState initialWState = WState M.empty 0 +instance Sem.Semigroup SPut where+ p1 <> p2 = (Sem.<>) <$> p1 <*> p2+ instance Monoid SPut where mempty = return mempty- mappend a b = mconcat <$> sequence [a, b]+#if !(MIN_VERSION_base(4,11,0))+ mappend = (Sem.<>)+#endif put8 :: Word8 -> SPut put8 = fixedSized 1 BB.word8
dns.cabal view
@@ -1,5 +1,5 @@ Name: dns-Version: 3.0.1+Version: 3.0.2 Author: Kazu Yamamoto <kazu@iij.ad.jp> Maintainer: Kazu Yamamoto <kazu@iij.ad.jp> License: BSD3