Browse Source

Revert changes in UDPRelay.cs

UDP SendTo doesn't support DnsEndPoint.

Signed-off-by: noisyfox <timemanager.rick@gmail.com>
tags/3.3
noisyfox 9 years ago
parent
commit
b335e6c8f5
2 changed files with 13 additions and 5 deletions
  1. +2
    -1
      shadowsocks-csharp/Controller/Service/Listener.cs
  2. +11
    -4
      shadowsocks-csharp/Controller/Service/UDPRelay.cs

+ 2
- 1
shadowsocks-csharp/Controller/Service/Listener.cs View File

@@ -116,8 +116,9 @@ namespace Shadowsocks.Controller
catch (ObjectDisposedException) catch (ObjectDisposedException)
{ {
} }
catch (Exception)
catch (Exception ex)
{ {
Logging.LogUsefulException(ex);
} }
finally finally
{ {


+ 11
- 4
shadowsocks-csharp/Controller/Service/UDPRelay.cs View File

@@ -7,7 +7,6 @@ using System.Runtime.CompilerServices;
using Shadowsocks.Controller.Strategy; using Shadowsocks.Controller.Strategy;
using Shadowsocks.Encryption; using Shadowsocks.Encryption;
using Shadowsocks.Model; using Shadowsocks.Model;
using Shadowsocks.Util;
namespace Shadowsocks.Controller namespace Shadowsocks.Controller
{ {
@@ -57,7 +56,7 @@ namespace Shadowsocks.Controller
private byte[] _buffer = new byte[1500]; private byte[] _buffer = new byte[1500];
private IPEndPoint _localEndPoint; private IPEndPoint _localEndPoint;
private EndPoint _remoteEndPoint;
private IPEndPoint _remoteEndPoint;
public UDPHandler(Socket local, Server server, IPEndPoint localEndPoint) public UDPHandler(Socket local, Server server, IPEndPoint localEndPoint)
{ {
@@ -65,8 +64,16 @@ namespace Shadowsocks.Controller
_server = server; _server = server;
_localEndPoint = localEndPoint; _localEndPoint = localEndPoint;
_remoteEndPoint = SocketUtil.GetEndPoint(server.server, server.server_port);
_remote = SocketUtil.CreateSocket(_remoteEndPoint, ProtocolType.Udp);
// TODO async resolving
IPAddress ipAddress;
bool parsed = IPAddress.TryParse(server.server, out ipAddress);
if (!parsed)
{
IPHostEntry ipHostInfo = Dns.GetHostEntry(server.server);
ipAddress = ipHostInfo.AddressList[0];
}
_remoteEndPoint = new IPEndPoint(ipAddress, server.server_port);
_remote = new Socket(_remoteEndPoint.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
} }
public void Send(byte[] data, int length) public void Send(byte[] data, int length)


Loading…
Cancel
Save