-- | A thread-safe DNS library for both clients and servers written -- in pure Haskell. -- The Network.DNS module re-exports all other exposed modules for -- convenience. -- Applications will most likely use the high-level interface, while -- library/daemon authors may need to use the lower-level one. -- EDNS and TCP fallback are supported. -- -- Examples: -- -- >>> rs <- makeResolvSeed defaultResolvConf -- >>> withResolver rs $ \resolver -> lookupA resolver "192.0.2.1.nip.io" -- Right [192.0.2.1] module Network.DNS ( -- * High level module Network.DNS.Lookup -- | This module contains simple functions to -- perform various DNS lookups. If you simply want to resolve a -- hostname ('lookupA'), or find a domain's MX record -- ('lookupMX'), this is the easiest way to do it. , module Network.DNS.Resolver -- | Resolver related data types. , module Network.DNS.Types -- | All of the types that the other modules use. , module Network.DNS.Utils -- | This module contains utility functions used -- for processing DNS data. -- * Middle level , module Network.DNS.LookupRaw -- | This provides the 'lookup', 'lookupAuth', 'lookupRaw' and -- 'lookupRawCtl' functions for any resource records. -- * Low level , module Network.DNS.Encode -- | Encoding a query or response. , module Network.DNS.Decode -- | Decoding a qurey or response. , module Network.DNS.IO -- | Sending and receiving. ) where import Network.DNS.Decode import Network.DNS.Encode import Network.DNS.IO import Network.DNS.Lookup import Network.DNS.LookupRaw import Network.DNS.Resolver import Network.DNS.Types import Network.DNS.Utils