dns 0.3.4 → 0.3.5
raw patch · 5 files changed
+26/−30 lines, 5 filesdep +attoparsec-conduitdep +conduitdep +network-conduitdep −attoparsec-enumeratordep −enumeratordep −network-enumeratordep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: attoparsec-conduit, conduit, network-conduit
Dependencies removed: attoparsec-enumerator, enumerator, network-enumerator
Dependency ranges changed: base
API changes (from Hackage documentation)
- Network.DNS.Types: makeQuestion :: Domain -> TYPE -> Question
- Network.DNS.Decode: receive :: Socket -> Integer -> IO DNSFormat
+ Network.DNS.Decode: receive :: Socket -> IO DNSFormat
Files
- Network/DNS/Decode.hs +7/−11
- Network/DNS/Resolver.hs +3/−3
- Network/DNS/StateBinary.hs +4/−4
- Network/DNS/Types.hs +5/−5
- dns.cabal +7/−7
Network/DNS/Decode.hs view
@@ -11,23 +11,21 @@ import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy as BL-import Data.Enumerator (Enumerator, run_, ($$))+import Data.Conduit+import Data.Conduit.Network import Data.IP import Data.Maybe import Network import Network.DNS.Internal import Network.DNS.StateBinary-import Network.Socket.Enumerator ---------------------------------------------------------------- {-| Receiving DNS data from 'Socket' and parse it. The second argument is a buffer size for the socket. -}-receive :: Socket -> Integer -> IO DNSFormat-receive sock bufsize = receiveDNSFormat responseEnum- where- responseEnum = enumSocket bufsize sock+receive :: Socket -> IO DNSFormat+receive sock = receiveDNSFormat $ sourceSocket sock ---------------------------------------------------------------- @@ -37,12 +35,10 @@ decode bs = fst <$> runSGet decodeResponse bs ------------------------------------------------------------------receiveDNSFormat :: Enumerator ByteString IO (DNSFormat, PState)- -> IO DNSFormat-receiveDNSFormat enum = fst <$> run_ (enum $$ iter)+receiveDNSFormat :: Source (ResourceT IO) ByteString -> IO DNSFormat+receiveDNSFormat src = fst <$> runResourceT (src $$ sink) where- iter = iterSGet decodeResponse+ sink = sinkSGet decodeResponse ----------------------------------------------------------------
Network/DNS/Resolver.hs view
@@ -61,6 +61,7 @@ data ResolvConf = ResolvConf { resolvInfo :: FileOrNumericHost , resolvTimeout :: Int+ -- | This field was obsoleted. , resolvBufsize :: Integer } @@ -68,7 +69,7 @@ Default 'ResolvConf'. 'resolvInfo' is 'RCFilePath' \"\/etc\/resolv.conf\". 'resolvTimeout' is 3,000,000 micro seconds.- 'resolvBufsize' is 512.+ 'resolvBufsize' is 512. (obsoleted) -} defaultResolvConf :: ResolvConf defaultResolvConf = ResolvConf {@@ -173,10 +174,9 @@ lookupRaw rlv dom typ = do seqno <- genId rlv sendAll sock (composeQuery seqno [q])- (>>= check seqno) <$> timeout tm (receive sock bufsize)+ (>>= check seqno) <$> timeout tm (receive sock) where sock = dnsSock rlv- bufsize = dnsBufsize rlv tm = dnsTimeout rlv q = makeQuestion dom typ check seqno res = do
Network/DNS/StateBinary.hs view
@@ -6,11 +6,11 @@ import Control.Monad.State import Data.Attoparsec.ByteString import qualified Data.Attoparsec.ByteString.Lazy as AL-import Data.Attoparsec.Enumerator import Data.ByteString (ByteString) import qualified Data.ByteString as BS (unpack, length) import qualified Data.ByteString.Lazy as BL (ByteString)-import Data.Enumerator (Iteratee)+import Data.Conduit+import Data.Conduit.Attoparsec import Data.Int import Data.IntMap (IntMap) import qualified Data.IntMap as IM (insert, lookup, empty)@@ -159,8 +159,8 @@ initialState :: PState initialState = PState IM.empty 0 -iterSGet :: Monad m => SGet a -> Iteratee ByteString m (a, PState)-iterSGet parser = iterParser (runStateT parser initialState)+sinkSGet :: SGet a -> Sink ByteString (ResourceT IO) (a, PState)+sinkSGet parser = sinkParser (runStateT parser initialState) runSGet :: SGet a -> BL.ByteString -> Either String (a, PState) runSGet parser bs = AL.eitherResult $ AL.parse (runStateT parser initialState) bs
Network/DNS/Types.hs view
@@ -8,17 +8,17 @@ -- * TYPE , TYPE (..), intToType, typeToInt, toType -- * DNS Format- , DNSFormat (DNSFormat), header, question, answer, authority, additional+ , DNSFormat (..) -- * DNS Header- , DNSHeader (DNSHeader), identifier, flags, qdCount, anCount, nsCount, arCount+ , DNSHeader (..) -- * DNS Flags- , DNSFlags (DNSFlags), qOrR, opcode, authAnswer, trunCation, recDesired, recAvailable, rcode+ , DNSFlags (..) -- * DNS Body , QorR (..) , OPCODE (..) , RCODE (..)- , ResourceRecord (ResourceRecord), rrname, rrtype, rrttl, rdlen, rdata- , Question (Question), qname, qtype, makeQuestion+ , ResourceRecord (..)+ , Question (..) , RDATA (..) , responseA, responseAAAA ) where
dns.cabal view
@@ -1,5 +1,5 @@ Name: dns-Version: 0.3.4+Version: 0.3.5 Author: Kazu Yamamoto <kazu@iij.ad.jp> Maintainer: Kazu Yamamoto <kazu@iij.ad.jp> License: BSD3@@ -23,31 +23,31 @@ if impl(ghc >= 7) Build-Depends: base >= 4 && < 5 , attoparsec- , attoparsec-enumerator+ , attoparsec-conduit , binary , blaze-builder , bytestring+ , conduit , containers- , enumerator , iproute >= 1.2.4 , mtl , network >= 2.3- , network-enumerator+ , network-conduit , random else Build-Depends: base >= 4 && < 5 , attoparsec- , attoparsec-enumerator+ , attoparsec-conduit , binary , blaze-builder , bytestring+ , conduit , containers- , enumerator , iproute >= 1.2.4 , mtl , network , network-bytestring- , network-enumerator+ , network-conduit , random Source-Repository head Type: git