dns 4.1.1 → 4.2.0
raw patch · 5 files changed
+150/−176 lines, 5 filesdep +cryptondep −cryptonitedep −doctestdep ~basePVP ok
version bump matches the API change (PVP)
Dependencies added: crypton
Dependencies removed: cryptonite, doctest
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- Changelog.md +4/−0
- Network/DNS.hs +1/−0
- Network/DNS/Lookup.hs +13/−10
- dns.cabal +132/−130
- test2/doctests.hs +0/−36
Changelog.md view
@@ -1,5 +1,9 @@ # ChangeLog +## 4.2.0++- Switching cryptonite to crypton.+ ## 4.1.1 - Adding encoder/decoder for CAA RR.
Network/DNS.hs view
@@ -8,6 +8,7 @@ -- -- Examples: --+-- >>> :set -XOverloadedStrings -- >>> rs <- makeResolvSeed defaultResolvConf -- >>> withResolver rs $ \resolver -> lookupA resolver "192.0.2.1.nip.io" -- Right [192.0.2.1]
Network/DNS/Lookup.hs view
@@ -41,11 +41,11 @@ -- by creating and utilizing a 'ResolvConf' which has a timeout of -- one millisecond and a very limited number of retries: ----- >>> let hostname = Data.ByteString.Char8.pack "www.example.com"+-- >>> let hostname2 = Data.ByteString.Char8.pack "www.example.com" -- >>> let badrc = defaultResolvConf { resolvTimeout = 0, resolvRetry = 1 } -- >>>--- >>> rs <- makeResolvSeed badrc--- >>> withResolver rs $ \resolver -> lookupA resolver hostname+-- >>> rs2 <- makeResolvSeed badrc+-- >>> withResolver rs2 $ \resolver -> lookupA resolver hostname2 -- Left RetryLimitExceeded -- -- As is the convention, successful results will always be wrapped@@ -80,6 +80,9 @@ import Network.DNS.Resolver as DNS import Network.DNS.Types.Internal +-- $setup+-- >>> :set -XOverloadedStrings+ ---------------------------------------------------------------- -- | Look up all \'A\' records for the given hostname.@@ -93,8 +96,8 @@ -- This function will also follow a CNAME and resolve its target if -- one exists for the queried hostname: ----- >>> rs <- makeResolvSeed defaultResolvConf--- >>> withResolver rs $ \resolver -> lookupA resolver "www.kame.net"+-- >>> rs2 <- makeResolvSeed defaultResolvConf+-- >>> withResolver rs2 $ \resolver -> lookupA resolver "www.kame.net" -- Right [210.155.141.200] -- lookupA :: Resolver -> Domain -> IO (Either DNSError [IPv4])@@ -147,8 +150,8 @@ -- -- The domain \"mew.org\" does however have a single MX: ----- >>> rs <- makeResolvSeed defaultResolvConf--- >>> withResolver rs $ \resolver -> lookupMX resolver "mew.org"+-- >>> rs2 <- makeResolvSeed defaultResolvConf+-- >>> withResolver rs2 $ \resolver -> lookupMX resolver "mew.org" -- Right [("mail.mew.org.",10)] -- -- Also note that all hostnames are returned with a trailing dot to@@ -157,8 +160,8 @@ -- However the MX host itself has no need for an MX record, so its MX RRset -- is empty. But, \"no results\" is still a successful result. ----- >>> rs <- makeResolvSeed defaultResolvConf--- >>> withResolver rs $ \resolver -> lookupMX resolver "mail.mew.org"+-- >>> rs3 <- makeResolvSeed defaultResolvConf+-- >>> withResolver rs3 $ \resolver -> lookupMX resolver "mail.mew.org" -- Right [] -- lookupMX :: Resolver -> Domain -> IO (Either DNSError [(Domain,Int)])@@ -415,7 +418,7 @@ -- -- >>> rs <- makeResolvSeed defaultResolvConf -- >>> withResolver rs $ \resolver -> lookupSRV resolver "_xmpp-server._tcp.jabber.ietf.org"--- Right [(5,0,5269,"jabber.ietf.org.")]+-- Right [(5,0,5269,"_dc-srv.6661af51975d._xmpp-server._tcp.jabber.ietf.org.")] -- Though the "jabber.ietf.orgs" SRV record may prove reasonably stable, as -- with anything else published in DNS it is subject to change. Also, this
dns.cabal view
@@ -1,136 +1,138 @@-Name: dns-Version: 4.1.1-Author: Kazu Yamamoto <kazu@iij.ad.jp>-Maintainer: Kazu Yamamoto <kazu@iij.ad.jp>-License: BSD3-License-File: LICENSE-Synopsis: DNS library in Haskell-Description:- A thread-safe DNS library for both clients and servers written- in pure Haskell.-Category: Network-Cabal-Version: 2.0-Build-Type: Simple-Extra-Source-Files: Changelog.md- cabal.project- cbits/dns.c-Tested-With: GHC == 8.0.2- , GHC == 8.2.2- , GHC == 8.4.4- , GHC == 8.6.5- , GHC == 8.8.1+cabal-version: 2.0+name: dns+version: 4.2.0+license: BSD3+license-file: LICENSE+maintainer: Kazu Yamamoto <kazu@iij.ad.jp>+author: Kazu Yamamoto <kazu@iij.ad.jp>+tested-with:+ ghc ==8.0.2 ghc ==8.2.2 ghc ==8.4.4 ghc ==8.6.5 ghc ==8.8.1 -Library dns-internal- Default-Language: Haskell2010- GHC-Options: -Wall- Hs-Source-Dirs: internal- Exposed-Modules: Network.DNS.Imports- Network.DNS.Types.Internal- Network.DNS.Types.Resolver- Network.DNS.Resolver.Internal- Network.DNS.Decode.Parsers- Network.DNS.Decode.Internal- Network.DNS.Encode.Builders- Network.DNS.Encode.Internal- Network.DNS.StateBinary- Network.DNS.Memo- Network.DNS.Base32Hex- Build-Depends: base- , array- , async- , attoparsec- , auto-update- , base16-bytestring- , base64-bytestring- , bytestring- , case-insensitive- , containers- , cryptonite- , hourglass- , iproute- , mtl- , network- , psqueues- if os(windows)- C-Sources: cbits/dns.c- Extra-Libraries: iphlpapi+synopsis: DNS library in Haskell+description:+ A thread-safe DNS library for both clients and servers written+ in pure Haskell. -Library- Default-Language: Haskell2010- GHC-Options: -Wall- Exposed-Modules: Network.DNS- Network.DNS.Lookup- Network.DNS.LookupRaw- Network.DNS.Resolver- Network.DNS.Utils- Network.DNS.Types- Network.DNS.Decode- Network.DNS.Encode- Network.DNS.IO- Other-Modules: Network.DNS.Transport- Build-Depends: dns-internal- , base >= 4 && < 5- , array- , async- , attoparsec- , auto-update- , base16-bytestring- , base64-bytestring- , bytestring- , containers- , cryptonite- , hourglass- , iproute >= 1.3.2- , mtl- , network >= 2.3- , psqueues+category: Network+build-type: Simple+extra-source-files:+ Changelog.md+ cabal.project+ cbits/dns.c -Test-Suite network-tests- Type: exitcode-stdio-1.0- Default-Language: Haskell2010- Hs-Source-Dirs: test2- Ghc-Options: -Wall- Main-Is: Spec.hs- Other-Modules: LookupSpec- IOSpec- Build-Depends: dns- , dns-internal- , base- , hspec- , network- Build-Tool-Depends: hspec-discover:hspec-discover+source-repository head+ type: git+ location: https://github.com/kazu-yamamoto/dns.git -Test-Suite spec-tests- Type: exitcode-stdio-1.0- Default-Language: Haskell2010- Hs-Source-Dirs: test- Ghc-Options: -Wall- Main-Is: Spec.hs- Other-Modules: EncodeSpec- DecodeSpec- RoundTripSpec- Build-Depends: dns- , dns-internal- , QuickCheck >= 2.9- , base- , bytestring- , case-insensitive- , hspec- , iproute >= 1.3.2- , word8- Build-Tool-Depends: hspec-discover:hspec-discover+library+ exposed-modules:+ Network.DNS+ Network.DNS.Lookup+ Network.DNS.LookupRaw+ Network.DNS.Resolver+ Network.DNS.Utils+ Network.DNS.Types+ Network.DNS.Decode+ Network.DNS.Encode+ Network.DNS.IO -Test-Suite doctests- Type: exitcode-stdio-1.0- Default-Language: Haskell2010- Hs-Source-Dirs: test2- Ghc-Options: -Wall -threaded- Main-Is: doctests.hs- Other-Modules: Paths_dns- Autogen-Modules: Paths_dns- Build-Depends: base- , doctest+ other-modules: Network.DNS.Transport+ default-language: Haskell2010+ ghc-options: -Wall+ build-depends:+ dns-internal,+ base >=4 && <5,+ array,+ async,+ attoparsec,+ auto-update,+ base16-bytestring,+ base64-bytestring,+ bytestring,+ containers,+ crypton,+ hourglass,+ iproute >=1.3.2,+ mtl,+ network >=2.3,+ psqueues -Source-Repository head- Type: git- Location: git://github.com/kazu-yamamoto/dns.git+library dns-internal+ exposed-modules:+ Network.DNS.Imports+ Network.DNS.Types.Internal+ Network.DNS.Types.Resolver+ Network.DNS.Resolver.Internal+ Network.DNS.Decode.Parsers+ Network.DNS.Decode.Internal+ Network.DNS.Encode.Builders+ Network.DNS.Encode.Internal+ Network.DNS.StateBinary+ Network.DNS.Memo+ Network.DNS.Base32Hex++ hs-source-dirs: internal+ default-language: Haskell2010+ ghc-options: -Wall+ build-depends:+ base,+ array,+ async,+ attoparsec,+ auto-update,+ base16-bytestring,+ base64-bytestring,+ bytestring,+ case-insensitive,+ containers,+ crypton,+ hourglass,+ iproute,+ mtl,+ network,+ psqueues++ if os(windows)+ c-sources: cbits/dns.c+ extra-libraries: iphlpapi++test-suite network-tests+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ build-tool-depends: hspec-discover:hspec-discover+ hs-source-dirs: test2+ other-modules:+ LookupSpec+ IOSpec++ default-language: Haskell2010+ ghc-options: -Wall+ build-depends:+ dns,+ dns-internal,+ base,+ hspec,+ network++test-suite spec-tests+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ build-tool-depends: hspec-discover:hspec-discover+ hs-source-dirs: test+ other-modules:+ EncodeSpec+ DecodeSpec+ RoundTripSpec++ default-language: Haskell2010+ ghc-options: -Wall+ build-depends:+ dns,+ dns-internal,+ QuickCheck >=2.9,+ base,+ bytestring,+ case-insensitive,+ hspec,+ iproute >=1.3.2,+ word8
− test2/doctests.hs
@@ -1,36 +0,0 @@-{-# LANGUAGE CPP #-}---- | Run doctests only on non-Windows systems with GHC 8.4 or later.------ The Windows doctests now compile and run, but either succeed quickly or--- randomly hang (before AppVeyor kills them after an hour). So we disable--- these for now. This can be tested again at some point in the future.----module Main where--#if !defined(mingw32_HOST_OS) && MIN_TOOL_VERSION_ghc(8,4,0)-import Test.DocTest-import System.Environment---- | Expose precompiled library modules.-modules :: [String]-modules =- [ "-XOverloadedStrings"- , "-XCPP"- , "-XLambdaCase"- , "-XPatternSynonyms"- , "-i","-i.","-iinternal"- , "-threaded"- , "-package=dns"- , "Network/DNS.hs"- ]--main :: IO ()-main = getArgs >>= doctest . (++ modules)--#else--main :: IO ()-main = return ()--#endif