diff --git a/src/network/stun.rs b/src/network/stun.rs index e796858..6a93339 100644 --- a/src/network/stun.rs +++ b/src/network/stun.rs @@ -52,7 +52,13 @@ pub async fn stun_probe_family(stun_addr: &str, family: IpFamily) -> Result {} - Err(e) if e.kind() == std::io::ErrorKind::NetworkUnreachable => return Ok(None), + Err(e) if family == IpFamily::V6 && matches!( + e.kind(), + std::io::ErrorKind::NetworkUnreachable + | std::io::ErrorKind::HostUnreachable + | std::io::ErrorKind::Unsupported + | std::io::ErrorKind::NetworkDown + ) => return Ok(None), Err(e) => return Err(ProxyError::Proxy(format!("STUN connect failed: {e}"))), } } else {