mirror of https://github.com/telemt/telemt.git
Handle IPv6 ENETUNREACH in STUN probe gracefully
When IPv6 is unavailable on the host, treat NetworkUnreachable at connect() as Ok(None) instead of propagating an error, so the dual STUN probe succeeds with just the IPv4 result and no spurious WARN. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
efba10f839
commit
4f73d01925
|
|
@ -50,10 +50,11 @@ pub async fn stun_probe_family(stun_addr: &str, family: IpFamily) -> Result<Opti
|
||||||
|
|
||||||
let target_addr = resolve_stun_addr(stun_addr, family).await?;
|
let target_addr = resolve_stun_addr(stun_addr, family).await?;
|
||||||
if let Some(addr) = target_addr {
|
if let Some(addr) = target_addr {
|
||||||
socket
|
match socket.connect(addr).await {
|
||||||
.connect(addr)
|
Ok(()) => {}
|
||||||
.await
|
Err(e) if e.kind() == std::io::ErrorKind::NetworkUnreachable => return Ok(None),
|
||||||
.map_err(|e| ProxyError::Proxy(format!("STUN connect failed: {e}")))?;
|
Err(e) => return Err(ProxyError::Proxy(format!("STUN connect failed: {e}"))),
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return Ok(None);
|
return Ok(None);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue