[][src]Module trust_dns_proto::xfer

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 DnsReqeustOptions, to the delivery of messages via a DnsMultiplexer.

TODO: this module needs some serious refactoring and normalization.

Re-exports

pub use self::dns_handle::BasicDnsHandle;
pub use self::dns_handle::DnsHandle;
pub use self::dns_handle::DnsStreamHandle;
pub use self::dns_handle::StreamHandle;
pub use self::dns_multiplexer::DnsMultiplexer;
pub use self::dns_multiplexer::DnsMultiplexerConnect;
pub use self::dns_multiplexer::DnsMultiplexerSerialResponse;
pub use self::dns_request::DnsRequest;
pub use self::dns_request::DnsRequestOptions;
pub use self::dns_response::DnsResponse;
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_multiplexer

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

BufDnsRequestStreamHandle

Used for assiacting a name_server to a DnsRequestStreamHandle

BufDnsStreamHandle

A buffering stream bound to a SocketAddr

BufStreamHandle

A sender to which serialized DNS Messages can be sent

DnsExchange

This is a generic Exchange implemented over multiplexed DNS connection providers.

DnsExchangeConnect

A wrapper for a future DnsExchange connection

DnsRequestStreamHandle

A sender to which serialized DNS Messages can be sent

OneshotDnsRequest

A OneshotDnsRequest createa a channel for a response to message

SerialMessage

A DNS message in serialized form, with either the target address or source address

Enums

OneshotDnsResponseReceiver

A Future that wraps a oneshot::Receiver and resolves to the final value

Traits

DnsClientStream

A non-multiplexed stream of Serialized DNS messages

DnsRequestSender

Types that implement this are capable of sending a serialized DNS message on a stream

Type Definitions

MessageStreamHandle

A sender to which a Message can be sent