packages feed

dns 1.2.0 → 1.2.1

raw patch · 7 files changed

+90/−85 lines, 7 filesdep +conduit-extradep +resourcetdep −network-conduitdep ~conduit

Dependencies added: conduit-extra, resourcet

Dependencies removed: network-conduit

Dependency ranges changed: conduit

Files

Network/DNS/Decode.hs view
@@ -5,17 +5,18 @@   , receive   ) where -import Control.Applicative-import Control.Monad-import Data.Bits+import Control.Applicative ((<$), (<$>), (<*), (<*>))+import Control.Monad (replicateM)+import Control.Monad.Trans.Resource (ResourceT, runResourceT)+import Data.Bits ((.&.), shiftR, testBit) import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy as BL-import Data.Conduit-import Data.Conduit.Network-import Data.IP-import Data.Maybe-import Network+import Data.Conduit (($$), Source)+import Data.Conduit.Network (sourceSocket)+import Data.IP (toIPv4, toIPv6)+import Data.Maybe (fromMaybe)+import Network (Socket) import Network.DNS.Internal import Network.DNS.StateBinary 
Network/DNS/Encode.hs view
@@ -5,16 +5,17 @@   , composeQuery   ) where -import qualified Blaze.ByteString.Builder as BB (toByteString, fromWrite, writeInt16be)-import qualified Data.ByteString.Lazy.Char8 as BL (ByteString)-import qualified Data.ByteString.Char8 as BS (length, null, break, drop)-import Network.DNS.StateBinary+import qualified Blaze.ByteString.Builder as BB+import Control.Monad (when)+import Control.Monad.State (State, modify, execState, gets)+import Data.Binary (Word16)+import Data.Bits ((.|.), bit, shiftL)+import qualified Data.ByteString.Char8 as BS+import Data.ByteString.Lazy.Char8 (ByteString)+import Data.IP (fromIPv4, fromIPv6)+import Data.Monoid (Monoid, mappend, mconcat) import Network.DNS.Internal-import Data.Monoid-import Control.Monad.State-import Data.Bits-import Data.Word-import Data.IP+import Network.DNS.StateBinary  (+++) :: Monoid a => a -> a -> a (+++) = mappend@@ -23,7 +24,7 @@  -- | Composing query. First argument is a number to identify response. -composeQuery :: Int -> [Question] -> BL.ByteString+composeQuery :: Int -> [Question] -> ByteString composeQuery idt qs = encode qry   where     hdr = header defaultQuery@@ -39,7 +40,7 @@  -- | Composing DNS data. -encode :: DNSFormat -> BL.ByteString+encode :: DNSFormat -> ByteString encode fmt = runSPut (encodeDNSFormat fmt)  ----------------------------------------------------------------
Network/DNS/Internal.hs view
@@ -5,9 +5,9 @@ import Control.Exception (Exception) import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as BS-import Data.Char-import Data.IP-import Data.Maybe+import Data.Char (toUpper)+import Data.IP (IPv4, IPv6)+import Data.Maybe (fromMaybe) import Data.Typeable (Typeable)  ----------------------------------------------------------------
Network/DNS/Lookup.hs view
@@ -69,8 +69,8 @@   ) where  import Data.ByteString (ByteString)-import qualified Data.ByteString.Char8 as BS (append, intercalate, pack, split)-import Data.IP+import qualified Data.ByteString.Char8 as BS+import Data.IP (IPv4, IPv6) import Network.DNS.Resolver as DNS import Network.DNS.Types 
Network/DNS/Resolver.hs view
@@ -17,21 +17,21 @@   , fromDNSFormat   ) where -import Control.Applicative-import Control.Exception+import Control.Applicative ((<$>), (<*>), pure)+import Control.Exception (bracket) import qualified Data.ByteString.Char8 as BS-import Data.Char-import Data.Int-import Data.List hiding (find, lookup)-import Network.BSD+import Data.Char (isSpace)+import Data.List (isPrefixOf)+import Network.BSD (getProtocolNumber) import Network.DNS.Decode import Network.DNS.Encode import Network.DNS.Internal-import Network.Socket hiding (send, sendTo, recv, recvFrom)-import Network.Socket.ByteString.Lazy+import Network.Socket (HostName, Socket, SocketType(Datagram), sClose, socket, connect)+import Network.Socket (AddrInfoFlag(..), AddrInfo(..), defaultHints, getAddrInfo)+import Network.Socket.ByteString.Lazy (sendAll) import Prelude hiding (lookup)-import System.Random-import System.Timeout+import System.Random (getStdRandom, randomR)+import System.Timeout (timeout)  #if mingw32_HOST_OS == 1 import Network.Socket (send)@@ -159,7 +159,7 @@ withResolvers :: [ResolvSeed] -> ([Resolver] -> IO a) -> IO a withResolvers seeds func = bracket openSockets closeSockets $ \socks -> do     mapM_ (uncurry connectSocket) $ zip socks seeds-    let resolvs = map (uncurry makeResolver) $ zip seeds socks+    let resolvs = zipWith makeResolver seeds socks     func resolvs   where     openSockets = mapM openSocket seeds
Network/DNS/StateBinary.hs view
@@ -1,28 +1,28 @@ {-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-} module Network.DNS.StateBinary where -import Blaze.ByteString.Builder-import Control.Applicative-import Control.Monad.State-import Data.Attoparsec.ByteString+import Blaze.ByteString.Builder (Write)+import qualified Blaze.ByteString.Builder as BB+import Control.Applicative ((<$>), (<*))+import Control.Monad.State (State, StateT)+import qualified Control.Monad.State as ST+import Control.Monad.Trans.Resource (ResourceT)+import qualified Data.Attoparsec as A import qualified Data.Attoparsec.ByteString.Lazy as AL+import qualified Data.Attoparsec.Types as T import Data.ByteString (ByteString)-import qualified Data.ByteString as BS (unpack, length)-import qualified Data.ByteString.Lazy as BL (ByteString)-import Data.Conduit-import Data.Conduit.Attoparsec-import Data.Int+import qualified Data.ByteString as BS+import qualified Data.ByteString.Lazy as BL+import Data.Conduit (Sink)+import Data.Conduit.Attoparsec (sinkParser) import Data.IntMap (IntMap)-import qualified Data.IntMap as IM (insert, lookup, empty)+import qualified Data.IntMap as IM import Data.Map (Map)-import qualified Data.Map as M (insert, lookup, empty)-import Data.Monoid-import Data.Word+import qualified Data.Map as M+import Data.Monoid (Monoid, mconcat, mappend, mempty)+import Data.Word (Word8, Word16, Word32) import Network.DNS.Types-import Prelude hiding (lookup, take) -import qualified Data.Attoparsec.Types as T (Parser)- ----------------------------------------------------------------  type SPut = State WState Write@@ -40,30 +40,30 @@     mappend a b = mconcat <$> sequence [a, b]  put8 :: Word8 -> SPut-put8 = fixedSized 1 writeWord8+put8 = fixedSized 1 BB.writeWord8  put16 :: Word16 -> SPut-put16 = fixedSized 2 writeWord16be+put16 = fixedSized 2 BB.writeWord16be  put32 :: Word32 -> SPut-put32 = fixedSized 4 writeWord32be+put32 = fixedSized 4 BB.writeWord32be  putInt8 :: Int -> SPut-putInt8 = fixedSized 1 (writeInt8 . fromIntegral)+putInt8 = fixedSized 1 (BB.writeInt8 . fromIntegral)  putInt16 :: Int -> SPut-putInt16 = fixedSized 2 (writeInt16be . fromIntegral)+putInt16 = fixedSized 2 (BB.writeInt16be . fromIntegral)  putInt32 :: Int -> SPut-putInt32 = fixedSized 4 (writeInt32be . fromIntegral)+putInt32 = fixedSized 4 (BB.writeInt32be . fromIntegral)  putByteString :: ByteString -> SPut-putByteString = writeSized BS.length writeByteString+putByteString = writeSized BS.length BB.writeByteString  addPositionW :: Int -> State WState () addPositionW n = do-    (WState m cur) <- get-    put $ WState m (cur+n)+    (WState m cur) <- ST.get+    ST.put $ WState m (cur+n)  fixedSized :: Int -> (a -> Write) -> a -> SPut fixedSized n f a = do addPositionW n@@ -75,13 +75,13 @@  wsPop :: Domain -> State WState (Maybe Int) wsPop dom = do-    doms <- gets wsDomain+    doms <- ST.gets wsDomain     return $ M.lookup dom doms  wsPush :: Domain -> Int -> State WState () wsPush dom pos = do-    (WState m cur) <- get-    put $ WState (M.insert dom pos m) cur+    (WState m cur) <- ST.get+    ST.put $ WState (M.insert dom pos m) cur  ---------------------------------------------------------------- @@ -95,39 +95,39 @@ ----------------------------------------------------------------  getPosition :: SGet Int-getPosition = psPosition <$> get+getPosition = psPosition <$> ST.get  addPosition :: Int -> SGet () addPosition n = do-    PState dom pos <- get-    put $ PState dom (pos + n)+    PState dom pos <- ST.get+    ST.put $ PState dom (pos + n)  push :: Int -> Domain -> SGet () push n d = do-    PState dom pos <- get-    put $ PState (IM.insert n d dom) pos+    PState dom pos <- ST.get+    ST.put $ PState (IM.insert n d dom) pos  pop :: Int -> SGet (Maybe Domain)-pop n = IM.lookup n . psDomain <$> get+pop n = IM.lookup n . psDomain <$> ST.get  ----------------------------------------------------------------  get8 :: SGet Word8-get8  = lift anyWord8 <* addPosition 1+get8  = ST.lift A.anyWord8 <* addPosition 1  get16 :: SGet Word16-get16 = lift getWord16be <* addPosition 2+get16 = ST.lift getWord16be <* addPosition 2   where-    word8' = fromIntegral <$> anyWord8+    word8' = fromIntegral <$> A.anyWord8     getWord16be = do         a <- word8'         b <- word8'         return $ a * 256 + b  get32 :: SGet Word32-get32 = lift getWord32be <* addPosition 4+get32 = ST.lift getWord32be <* addPosition 4   where-    word8' = fromIntegral <$> anyWord8+    word8' = fromIntegral <$> A.anyWord8     getWord32be = do         a <- word8'         b <- word8'@@ -152,7 +152,7 @@     toInts = map fromIntegral . BS.unpack  getNByteString :: Int -> SGet ByteString-getNByteString n = lift (take n) <* addPosition n+getNByteString n = ST.lift (A.take n) <* addPosition n  ---------------------------------------------------------------- @@ -160,10 +160,10 @@ initialState = PState IM.empty 0  sinkSGet :: SGet a -> Sink ByteString (ResourceT IO) (a, PState)-sinkSGet parser = sinkParser (runStateT parser initialState)+sinkSGet parser = sinkParser (ST.runStateT parser initialState)  runSGet :: SGet a -> BL.ByteString -> Either String (a, PState)-runSGet parser bs = AL.eitherResult $ AL.parse (runStateT parser initialState) bs+runSGet parser bs = AL.eitherResult $ AL.parse (ST.runStateT parser initialState) bs  runSPut :: SPut -> BL.ByteString-runSPut = toLazyByteString . fromWrite . flip evalState initialWState+runSPut = BB.toLazyByteString . BB.fromWrite . flip ST.evalState initialWState
dns.cabal view
@@ -1,5 +1,5 @@ Name:                   dns-Version:                1.2.0+Version:                1.2.1 Author:                 Kazu Yamamoto <kazu@iij.ad.jp> Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp> License:                BSD3@@ -30,13 +30,14 @@                       , binary                       , blaze-builder                       , bytestring-                      , conduit >= 0.5+                      , conduit >= 1.1+                      , conduit-extra                       , containers                       , iproute >= 1.2.4                       , mtl                       , network >= 2.3-                      , network-conduit                       , random+                      , resourcet   else     Build-Depends:      base >= 4 && < 5                       , attoparsec@@ -44,14 +45,15 @@                       , binary                       , blaze-builder                       , bytestring-                      , conduit+                      , conduit >= 1.1+                      , conduit-extra                       , containers                       , iproute >= 1.2.4                       , mtl                       , network                       , network-bytestring-                      , network-conduit                       , random+                      , resourcet  Test-Suite network   Type:                 exitcode-stdio-1.0@@ -78,15 +80,16 @@                       , binary                       , blaze-builder                       , bytestring-                      , conduit >= 0.5+                      , conduit >= 1.1+                      , conduit-extra                       , containers                       , dns                       , hspec                       , iproute >= 1.2.4                       , mtl                       , network >= 2.3-                      , network-conduit                       , random+                      , resourcet  Test-Suite doctest   Type:                 exitcode-stdio-1.0