diff --git a/src/netutil.rs b/src/netutil.rs index 6fef1a9398..8ab8ef0f56 100644 --- a/src/netutil.rs +++ b/src/netutil.rs @@ -126,7 +126,7 @@ pub fn bind_in_range(range: (u16, u16)) -> io::Result<(u16, UdpSocket)> { break Result::Ok((sock.local_addr().unwrap().port(), sock)); } Err(err) => { - if err.kind() != io::ErrorKind::AddrInUse || tries_left == 0 { + if tries_left == 0 { return Err(err); } } @@ -170,6 +170,8 @@ pub fn find_available_port_in_range(range: (u16, u16)) -> io::Result { let mut tries_left = end - start; let mut rand_port = thread_rng().gen_range(start, end); loop { + eprintln!("trying port {}", rand_port); + match TcpListener::bind(SocketAddr::new( IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), rand_port, @@ -178,7 +180,7 @@ pub fn find_available_port_in_range(range: (u16, u16)) -> io::Result { break Ok(rand_port); } Err(err) => { - if err.kind() != io::ErrorKind::AddrInUse || tries_left == 0 { + if tries_left == 0 { return Err(err); } }