Module xfer

Source
Expand description

DNS high level transit implementations.

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 hickory-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;std
pub use self::dns_multiplexer::DnsMultiplexerConnect;std
pub use self::dns_request::DnsRequest;
pub use self::dns_request::DnsRequestOptions;
pub use self::dns_response::DnsResponse;
pub use self::dns_response::DnsResponseStream;std
pub use self::retry_dns_handle::RetryDnsHandle;

Modules§

dns_handle
DnsHandle types perform conversions of the raw DNS messages before sending the messages on the specified streams.
dns_multiplexerstd
DnsMultiplexer and associated types implement the state machines for sending DNS messages while using the underlying streams.
dns_request
DnsRequest wraps a Message and associates a set of DnsRequestOptions for specifying different transfer options.
dns_response
DnsResponse wraps a Message and any associated connection details
retry_dns_handle
RetryDnsHandle allows for DnsQueries to be reattempted on failure

Structs§

BufDnsRequestStreamHandlestd
Used for associating a name_server to a DnsRequestStreamHandle
BufDnsStreamHandlestd
A buffering stream bound to a SocketAddr
DnsExchangestd
This is a generic Exchange implemented over multiplexed DNS connection providers.
DnsExchangeBackgroundstd
This background future is responsible for driving all network operations for the DNS protocol.
DnsExchangeConnectstd
A wrapper for a future DnsExchange connection.
DnsExchangeSendstd
A Stream that will resolve to Responses after sending the request
FirstAnswerFuture
See FirstAnswer::first_answer
OneshotDnsRequeststd
A OneshotDnsRequest creates a channel for a response to message
SerialMessage
A DNS message in serialized form, with either the target address or source address

Enums§

DnsResponseReceiverstd
A Stream that wraps a oneshot::Receiver<Stream> and resolves to items in the inner Stream
Protocol
The protocol on which a NameServer should be communicated with

Traits§

DnsClientStreamstd
A non-multiplexed stream of Serialized DNS messages
DnsRequestSenderstd
Types that implement this are capable of sending a serialized DNS message on a stream
FirstAnswer
Helper trait to convert a Stream of dns response into a Future

Type Aliases§

StreamReceiverstd
Receiver handle for peekable fused SerialMessage channel