dnsbase
Copyright(c) Viktor Dukhovni 2026
LicenseBSD-3-Clause
Maintainerietf-dane@dukhovni.org
Stabilityunstable
Safe HaskellNone
LanguageGHC2024

Net.DNSBase.Error

Description

DNSError is the sum type returned by all failed lookups in Net.DNSBase.Lookup. Its constructors split by source: network problems (NetworkError), protocol-level decode or response-code failures (ProtocolError), API misuse errors (UserError), and so on. Information about the context in which the error occured is included when available. EncodeErr is the analogous sum returned by failures of the wire-form encoder.

Synopsis

Documentation

data DNSError Source #

DNS API errors.

Constructors

BadConfiguration String

Resolver misconfiguration.

BadNameserver IOException

Nameserver name -> address lookup failure.

DecodeError DecodeContext String

Error while decoding from wire form.

EncodeError EncodeContext

Error while encoding to wire form.

InvalidDomain String

Invalid domain name presentation form.

NetworkError NetworkContext

Error in connection establishment, data transmission or a timeout.

ProtocolError ProtocolContext

Unexpected DNS message.

ResponseError RCODE

DNS message indicates a remote error condition.

UserError UserContext

Invalid request.

data DnsXprt where Source #

Transport between DNS client and server

Bundled Patterns

pattern DnsOverQUIC :: DnsXprt 
pattern DnsOverTCP :: DnsXprt 
pattern DnsOverTLS :: DnsXprt 
pattern DnsOverUDP :: DnsXprt 

Instances

Instances details
Presentable DnsXprt Source # 
Instance details

Defined in Net.DNSBase.Internal.Peer

Bounded DnsXprt Source # 
Instance details

Defined in Net.DNSBase.Internal.Peer

Enum DnsXprt Source # 
Instance details

Defined in Net.DNSBase.Internal.Peer

Num DnsXprt Source # 
Instance details

Defined in Net.DNSBase.Internal.Peer

Integral DnsXprt Source # 
Instance details

Defined in Net.DNSBase.Internal.Peer

Real DnsXprt Source # 
Instance details

Defined in Net.DNSBase.Internal.Peer

Eq DnsXprt Source # 
Instance details

Defined in Net.DNSBase.Internal.Peer

Methods

(==) :: DnsXprt -> DnsXprt -> Bool #

(/=) :: DnsXprt -> DnsXprt -> Bool #

Ord DnsXprt Source # 
Instance details

Defined in Net.DNSBase.Internal.Peer

data EncodeErr r where Source #

Encoding error, polymorphic over the context type

Constructors

EncodeTooLong :: forall r. (Typeable r, Show r, Eq r) => r -> EncodeErr r

message or field too long

CantEncode :: forall r. (Typeable r, Show r, Eq r) => r -> EncodeErr r

Invalid input

ReservedType :: forall r. (Typeable r, Show r, Eq r) => RRTYPE -> r -> EncodeErr r

Unencodable reserved type

EDNSRequired :: forall r. EncodeErr r

RCODE or flags require EDNS

Instances

Instances details
Show r => Show (EncodeErr r) Source # 
Instance details

Defined in Net.DNSBase.Internal.Error

Eq r => Eq (EncodeErr r) Source # 
Instance details

Defined in Net.DNSBase.Internal.Error

Methods

(==) :: EncodeErr r -> EncodeErr r -> Bool #

(/=) :: EncodeErr r -> EncodeErr r -> Bool #

data NetworkContext Source #

Constructors

RetryLimitExceeded

The number of retries for the request was exceeded.

TimeoutExpired

TCP fallback request timed out.

NetworkFailure IOException

Network failure.

ServerFailure 

data ProtocolContext Source #

Constructors

SequenceNumberMismatch

The question section of the response doesn't match our query. This could indicate foul play.

QuestionMismatch 

data UserContext Source #

Constructors

InvalidQueryType RRTYPE

The RRTYPE requested is invalid for queries.

IllegalDomain String

The domain for query is illegal.

BadResponseQuestionCount Int

The response message question count is not equal to 1.

Instances

Instances details
Show UserContext Source # 
Instance details

Defined in Net.DNSBase.Internal.Error

Eq UserContext Source # 
Instance details

Defined in Net.DNSBase.Internal.Error

data DecodeContext Source #

Request or response context in which a failure occurred. The decodeTriple holds the name, class and type of the problem RR, provided the error was not in one of those fields.

data EncodeContext Source #

Constructors

(Typeable r, Show r, Eq r) => EncodeContext (EncodeErr r) 

Instances

Instances details
Show EncodeContext Source # 
Instance details

Defined in Net.DNSBase.Internal.Error

Eq EncodeContext Source # 
Instance details

Defined in Net.DNSBase.Internal.Error

data DnsSection Source #

Message section for error reporting. The message header and EDNS OPT record are also considered sections in this context.

Constructors

DnsHeaderSection

While parsing the message header.

DnsQuestionSection

While parsing the question section.

DnsAnswerSection

While parsing the answer section.

DnsAuthoritySection

While parsing the authority section.

DnsAdditionalSection

While parsing the additional section.

DnsEDNSSection

While parsing the EDNS OPT record.

DnsNonSection

While parsing a wire-form message fragment.

data MessageSource Source #

DNS client or server peer endpoint.