network-dns 1.1 → 1.1.0.1
raw patch · 2 files changed
+6/−9 lines, 2 filesdep −binary
Dependencies removed: binary
Files
- network-dns.cabal +1/−2
- src/Network/DNS.hs +5/−7
network-dns.cabal view
@@ -1,5 +1,5 @@ Name: network-dns-Version: 1.1+Version: 1.1.0.1 Category: Network Stability: experimental Synopsis: Domain Name System data structures@@ -34,7 +34,6 @@ , hashable >= 1.1 , containers >= 0.4 , data-serializer >= 0.3.2- , binary >= 0.6.4 , bytestring >= 0.10 , text-latin1 >= 0.2 , text-printer >= 0.5
src/Network/DNS.hs view
@@ -64,7 +64,6 @@ import qualified Data.ByteString.Char8 as BS8 import qualified Data.ByteString.Lazy as BSL import qualified Data.ByteString.Builder as BB-import qualified Data.Binary.Get as B import Data.Serializer (Serializer, Serializable, SizedSerializable) import qualified Data.Serializer as S import Data.Deserializer (Deserializer, Deserializable)@@ -279,14 +278,13 @@ evalDecomp ∷ Deserializer μ ⇒ Word16- → DecompT D.BinaryDeserializer α → DecompT μ α+ → DecompT μ α evalDecomp len m = StateT $ \ptrs offset → do- buf ← BSL.fromStrict <$> D.take (fromIntegral len)- let getM = D.binaryDeserializer $ runStateT m ptrs offset- case B.runGetOrFail getM buf of- Left (_, _, e) → unexpected e- Right (_, _, (ptrs', _, x)) → return (ptrs', addToOffset len offset, x)+ D.isolate (fromIntegral len) $ runStateT (m >>= drain) ptrs offset+ where drain r = lift D.chunk >>= \case+ bs | BS.null bs → return r+ bs → incOffset (fromIntegral $ BS.length bs) >> drain r serializeHostName ∷ Serializer s ⇒ HostName → CompT s () serializeHostName = go . hostNameLabels