From 0b317b75c31d5a75e08cfa07a09ac470bb3c2ded Mon Sep 17 00:00:00 2001 From: database64128 Date: Sat, 6 Mar 2021 22:34:48 +0800 Subject: [PATCH] =?UTF-8?q?6=EF=B8=8F=E2=83=A3=20Backend:=20use=20dual-sta?= =?UTF-8?q?ck=20socket=20when=20possible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Listener on [::]:1080 now accepts traffic from both IPv4 and IPv6. --- Shadowsocks.Net/TCPListener.cs | 1 + Shadowsocks.Net/UDPListener.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/Shadowsocks.Net/TCPListener.cs b/Shadowsocks.Net/TCPListener.cs index 04c78e40..f92c4c4b 100644 --- a/Shadowsocks.Net/TCPListener.cs +++ b/Shadowsocks.Net/TCPListener.cs @@ -68,6 +68,7 @@ namespace Shadowsocks.Net // Create a TCP/IP socket. _tcpSocket = new Socket(_localEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); _tcpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); + _tcpSocket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false); // Bind the socket to the local endpoint and listen for incoming connections. _tcpSocket.Bind(_localEndPoint); diff --git a/Shadowsocks.Net/UDPListener.cs b/Shadowsocks.Net/UDPListener.cs index f2030632..ff8f638e 100644 --- a/Shadowsocks.Net/UDPListener.cs +++ b/Shadowsocks.Net/UDPListener.cs @@ -63,6 +63,7 @@ namespace Shadowsocks.Net // Create a TCP/IP socket. _udpSocket = new Socket(_localEndPoint.AddressFamily, SocketType.Dgram, ProtocolType.Udp); _udpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); + _udpSocket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false); // Bind the socket to the local endpoint and listen for incoming connections. _udpSocket.Bind(_localEndPoint);