dnscache-1.0.1: Caching DNS resolver library and mass DNS resolver utility

Stabilityexperimental
MaintainerErtugrul Soeylemez <es@ertes.de>

Network.DnsCache

Contents

Description

This module implements an asynchronous, caching DNS resolver.

Synopsis

DNS cache

data DnsCache Source

DNS cache configuration.

Instances

createDnsCache :: MonadIO m => Int -> NominalDiffTime -> m DnsCacheSource

Start a DNS cache with the given number of resolver threads and the given cache timeout.

freeDnsCache :: MonadIO m => DnsCache -> m ()Source

Free existing DNS cache.

withDnsCache :: (HasExceptions m, MonadIO m) => Int -> NominalDiffTime -> (DnsCache -> m a) -> m aSource

Convenient wrapper around createDnsCache and freeDnsCache.

Monadic interface

class MonadIO m => DnsMonad m whereSource

Monads, which contain a DNS cache.

Methods

getDnsCache :: m DnsCacheSource

Get the current DNS cache.

Instances

withDnsStateT :: (Applicative m, HasExceptions m, MonadIO m) => Int -> NominalDiffTime -> StateT a DnsCache m a -> m aSource

Run a StateT computation with a DNS cache.

DNS lookup

resolveA :: DnsMonad m => Domain -> m (Maybe [IPv4])Source

Resolve an A record.

resolveAAAA :: DnsMonad m => Domain -> m (Maybe [IPv6])Source

Resolve an AAAA record.

resolveMX :: DnsMonad m => Domain -> m (Maybe [Domain])Source

Resolve an MX record.

DNS mass lookup

data MassResult Source

Result of a mass lookup.

Constructors

MassResult 

Fields

massDomain :: Domain
 
massA :: [IPv4]
 
massAAAA :: [IPv6]
 
massMX :: [Domain]
 

Instances

data MassType Source

The type of resources to look up.

Constructors

MassA 
MassAAAA 
MassMX 
MassAll 

massLookup :: DnsMonad m => MassType -> [Domain] -> m (Map Domain MassResult)Source

Perform a mass lookup.

massLookupReport :: DnsMonad m => MassType -> [Domain] -> (MassResult -> m ()) -> m ()Source

Perform a mass lookup with report function.

Reexports

type Domain = String

Type for domain.