Skip to main content

nu_utils/
net.rs

1use std::{
2    io,
3    net::{Ipv4Addr, SocketAddr, TcpListener},
4};
5
6pub fn reserve_local_addr() -> io::Result<SocketAddr> {
7    let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 0))?;
8    let addr = listener.local_addr()?;
9    // The `TcpListener` impl for WASM does not implement `Drop` for some reason.
10    #[cfg_attr(target_arch = "wasm32", expect(clippy::drop_non_drop))]
11    drop(listener);
12    Ok(addr)
13}