Struct RetryDnsHandle
pub struct RetryDnsHandle<H>{ /* private fields */ }
Expand description
Can be used to reattempt queries if they fail
Note: this does not reattempt queries that fail with a negative response.
For example, if a query gets a NODATA
response from a name server, the
query will not be retried. It only reattempts queries that effectively
failed to get a response, such as queries that resulted in IO or timeout
errors.
Whether an error is retryable by the RetryDnsHandle
is determined by the
RetryableError
trait.
note Current value of this is not clear, it may be removed
Implementations§
§impl<H> RetryDnsHandle<H>
impl<H> RetryDnsHandle<H>
pub fn new(handle: H, attempts: usize) -> RetryDnsHandle<H>
pub fn new(handle: H, attempts: usize) -> RetryDnsHandle<H>
Creates a new Client handler for reattempting requests on failures.
§Arguments
handle
- handle to the dns connectionattempts
- number of attempts before failing
Trait Implementations§
§impl<H> Clone for RetryDnsHandle<H>
impl<H> Clone for RetryDnsHandle<H>
§fn clone(&self) -> RetryDnsHandle<H>
fn clone(&self) -> RetryDnsHandle<H>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more§impl<H> DnsHandle for RetryDnsHandle<H>
impl<H> DnsHandle for RetryDnsHandle<H>
§type Response = Pin<Box<dyn Stream<Item = Result<DnsResponse, ProtoError>> + Send + Unpin>>
type Response = Pin<Box<dyn Stream<Item = Result<DnsResponse, ProtoError>> + Send + Unpin>>
The associated response from the response stream, this should resolve to the Response messages
§fn send<R>(&self, request: R) -> <RetryDnsHandle<H> as DnsHandle>::Responsewhere
R: Into<DnsRequest>,
fn send<R>(&self, request: R) -> <RetryDnsHandle<H> as DnsHandle>::Responsewhere
R: Into<DnsRequest>,
Send a message via the channel in the client Read more
§fn is_verifying_dnssec(&self) -> bool
fn is_verifying_dnssec(&self) -> bool
Only returns true if and only if this DNS handle is validating DNSSEC. Read more
§fn is_using_edns(&self) -> bool
fn is_using_edns(&self) -> bool
Allow for disabling EDNS
Auto Trait Implementations§
impl<H> Freeze for RetryDnsHandle<H>where
H: Freeze,
impl<H> RefUnwindSafe for RetryDnsHandle<H>where
H: RefUnwindSafe,
impl<H> Send for RetryDnsHandle<H>
impl<H> Sync for RetryDnsHandle<H>
impl<H> Unpin for RetryDnsHandle<H>
impl<H> UnwindSafe for RetryDnsHandle<H>where
H: UnwindSafe,
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more