packages feed

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 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