dns 3.0.0 → 3.0.1
raw patch · 16 files changed
+79/−97 lines, 16 filesdep ~basedep ~networkPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, network
API changes (from Hackage documentation)
Files
- Changelog.md +4/−0
- Network/DNS/Decode.hs +2/−9
- Network/DNS/Decode/Internal.hs +4/−11
- Network/DNS/Encode.hs +3/−11
- Network/DNS/IO.hs +4/−10
- Network/DNS/Imports.hs +27/−0
- Network/DNS/Lookup.hs +4/−3
- Network/DNS/LookupRaw.hs +2/−3
- Network/DNS/Memo.hs +1/−3
- Network/DNS/Resolver.hs +10/−22
- Network/DNS/StateBinary.hs +3/−9
- Network/DNS/Transport.hs +7/−6
- Network/DNS/Types.hs +2/−4
- Network/DNS/Types/Internal.hs +2/−3
- Network/DNS/Utils.hs +2/−2
- dns.cabal +2/−1
Changelog.md view
@@ -1,3 +1,7 @@+# 3.0.1++- Supporting GHC 7.8 again.+ # 3.0.0 - The version introduces some breaking changes internally. But upper layer APIs in the `Lookup` module remain the same.
Network/DNS/Decode.hs view
@@ -1,5 +1,3 @@-{-# LANGUAGE CPP #-}- -- | Decoders for DNS. module Network.DNS.Decode ( -- * Decoder@@ -13,15 +11,10 @@ , decodeMailbox ) where -import Control.Applicative (many)-import Data.ByteString (ByteString)+import Network.DNS.Decode.Internal+import Network.DNS.Imports import Network.DNS.StateBinary import Network.DNS.Types-import Network.DNS.Decode.Internal--#if __GLASGOW_HASKELL__ < 709-import Control.Applicative-#endif ----------------------------------------------------------------
Network/DNS/Decode/Internal.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE OverloadedStrings, CPP #-}+{-# LANGUAGE OverloadedStrings #-} module Network.DNS.Decode.Internal ( getResponse@@ -10,21 +10,14 @@ , getMailbox ) where -import Control.Monad (replicateM)-import Data.Bits ((.&.), shiftR, testBit)-import Data.ByteString (ByteString) import qualified Data.ByteString as B import qualified Data.ByteString.Char8 as BS import Data.IP (IP(..), toIPv4, toIPv6b)-import Data.Word (Word16)-import Network.DNS.StateBinary-import Network.DNS.Types-import Numeric (showHex) import qualified Safe -#if __GLASGOW_HASKELL__ < 709-import Control.Applicative-#endif+import Network.DNS.Imports+import Network.DNS.StateBinary+import Network.DNS.Types ----------------------------------------------------------------
Network/DNS/Encode.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE RecordWildCards, CPP #-}+{-# LANGUAGE RecordWildCards #-} -- | Encoders for DNS. module Network.DNS.Encode (@@ -12,23 +12,15 @@ , encodeMailbox ) where -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.Builder as BB-import Data.ByteString.Char8 (ByteString) import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy.Char8 as LBS import Data.IP (IP(..), fromIPv4, fromIPv6b)-import Data.List (dropWhileEnd)-import Data.Monoid ((<>))++import Network.DNS.Imports import Network.DNS.StateBinary import Network.DNS.Types--#if __GLASGOW_HASKELL__ < 709-import Data.Monoid (mconcat)-#endif ----------------------------------------------------------------
Network/DNS/IO.hs view
@@ -27,7 +27,6 @@ #endif import qualified Control.Monad.State as ST-import Data.ByteString (ByteString) import qualified Data.ByteString.Builder as BB import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy.Char8 as LBS@@ -37,25 +36,20 @@ import qualified Data.Conduit.Binary as CB import Data.Conduit.Network (sourceSocket) import Data.IP (IPv4, IPv6)-import Data.Monoid ((<>))-import Network (Socket)--#ifdef GHC708-import Control.Applicative ((<$>))-#endif+import Network.Socket (Socket) #if defined(WIN) && defined(GHC708) import Network.Socket (send) import qualified Data.ByteString.Char8 as BS-import Control.Monad (when) #else import Network.Socket.ByteString (sendAll) #endif -import Network.DNS.Types-import Network.DNS.Encode (encode) import Network.DNS.Decode.Internal (getResponse)+import Network.DNS.Encode (encode)+import Network.DNS.Imports import Network.DNS.StateBinary (PState, initialState)+import Network.DNS.Types ----------------------------------------------------------------
+ Network/DNS/Imports.hs view
@@ -0,0 +1,27 @@+module Network.DNS.Imports (+ ByteString+ , NonEmpty(..)+ , module Control.Applicative+ , module Control.Monad+ , module Data.Bits+ , module Data.List+ , module Data.Maybe+ , module Data.Monoid+ , module Data.Ord+ , module Data.Typeable+ , module Data.Word+ , module Numeric+ ) where++import Control.Applicative+import Control.Monad+import Data.Bits+import Data.ByteString (ByteString)+import Data.List+import Data.List.NonEmpty (NonEmpty(..))+import Data.Maybe+import Data.Monoid+import Data.Ord+import Data.Typeable+import Data.Word+import Numeric
Network/DNS/Lookup.hs view
@@ -72,13 +72,14 @@ , lookupSRV ) where -import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as BS import Data.IP (IPv4, IPv6)-import Network.DNS.Resolver as DNS++import Network.DNS.Imports import Network.DNS.LookupRaw as DNS+import Network.DNS.Resolver as DNS import Network.DNS.Types-import Data.Word (Word16, Word32)+ ----------------------------------------------------------------
Network/DNS/LookupRaw.hs view
@@ -11,16 +11,15 @@ , fromDNSFormat ) where -import Control.Monad (when) import Data.Time (getCurrentTime, addUTCTime)+import Prelude hiding (lookup) import Network.DNS.IO+import Network.DNS.Imports hiding (lookup) import Network.DNS.Memo import Network.DNS.Transport import Network.DNS.Types import Network.DNS.Types.Internal--import Prelude hiding (lookup) -- $setup -- >>> import Network.DNS.Resolver
Network/DNS/Memo.hs view
@@ -1,14 +1,12 @@ module Network.DNS.Memo where -import Control.Applicative ((<$>)) import qualified Control.Reaper as R-import Data.ByteString (ByteString) import qualified Data.ByteString as B-import Data.List (foldl') import Data.OrdPSQ (OrdPSQ) import qualified Data.OrdPSQ as PSQ import Data.Time (UTCTime, getCurrentTime) +import Network.DNS.Imports import Network.DNS.Types data Section = Answer | Authority deriving (Eq, Ord, Show)
Network/DNS/Resolver.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE BangPatterns #-}@@ -41,38 +40,29 @@ #define GHC708 #endif -import qualified Data.ByteString as BS import Control.Exception as E-import Control.Monad (forM, replicateM)-import Data.Maybe (isJust, maybe) import qualified Crypto.Random as C+import qualified Data.ByteString as BS import Data.IORef (IORef) import qualified Data.IORef as I-import Data.List.NonEmpty (NonEmpty(..)) import qualified Data.List.NonEmpty as NE-import Data.Word (Word16)-import Network.BSD (getProtocolNumber)-import Network.DNS.Transport-import Network.DNS.Types-import Network.DNS.Types.Internal-import Network.DNS.Memo-import Network.Socket (AddrInfoFlag(..), AddrInfo(..), PortNumber(..), HostName, SocketType(Datagram), getAddrInfo, defaultHints)+import Network.Socket (AddrInfoFlag(..), AddrInfo(..), PortNumber, HostName, SocketType(Datagram), getAddrInfo, defaultHints) import Prelude hiding (lookup) -#ifdef GHC708-import Control.Applicative ((<$>), (<*>), pure)-#endif- #if defined(WIN) import qualified Data.List.Split as Split import Foreign.C.String import Foreign.Marshal.Alloc (allocaBytes)-import Data.Word #else import Data.Char (isSpace)-import Data.List (isPrefixOf) #endif +import Network.DNS.Imports+import Network.DNS.Memo+import Network.DNS.Transport+import Network.DNS.Types+import Network.DNS.Types.Internal+ ---------------------------------------------------------------- -- | Make a 'ResolvSeed' from a 'ResolvConf'.@@ -116,12 +106,10 @@ makeAddrInfo :: HostName -> Maybe PortNumber -> IO AddrInfo makeAddrInfo addr mport = do- proto <- getProtocolNumber "udp"- let flags = [AI_ADDRCONFIG, AI_NUMERICHOST, AI_PASSIVE]+ let flgs = [AI_ADDRCONFIG, AI_NUMERICHOST, AI_PASSIVE] hints = defaultHints {- addrFlags = if isJust mport then AI_NUMERICSERV : flags else flags+ addrFlags = if isJust mport then AI_NUMERICSERV : flgs else flgs , addrSocketType = Datagram- , addrProtocol = proto } serv = maybe "domain" show mport head <$> getAddrInfo (Just hints) (Just addr) (Just serv)
Network/DNS/StateBinary.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, CPP #-}+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-} module Network.DNS.StateBinary ( PState(..) , initialState@@ -34,9 +34,7 @@ import Control.Monad.State (State, StateT) import qualified Control.Monad.State as ST import qualified Data.Attoparsec.ByteString as A- import qualified Data.Attoparsec.Types as T-import Data.ByteString (ByteString) import qualified Data.ByteString as BS import Data.ByteString.Builder (Builder) import qualified Data.ByteString.Builder as BB@@ -45,13 +43,9 @@ import qualified Data.IntMap as IM import Data.Map (Map) import qualified Data.Map as M-import Data.Word (Word8, Word16, Word32)-import Network.DNS.Types -#if __GLASGOW_HASKELL__ < 709-import Control.Applicative ((<$>), (<*))-import Data.Monoid (Monoid, mconcat, mappend, mempty)-#endif+import Network.DNS.Imports+import Network.DNS.Types ----------------------------------------------------------------
Network/DNS/Transport.hs view
@@ -10,14 +10,15 @@ import Control.Exception as E import qualified Data.ByteString.Char8 as BS import qualified Data.List.NonEmpty as NE-import Data.Typeable-import Network.DNS.IO-import Network.DNS.Types-import Network.DNS.Types.Internal import Network.Socket (AddrInfo(..), SockAddr(..), Family(AF_INET, AF_INET6), Socket, SocketType(Stream), close, socket, connect, defaultProtocol) import System.IO.Error (annotateIOError) import System.Timeout (timeout) +import Network.DNS.IO+import Network.DNS.Imports+import Network.DNS.Types+import Network.DNS.Types.Internal+ -- | Check response for a matching identifier. If we ever do pipelined TCP, -- we'll also need to match the QNAME, CLASS and QTYPE. See: -- https://tools.ietf.org/html/rfc7766#section-7@@ -176,10 +177,10 @@ sendVC vc qry receiveVC vc case mres of- Nothing -> E.throwIO TimeoutExpired+ Nothing -> E.throwIO TimeoutExpired Just res | checkResp q ident res -> return res- | otherwise -> E.throwIO SequenceNumberMismatch+ | otherwise -> E.throwIO SequenceNumberMismatch ----------------------------------------------------------------
Network/DNS/Types.hs view
@@ -100,15 +100,13 @@ ) where import Control.Exception (Exception, IOException)-import Data.Bits ((.&.), (.|.), shiftR, shiftL, testBit, setBit)-import Data.ByteString (ByteString) import qualified Data.ByteString.Base64 as B64 (encode) import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Builder as L import qualified Data.ByteString.Lazy as L import Data.IP (IP, IPv4, IPv6)-import Data.Typeable (Typeable)-import Data.Word (Word8, Word16, Word32)++import Network.DNS.Imports ----------------------------------------------------------------
Network/DNS/Types/Internal.hs view
@@ -1,9 +1,8 @@ module Network.DNS.Types.Internal where -import Data.List.NonEmpty (NonEmpty(..))-import Network.Socket (AddrInfo(..), PortNumber(..), HostName)-import Data.Word (Word16)+import Network.Socket (AddrInfo(..), PortNumber, HostName) +import Network.DNS.Imports import Network.DNS.Memo import Network.DNS.Types
Network/DNS/Utils.hs view
@@ -12,9 +12,9 @@ , map , null , pack )-import Data.Char ( toLower )+import Data.Char (toLower) -import Network.DNS.Types ( Domain )+import Network.DNS.Types (Domain) -- | Perform both 'normalizeCase' and 'normalizeRoot' on the given
dns.cabal view
@@ -1,5 +1,5 @@ Name: dns-Version: 3.0.0+Version: 3.0.1 Author: Kazu Yamamoto <kazu@iij.ad.jp> Maintainer: Kazu Yamamoto <kazu@iij.ad.jp> License: BSD3@@ -27,6 +27,7 @@ Network.DNS.Decode Network.DNS.IO Other-Modules: Network.DNS.Decode.Internal+ Network.DNS.Imports Network.DNS.Memo Network.DNS.StateBinary Network.DNS.Transport