blob: 28861849e40ec3fed0e5a11349ecc5bdaff57665 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
cfg_net! {
use crate::net::addr::{self, ToSocketAddrs};
use std::io;
use std::net::SocketAddr;
/// Performs a DNS resolution.
///
/// The returned iterator may not actually yield any values depending on the
/// outcome of any resolution performed.
///
/// This API is not intended to cover all DNS use cases. Anything beyond the
/// basic use case should be done with a specialized library.
///
/// # Examples
///
/// To resolve a DNS entry:
///
/// ```no_run
/// use tokio::net;
/// use std::io;
///
/// #[tokio::main]
/// async fn main() -> io::Result<()> {
/// for addr in net::lookup_host("localhost:3000").await? {
/// println!("socket address is {}", addr);
/// }
///
/// Ok(())
/// }
/// ```
pub async fn lookup_host<T>(host: T) -> io::Result<impl Iterator<Item = SocketAddr>>
where
T: ToSocketAddrs
{
addr::to_socket_addrs(host).await
}
}
|