Module trust_dns_proto::xfer
source · [−]Expand description
DNS high level transit implimentations.
Primarily there are two types in this module of interest, the DnsMultiplexer
type and the DnsHandle
type. DnsMultiplexer
can be thought of as the state machine responsible for sending and receiving DNS messages. DnsHandle
is the type given to API users of the trust-dns-proto
library to send messages into the DnsMultiplexer
for delivery. Finally there is the DnsRequest
type. This allows for customizations, through DnsRequestOptions
, to the delivery of messages via a DnsMultiplexer
.
TODO: this module needs some serious refactoring and normalization.
Re-exports
pub use self::dns_handle::DnsHandle;
pub use self::dns_handle::DnsStreamHandle;
pub use self::dns_multiplexer::DnsMultiplexer;
pub use self::dns_multiplexer::DnsMultiplexerConnect;
pub use self::dns_request::DnsRequest;
pub use self::dns_request::DnsRequestOptions;
pub use self::dns_response::DnsResponse;
pub use self::dns_response::DnsResponseStream;
pub use self::dnssec_dns_handle::DnssecDnsHandle;
pub use self::retry_dns_handle::RetryDnsHandle;
Modules
DnsHandle
types perform conversions of the raw DNS messages before sending the messages on the specified streams.
DnsMultiplexer
and associated types implement the state machines for sending DNS messages while using the underlying streams.
DnsRequest
wraps a Message
and associates a set of DnsRequestOptions
for specifying different transfer options.
DnsResponse
wraps a Message
and any associated connection details
dnssec
The DnssecDnsHandle
is used to validate all DNS responses for correct DNSSec signatures.
RetryDnsHandle
allows for DnsQueries to be reattempted on failure
Structs
Used for associating a name_server to a DnsRequestStreamHandle
A buffering stream bound to a SocketAddr
This is a generic Exchange implemented over multiplexed DNS connection providers.
This background future is responsible for driving all network operations for the DNS protocol.
A wrapper for a future DnsExchange connection.
A Stream that will resolve to Responses after sending the request
A OneshotDnsRequest creates a channel for a response to message
A DNS message in serialized form, with either the target address or source address
Enums
A Stream that wraps a oneshot::Receiver
Traits
A non-multiplexed stream of Serialized DNS messages
Types that implement this are capable of sending a serialized DNS message on a stream
Helper trait to convert a Stream of dns response into a Future
Type Definitions
Receiver handle for peekable fused SerialMessage channel