zola/components/utils/src/net.rs

12 lines
383 B
Rust
Raw Normal View History

2018-05-11 11:54:16 +00:00
use std::net::TcpListener;
pub fn get_available_port(avoid: u16) -> Option<u16> {
// Start after "well-known" ports (01023) as they require superuser
// privileges on UNIX-like operating systems.
(1024..9000).find(|port| *port != avoid && port_is_available(*port))
2018-05-11 11:54:16 +00:00
}
pub fn port_is_available(port: u16) -> bool {
TcpListener::bind(("127.0.0.1", port)).is_ok()
2018-05-11 11:54:16 +00:00
}