diff --git a/crates/shadowsocks-service/src/local/redir/udprelay/mod.rs b/crates/shadowsocks-service/src/local/redir/udprelay/mod.rs index f83db73cadf1..bf5a1202d328 100644 --- a/crates/shadowsocks-service/src/local/redir/udprelay/mod.rs +++ b/crates/shadowsocks-service/src/local/redir/udprelay/mod.rs @@ -219,7 +219,7 @@ impl UdpInboundWrite for UdpRedirInboundWriter { ErrorKind::InvalidInput if addr_mapped_ipv6 => { SUPPORT_IPV6_TRANSPARENT.store(false, Ordering::Relaxed); debug!( - "redir destination socket doesn't support IPv6, addr cannot be IPv4-mapped-IPv6: {}", + "redir destination socket doesn't support dual-stack routing, addr cannot be IPv4-mapped-IPv6: {}", addr ); } diff --git a/crates/shadowsocks-service/src/server/udprelay.rs b/crates/shadowsocks-service/src/server/udprelay.rs index 0a453b4c7725..61ceda940f79 100644 --- a/crates/shadowsocks-service/src/server/udprelay.rs +++ b/crates/shadowsocks-service/src/server/udprelay.rs @@ -32,10 +32,7 @@ use tokio::{runtime::Handle, sync::mpsc, task::JoinHandle, time}; use windows_sys::Win32::Networking::WinSock::WSAEAFNOSUPPORT; use crate::net::{ - packet_window::PacketWindowFilter, - utils::to_ipv4_mapped, - MonProxySocket, - UDP_ASSOCIATION_KEEP_ALIVE_CHANNEL_SIZE, + packet_window::PacketWindowFilter, utils::to_ipv4_mapped, MonProxySocket, UDP_ASSOCIATION_KEEP_ALIVE_CHANNEL_SIZE, UDP_ASSOCIATION_SEND_CHANNEL_SIZE, }; @@ -704,11 +701,13 @@ impl UdpAssociationContext { #[cfg(unix)] Some(libc::EAFNOSUPPORT) => { UDP_SOCKET_SUPPORT_DUAL_STACK.store(false, Ordering::Relaxed); + debug!("udp relay destination {} cannot be IPv4-mapped-IPv6, current platform doesn't support IPv6", target_addr); continue; } #[cfg(windows)] Some(WSAEAFNOSUPPORT) => { UDP_SOCKET_SUPPORT_DUAL_STACK.store(false, Ordering::Relaxed); + debug!("udp relay destination {} cannot be IPv4-mapped-IPv6, current platform doesn't support IPv6", target_addr); continue; } _ => return Err(err),