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

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
  • The DnssecDnsHandle is used to validate all DNS responses for correct DNSSEC signatures.
  • RetryDnsHandle allows for DnsQueries to be reattempted on failure

Structs

Enums

  • A Stream that wraps a oneshot::Receiver and resolves to items in the inner Stream

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 Aliases

  • Receiver handle for peekable fused SerialMessage channel