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

Net.DNSBase.EDNS.Option.Opaque

Description

OpaqueOption is the carrier the decoder falls back to when it sees an EDNS option code that no KnownEdnsOption instance in the resolver's option map handles. The option's contents are left as raw bytes and presented in the generic RFC 3597 form, so applications can still inspect and round-trip the value. The option code is carried as a type-level natural, so OpaqueOption values with different codes have distinct types.

Synopsis

Documentation

data OpaqueOption (n :: Nat) Source #

Unrecognized EDNS Option whose contents are treated as an opaque octet-string and are left unparsed. The OPTION-CODE is encoded as a type-level natural, so opaque options with different option code values are of different types.

Instances

Instances details
Nat16 n => KnownEdnsOption (OpaqueOption n) Source # 
Instance details

Defined in Net.DNSBase.EDNS.Internal.Option.Opaque

Associated Types

type OptionExtensionVal (OpaqueOption n) 
Instance details

Defined in Net.DNSBase.EDNS.Internal.Option.Opaque

Methods

optionExtensionVal :: forall b -> b ~ OpaqueOption n => OptionExtensionVal (OpaqueOption n) Source #

optNum :: forall b -> b ~ OpaqueOption n => OptNum Source #

optPres :: forall b -> b ~ OpaqueOption n => Builder -> Builder Source #

optEncode :: forall s r. (Typeable r, Eq r, Show r) => OpaqueOption n -> SPut s r Source #

optDecode :: forall b -> b ~ OpaqueOption n => OptionExtensionVal b -> Int -> SGet EdnsOption Source #

Presentable (OpaqueOption n) Source # 
Instance details

Defined in Net.DNSBase.EDNS.Internal.Option.Opaque

Nat16 n => Show (OpaqueOption n) Source # 
Instance details

Defined in Net.DNSBase.EDNS.Internal.Option.Opaque

Eq (OpaqueOption n) Source # 
Instance details

Defined in Net.DNSBase.EDNS.Internal.Option.Opaque

type OptionExtensionVal (OpaqueOption n) Source # 
Instance details

Defined in Net.DNSBase.EDNS.Internal.Option.Opaque

opaqueEdnsOption :: Word16 -> ShortByteString -> EdnsOption Source #

Create opaque option from its opcode and Bytes16 value