Expand description
§DNS name resolution
Transport for libp2p.
This crate provides the type [async_std::Transport] and tokio::Transport
for use with async-std and tokio,
respectively.
A Transport is an address-rewriting libp2p_core::Transport wrapper around
an inner Transport. The composed transport behaves like the inner
transport, except that libp2p_core::Transport::dial resolves /dns/..., /dns4/...,
/dns6/... and /dnsaddr/... components of the given Multiaddr through
a DNS, replacing them with the resolved protocols (typically TCP/IP).
The async-std feature and hence the [async_std::Transport] are
enabled by default. Tokio users can furthermore opt-in
to the tokio-dns-over-rustls and tokio-dns-over-https-rustls
features. For more information about these features, please
refer to the documentation of trust-dns-resolver.
On Unix systems, if no custom configuration is given, trust-dns-resolver
will try to parse the /etc/resolv.conf file. This approach comes with a
few caveats to be aware of:
- This fails (panics even!) if
/etc/resolv.confdoes not exist. This is the case on all versions of Android. - DNS configuration is only evaluated during startup. Runtime changes are thus ignored.
- DNS resolution is obviously done in process and consequently not using
any system APIs (like libc’s
gethostbyname). Again this is problematic on platforms like Android, where there’s a lot of complexity hidden behind the system APIs. If the implementation requires different characteristics, one should consider providing their own implementation ofTransportor use platform specific APIs to extract the host’s DNS configuration (if possible) and provide a customResolverConfig.
Modules§
Structs§
- Resolve
Error - The error type for errors that get returned in the crate
- Resolver
Config - Configuration for the upstream nameservers to use for resolution
- Resolver
Opts - Configuration for the Resolver
- Transport
- A
Transportfor performing DNS lookups when dialingMultiaddresses. You shouldn’t need to use this type directly. Usetokio::Transportor [async_std::Transport] instead.
Enums§
- Error
- The possible errors of a
Transportwrapped transport. - Resolve
Error Kind - The error kind for errors that get returned in the crate
Type Aliases§
- DnsErr
Deprecated - GenDns
Config Deprecated - Tokio
DnsConfig Deprecated