-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Caching DNS resolver library and mass DNS resolver utility -- -- This library implements a caching, asynchronous DNS resolver and -- provides a command line utility for mass DNS resolution. @package dnscache @version 1.0.2 -- | This module implements an asynchronous, caching DNS resolver. module Network.DnsCache -- | DNS cache configuration. data DnsCache -- | Start a DNS cache with the given number of resolver threads and the -- given cache timeout. createDnsCache :: MonadIO m => Int -> NominalDiffTime -> m DnsCache -- | Free existing DNS cache. freeDnsCache :: MonadIO m => DnsCache -> m () -- | Convenient wrapper around createDnsCache and -- freeDnsCache. withDnsCache :: (HasExceptions m, MonadIO m) => Int -> NominalDiffTime -> (DnsCache -> m a) -> m a -- | Monads, which contain a DNS cache. class MonadIO m => DnsMonad m getDnsCache :: DnsMonad m => m DnsCache -- | Run a StateT computation with a DNS cache. withDnsStateT :: (Applicative m, HasExceptions m, MonadIO m) => Int -> NominalDiffTime -> StateT a DnsCache m a -> m a -- | Resolve an A record. resolveA :: DnsMonad m => Domain -> m (Maybe [IPv4]) -- | Resolve an AAAA record. resolveAAAA :: DnsMonad m => Domain -> m (Maybe [IPv6]) -- | Resolve an MX record. resolveMX :: DnsMonad m => Domain -> m (Maybe [Domain]) -- | Result of a mass lookup. data MassResult MassResult :: Domain -> [IPv4] -> [IPv6] -> [Domain] -> MassResult massDomain :: MassResult -> Domain massA :: MassResult -> [IPv4] massAAAA :: MassResult -> [IPv6] massMX :: MassResult -> [Domain] -- | The type of resources to look up. data MassType MassA :: MassType MassAAAA :: MassType MassMX :: MassType MassAll :: MassType -- | Perform a mass lookup. massLookup :: DnsMonad m => MassType -> [Domain] -> m (Map Domain MassResult) -- | Perform a mass lookup with report function. massLookupReport :: DnsMonad m => MassType -> [Domain] -> (MassResult -> m ()) -> m () -- | Type for domain. type Domain = String instance Show MassResult instance DnsMonad IO instance MonadIO m => DnsMonad (StateT r DnsCache m)