Trait hickory_proto::xfer::dns_handle::DnsHandle
source · pub trait DnsHandle:
'static
+ Clone
+ Send
+ Sync
+ Unpin {
type Response: Stream<Item = Result<DnsResponse, ProtoError>> + Send + Unpin + 'static;
// Required method
fn send<R: Into<DnsRequest> + Unpin + Send + 'static>(
&self,
request: R,
) -> Self::Response;
// Provided methods
fn is_verifying_dnssec(&self) -> bool { ... }
fn is_using_edns(&self) -> bool { ... }
fn lookup(&self, query: Query, options: DnsRequestOptions) -> Self::Response { ... }
}
Expand description
A trait for implementing high level functions of DNS.
Required Associated Types§
sourcetype Response: Stream<Item = Result<DnsResponse, ProtoError>> + Send + Unpin + 'static
type Response: Stream<Item = Result<DnsResponse, ProtoError>> + Send + Unpin + 'static
The associated response from the response stream, this should resolve to the Response messages
Required Methods§
sourcefn send<R: Into<DnsRequest> + Unpin + Send + 'static>(
&self,
request: R,
) -> Self::Response
fn send<R: Into<DnsRequest> + Unpin + Send + 'static>( &self, request: R, ) -> Self::Response
Send a message via the channel in the client
§Arguments
request
- the fully constructed Message to send, note that most implementations of will most likely be required to rewrite the QueryId, do no rely on that as being stable.
Provided Methods§
sourcefn is_verifying_dnssec(&self) -> bool
fn is_verifying_dnssec(&self) -> bool
Only returns true if and only if this DNS handle is validating DNSSEC.
If the DnsHandle impl is wrapping other clients, then the correct option is to delegate the question to the wrapped client.
sourcefn is_using_edns(&self) -> bool
fn is_using_edns(&self) -> bool
Allow for disabling EDNS
Object Safety§
This trait is not object safe.
Implementors§
source§impl DnsHandle for BufDnsRequestStreamHandle
impl DnsHandle for BufDnsRequestStreamHandle
type Response = DnsResponseReceiver
source§impl DnsHandle for DnsExchange
impl DnsHandle for DnsExchange
type Response = DnsExchangeSend
source§impl<H> DnsHandle for DnssecDnsHandle<H>
Available on crate feature dnssec
only.
impl<H> DnsHandle for DnssecDnsHandle<H>
Available on crate feature
dnssec
only.