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}