Struct domain::base::opt::OptRecord

source ·
pub struct OptRecord<Octs> { /* private fields */ }
Expand description

An entire OPT record.

Because the EDNS specificiation uses parts of the header of the OPT record to convey some information, a special record type is necessary for OPT records. You can convert a normal record with Opt record data into an OptRecord via the from_record function.

Implementations§

source§

impl<Octs> OptRecord<Octs>

source

pub fn from_record<N: ToName>(record: Record<N, Opt<Octs>>) -> Self

Converts a regular record into an OPT record

source

pub fn as_record(&self) -> Record<&'static Name<[u8]>, Opt<&[u8]>>
where Octs: AsRef<[u8]>,

Converts the OPT record into a regular record.

source

pub fn udp_payload_size(&self) -> u16

Returns the UDP payload size.

Through this field a sender of a message can signal the maximum size of UDP payload the sender is able to handle when receiving messages. This value refers to the abilities of the sender’s DNS implementation, not such things as network MTUs. Which means that the largest UDP payload that can actually be sent back to the sender may be smaller.

source

pub fn set_udp_payload_size(&mut self, value: u16)

Sets the UDP payload size.

source

pub fn rcode(&self, header: Header) -> OptRcode

Returns the extended rcode.

Some of the bits of the rcode are stored in the regular message header. Such a header needs to be passed to the method.

source

pub fn version(&self) -> u8

Returns the EDNS version of the OPT header.

Only EDNS version 0 is currently defined.

source

pub fn dnssec_ok(&self) -> bool

Returns the value of the DNSSEC OK (DO) bit.

By setting this bit, a resolver indicates that it is interested in also receiving the DNSSEC-related resource records necessary to validate an answer. The bit and the related procedures are defined in RFC 3225.

source

pub fn set_dnssec_ok(&mut self, value: bool)

source

pub fn opt(&self) -> &Opt<Octs>

Returns a reference to the raw options.

source§

impl<Octs: Composer> OptRecord<Octs>

source

pub fn push<Opt: ComposeOptData + ?Sized>( &mut self, option: &Opt, ) -> Result<(), BuildDataError>

Appends a new option to the OPT data.

source

pub fn push_raw_option<F>( &mut self, code: OptionCode, option_len: u16, op: F, ) -> Result<(), BuildDataError>
where F: FnOnce(&mut Octs) -> Result<(), Octs::AppendError>,

Appends a raw option to the OPT data.

The method will append an option with the given option code. The data of the option will be written via the closure op.

Trait Implementations§

source§

impl<Octs> AsRef<Opt<Octs>> for OptRecord<Octs>

source§

fn as_ref(&self) -> &Opt<Octs>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<Octs: Clone> Clone for OptRecord<Octs>

source§

fn clone(&self) -> OptRecord<Octs>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Octs: AsRef<[u8]>> Debug for OptRecord<Octs>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<Octs: EmptyBuilder> Default for OptRecord<Octs>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<Octs, N: ToName> From<Record<N, Opt<Octs>>> for OptRecord<Octs>

source§

fn from(record: Record<N, Opt<Octs>>) -> Self

Converts to this type from the input type.
source§

impl<Octs, SrcOcts> OctetsFrom<OptRecord<SrcOcts>> for OptRecord<Octs>
where Octs: OctetsFrom<SrcOcts>,

source§

type Error = <Octs as OctetsFrom<SrcOcts>>::Error

source§

fn try_octets_from(source: OptRecord<SrcOcts>) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

§

impl<Octs> Freeze for OptRecord<Octs>
where Octs: Freeze,

§

impl<Octs> RefUnwindSafe for OptRecord<Octs>
where Octs: RefUnwindSafe,

§

impl<Octs> Send for OptRecord<Octs>
where Octs: Send,

§

impl<Octs> Sync for OptRecord<Octs>
where Octs: Sync,

§

impl<Octs> Unpin for OptRecord<Octs>
where Octs: Unpin,

§

impl<Octs> UnwindSafe for OptRecord<Octs>
where Octs: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<Source, Target> OctetsInto<Target> for Source
where Target: OctetsFrom<Source>,

source§

type Error = <Target as OctetsFrom<Source>>::Error

source§

fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
source§

fn octets_into(self) -> Target
where Self::Error: Into<Infallible>,

Performs an infallible conversion.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
source§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more