-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Domain Name System data structures -- -- This package provides Domain Name System data structures and -- (de)serialization routines. @package network-dns @version 1.1 -- | This module provides Domain Name System data structures and -- (de)serialization routines. module Network.DNS -- | Host name. data HostName -- | HostName proxy value. aHostName :: Proxy HostName -- | Host name as a ByteString. hostName :: HostName -> ByteString -- | List the HostName labels: -- --
-- hostNameLabels (fromJust (fromString "www.google.com")) = ["www", "google", "com"] --hostNameLabels :: HostName -> [ByteString] -- | Host name for reverse DNS lookups. -- --
-- toString (arpaHostName (IPv4 (ip4FromOctets 1 2 3 4))) = "4.3.2.1.in-addr.arpa" -- toString (arpaHostName (IPv6 (ip6FromWords 1 2 3 4 5 6 7 8))) = "8.0.0.0.7.0.0.0.6.0.0.0.5.0.0.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.ip6.arpa" --arpaHostName :: IP -> HostName -- | Host address. Either a host name or an IP address. data HostAddr a HostName :: {-# UNPACK #-} !HostName -> HostAddr a HostAddr :: !a -> HostAddr a type Host4Addr = HostAddr IP4 type Host6Addr = HostAddr IP6 -- | HostAddr proxy value. aHostAddr :: Proxy HostAddr -- | HostAddr a proxy value. aHostAddrOf :: Proxy a -> Proxy (HostAddr a) -- | Host4Addr proxy value. aHost4Addr :: Proxy Host4Addr -- | Host6Addr proxy value. aHost6Addr :: Proxy Host6Addr -- | HostAddr IP proxy value. aHostAddrIP :: Proxy (HostAddr IP) -- | Message identifier. type DnsId = Word16 -- | Resource Record type. data DnsType α [AddrDnsType] :: DnsType IP4 [Addr6DnsType] :: DnsType IP6 [NsDnsType] :: DnsType HostName [CNameDnsType] :: DnsType HostName [PtrDnsType] :: DnsType HostName [MxDnsType] :: DnsType (Word16, HostName) -- | Numeric representation of a Resource Record type. dnsTypeCode :: DnsType α -> Word16 -- | Resource Record data. data DnsData DnsData :: !(DnsType α) -> α -> DnsData -- | The type [dnsType] :: DnsData -> !(DnsType α) -- | The data [dnsData] :: DnsData -> α -- | Resource Record. data DnsRecord DnsRecord :: {-# UNPACK #-} !HostName -> {-# UNPACK #-} !Word32 -> !DnsData -> DnsRecord -- | Record owner [dnsRecOwner] :: DnsRecord -> {-# UNPACK #-} !HostName -- | Maximum caching time in secords [dnsRecTtl] :: DnsRecord -> {-# UNPACK #-} !Word32 -- | Record data [dnsRecData] :: DnsRecord -> !DnsData -- | DNS query type. data DnsQType -- | Record type StdDnsType :: (DnsType α) -> DnsQType -- | All record types AllDnsType :: DnsQType -- | Numeric representation of a DNS query type. dnsQTypeCode :: DnsQType -> Word16 -- | DNS question. data DnsQuestion DnsQuestion :: {-# UNPACK #-} !HostName -> !DnsQType -> DnsQuestion -- | Ask about the specified host name [dnsQName] :: DnsQuestion -> {-# UNPACK #-} !HostName -- | Query type [dnsQType] :: DnsQuestion -> !DnsQType -- | Request message. data DnsReq -- | Standard query DnsReq :: {-# UNPACK #-} !DnsId -> !Bool -> !Bool -> {-# UNPACK #-} !DnsQuestion -> DnsReq -- | Message identifier [dnsReqId] :: DnsReq -> {-# UNPACK #-} !DnsId -- | Truncation flag [dnsReqTruncd] :: DnsReq -> !Bool -- | Recursion flag [dnsReqRec] :: DnsReq -> !Bool -- | Question [dnsReqQuestion] :: DnsReq -> {-# UNPACK #-} !DnsQuestion -- | Inverse query DnsInvReq :: {-# UNPACK #-} !DnsId -> !IP -> DnsReq -- | Message identifier [dnsReqId] :: DnsReq -> {-# UNPACK #-} !DnsId -- | IP address [dnsReqInv] :: DnsReq -> !IP -- | Errors returned in responses. data DnsError FormatDnsError :: DnsError FailureDnsError :: DnsError NoNameDnsError :: DnsError NotImplDnsError :: DnsError RefusedDnsError :: DnsError NameExistsDnsError :: DnsError RsExistsDnsError :: DnsError NoRsDnsError :: DnsError NotAuthDnsError :: DnsError NotInZoneDnsError :: DnsError -- | Response message. data DnsResp -- | Normal response. DnsResp :: {-# UNPACK #-} !DnsId -> !Bool -> !Bool -> !Bool -> {-# UNPACK #-} !DnsQuestion -> [DnsRecord] -> [DnsRecord] -> [DnsRecord] -> DnsResp -- | Request identifer [dnsRespId] :: DnsResp -> {-# UNPACK #-} !DnsId -- | Truncation flag [dnsRespTruncd] :: DnsResp -> !Bool -- | Authoritative answer flag [dnsRespAuthd] :: DnsResp -> !Bool -- | Recursive query support flag [dnsRespRec] :: DnsResp -> !Bool -- | Request question [dnsRespQuestion] :: DnsResp -> {-# UNPACK #-} !DnsQuestion -- | Answer records [dnsRespAnswers] :: DnsResp -> [DnsRecord] -- | Authority records [dnsRespAuths] :: DnsResp -> [DnsRecord] -- | Additional records [dnsRespExtras] :: DnsResp -> [DnsRecord] -- | Error response. DnsErrResp :: {-# UNPACK #-} !DnsId -> !DnsError -> DnsResp -- | Request identifer [dnsRespId] :: DnsResp -> {-# UNPACK #-} !DnsId -- | Error [dnsRespError] :: DnsResp -> !DnsError instance GHC.Show.Show Network.DNS.DnsResp instance GHC.Enum.Enum Network.DNS.DnsError instance GHC.Classes.Ord Network.DNS.DnsError instance GHC.Classes.Eq Network.DNS.DnsError instance GHC.Read.Read Network.DNS.DnsError instance GHC.Show.Show Network.DNS.DnsError instance GHC.Show.Show Network.DNS.DnsReq instance GHC.Classes.Ord Network.DNS.DnsQuestion instance GHC.Classes.Eq Network.DNS.DnsQuestion instance GHC.Show.Show Network.DNS.DnsQuestion instance GHC.Show.Show Network.DNS.DnsRecord instance GHC.Classes.Ord a => GHC.Classes.Ord (Network.DNS.HostAddr a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Network.DNS.HostAddr a) instance GHC.Read.Read a => GHC.Read.Read (Network.DNS.HostAddr a) instance GHC.Show.Show a => GHC.Show.Show (Network.DNS.HostAddr a) instance Data.Hashable.Class.Hashable Network.DNS.HostName instance GHC.Classes.Ord Network.DNS.HostName instance GHC.Classes.Eq Network.DNS.HostName instance GHC.Classes.Eq (Network.DNS.DnsType α) instance Data.Serializer.Serializable Network.DNS.DnsResp instance Data.Deserializer.Deserializable Network.DNS.DnsResp instance Data.Serializer.Serializable Network.DNS.DnsReq instance Data.Deserializer.Deserializable Network.DNS.DnsReq instance GHC.Show.Show Network.DNS.DnsQType instance GHC.Classes.Eq Network.DNS.DnsQType instance GHC.Classes.Ord Network.DNS.DnsQType instance Data.Serializer.Serializable Network.DNS.DnsQType instance Data.Serializer.SizedSerializable Network.DNS.DnsQType instance Data.Deserializer.Deserializable Network.DNS.DnsQType instance GHC.Show.Show Network.DNS.DnsData instance GHC.Show.Show (Network.DNS.DnsType α) instance Data.Textual.Printable a => Data.Textual.Printable (Network.DNS.HostAddr a) instance Data.Textual.Textual a => Data.Textual.Textual (Network.DNS.HostAddr a) instance Data.Textual.Printable (Network.IP.Addr.InetAddr a) => Data.Textual.Printable (Network.IP.Addr.InetAddr (Network.DNS.HostAddr a)) instance Data.Textual.Textual (Network.IP.Addr.InetAddr a) => Data.Textual.Textual (Network.IP.Addr.InetAddr (Network.DNS.HostAddr a)) instance GHC.Base.Monad μ => GHC.Base.Functor (Network.DNS.StateT k v μ) instance GHC.Base.Monad μ => GHC.Base.Applicative (Network.DNS.StateT k v μ) instance GHC.Base.Monad μ => GHC.Base.Monad (Network.DNS.StateT k v μ) instance GHC.Base.Functor (Network.DNS.Writer s) instance GHC.Base.Applicative (Network.DNS.Writer s) instance GHC.Base.Monad (Network.DNS.Writer s) instance GHC.Show.Show Network.DNS.HostName instance GHC.Read.Read Network.DNS.HostName instance Data.Textual.Printable Network.DNS.HostName instance Data.Textual.Textual Network.DNS.HostName instance Data.Textual.Printable (Network.IP.Addr.InetAddr Network.DNS.HostName) instance Data.Textual.Textual (Network.IP.Addr.InetAddr Network.DNS.HostName)