diff --git a/shadowsocks-csharp/Controller/Service/UDPRelay.cs b/shadowsocks-csharp/Controller/Service/UDPRelay.cs index 6f012739..47a3c6cf 100644 --- a/shadowsocks-csharp/Controller/Service/UDPRelay.cs +++ b/shadowsocks-csharp/Controller/Service/UDPRelay.cs @@ -53,7 +53,7 @@ namespace Shadowsocks.Controller private Socket _remote; private Server _server; - private byte[] _buffer = new byte[1500]; + private byte[] _buffer = new byte[65536]; private IPEndPoint _localEndPoint; private IPEndPoint _remoteEndPoint; @@ -81,7 +81,7 @@ namespace Shadowsocks.Controller IEncryptor encryptor = EncryptorFactory.GetEncryptor(_server.method, _server.password); byte[] dataIn = new byte[length - 3]; Array.Copy(data, 3, dataIn, 0, length - 3); - byte[] dataOut = new byte[length - 3 + 16]; + byte[] dataOut = new byte[65536]; // enough space for AEAD ciphers int outlen; encryptor.EncryptUDP(dataIn, length - 3, dataOut, out outlen); Logging.Debug(_localEndPoint, _remoteEndPoint, outlen, "UDP Relay"); diff --git a/shadowsocks-csharp/Encryption/AEAD/AEADEncryptor.cs b/shadowsocks-csharp/Encryption/AEAD/AEADEncryptor.cs index 698c11c6..407c47c1 100644 --- a/shadowsocks-csharp/Encryption/AEAD/AEADEncryptor.cs +++ b/shadowsocks-csharp/Encryption/AEAD/AEADEncryptor.cs @@ -18,7 +18,7 @@ namespace Shadowsocks.Encryption.AEAD private static readonly byte[] InfoBytes = Encoding.ASCII.GetBytes(Info); // for UDP only - protected static byte[] _udpTmpBuf = new byte[MAX_INPUT_SIZE]; + protected static byte[] _udpTmpBuf = new byte[65536]; // every connection should create its own buffer private CircularBuffer _encCircularBuffer = new CircularBuffer(MAX_INPUT_SIZE * 2, false); diff --git a/shadowsocks-csharp/Encryption/Stream/StreamEncryptor.cs b/shadowsocks-csharp/Encryption/Stream/StreamEncryptor.cs index a85c1187..87c884f7 100644 --- a/shadowsocks-csharp/Encryption/Stream/StreamEncryptor.cs +++ b/shadowsocks-csharp/Encryption/Stream/StreamEncryptor.cs @@ -11,7 +11,7 @@ namespace Shadowsocks.Encryption.Stream : EncryptorBase { // for UDP only - protected static byte[] _udpTmpBuf = new byte[MAX_INPUT_SIZE]; + protected static byte[] _udpTmpBuf = new byte[65536]; // every connection should create its own buffer private CircularBuffer _encCircularBuffer = new CircularBuffer(TCPHandler.BufferSize * 2, false);