From d0e16dc658de094e286e6f80460f46433917010a Mon Sep 17 00:00:00 2001 From: 10people Date: Mon, 16 Nov 2015 14:59:10 +0800 Subject: [PATCH] Add debug log in network transfer. --- .gitignore | 1 + nuget.config | 1 + shadowsocks-csharp/Controller/Service/TCPRelay.cs | 13 +++++++++++++ shadowsocks-csharp/Controller/Service/UDPRelay.cs | 3 +++ 4 files changed, 18 insertions(+) diff --git a/.gitignore b/.gitignore index 4a64d6be..2e8b8bf7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/.vs/ Backup/ bin/ obj/ diff --git a/nuget.config b/nuget.config index 57b36f04..f5cdc0be 100644 --- a/nuget.config +++ b/nuget.config @@ -1,3 +1,4 @@ + diff --git a/shadowsocks-csharp/Controller/Service/TCPRelay.cs b/shadowsocks-csharp/Controller/Service/TCPRelay.cs index bfff60c7..c0989085 100644 --- a/shadowsocks-csharp/Controller/Service/TCPRelay.cs +++ b/shadowsocks-csharp/Controller/Service/TCPRelay.cs @@ -215,6 +215,7 @@ namespace Shadowsocks.Controller response = new byte[] { 0, 91 }; Console.WriteLine("socks 5 protocol error"); } + Logging.Debug($"======Send Local Port, size:" + response.Length); connection.BeginSend(response, 0, response.Length, 0, new AsyncCallback(HandshakeSendCallback), null); } else @@ -246,6 +247,7 @@ namespace Shadowsocks.Controller // +----+-----+-------+------+----------+----------+ // Skip first 3 bytes // TODO validate + Logging.Debug($"======Receive Local Port, size:" + 3); connection.BeginReceive(connetionRecvBuffer, 0, 3, 0, new AsyncCallback(handshakeReceive2Callback), null); } @@ -272,6 +274,7 @@ namespace Shadowsocks.Controller if (command == 1) { byte[] response = { 5, 0, 0, 1, 0, 0, 0, 0, 0, 0 }; + Logging.Debug($"======Send Local Port, size:" + response.Length); connection.BeginSend(response, 0, response.Length, 0, new AsyncCallback(ResponseCallback), null); } else if (command == 3) @@ -310,6 +313,7 @@ namespace Shadowsocks.Controller address.CopyTo(response, 4); response[response.Length - 1] = (byte)(port & 0xFF); response[response.Length - 2] = (byte)((port >> 8) & 0xFF); + Logging.Debug($"======Send Local Port, size:" + response.Length); connection.BeginSend(response, 0, response.Length, 0, new AsyncCallback(ReadAll), true); } @@ -324,6 +328,7 @@ namespace Shadowsocks.Controller if (ar.AsyncState != null) { connection.EndSend(ar); + Logging.Debug($"======Receive Local Port, size:" + RecvSize); connection.BeginReceive(connetionRecvBuffer, 0, RecvSize, 0, new AsyncCallback(ReadAll), null); } @@ -332,6 +337,7 @@ namespace Shadowsocks.Controller int bytesRead = connection.EndReceive(ar); if (bytesRead > 0) { + Logging.Debug($"======Receive Local Port, size:" + RecvSize); connection.BeginReceive(connetionRecvBuffer, 0, RecvSize, 0, new AsyncCallback(ReadAll), null); } @@ -402,6 +408,7 @@ namespace Shadowsocks.Controller connected = false; // Connect to the remote endpoint. + Logging.Debug($"++++++Connect Server Port"); remote.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), connectTimer); } @@ -501,8 +508,10 @@ namespace Shadowsocks.Controller } try { + Logging.Debug($"++++++Receive Server Port, size:" + RecvSize); remote.BeginReceive(remoteRecvBuffer, 0, RecvSize, 0, new AsyncCallback(PipeRemoteReceiveCallback), null); + Logging.Debug($"======Receive Local Port, size:"+ RecvSize); connection.BeginReceive(connetionRecvBuffer, 0, RecvSize, 0, new AsyncCallback(PipeConnectionReceiveCallback), null); } @@ -536,6 +545,7 @@ namespace Shadowsocks.Controller } encryptor.Decrypt(remoteRecvBuffer, bytesRead, remoteSendBuffer, out bytesToSend); } + Logging.Debug($"======Send Local Port, size:" + bytesToSend); connection.BeginSend(remoteSendBuffer, 0, bytesToSend, 0, new AsyncCallback(PipeConnectionSendCallback), null); IStrategy strategy = controller.GetCurrentStrategy(); @@ -588,6 +598,7 @@ namespace Shadowsocks.Controller } encryptor.Encrypt(connetionRecvBuffer, bytesRead, connetionSendBuffer, out bytesToSend); } + Logging.Debug($"++++++Send Server Port, size:" + bytesToSend); remote.BeginSend(connetionSendBuffer, 0, bytesToSend, 0, new AsyncCallback(PipeRemoteSendCallback), null); IStrategy strategy = controller.GetCurrentStrategy(); @@ -619,6 +630,7 @@ namespace Shadowsocks.Controller try { remote.EndSend(ar); + Logging.Debug($"======Receive Local Port, size:" + RecvSize); connection.BeginReceive(this.connetionRecvBuffer, 0, RecvSize, 0, new AsyncCallback(PipeConnectionReceiveCallback), null); } @@ -638,6 +650,7 @@ namespace Shadowsocks.Controller try { connection.EndSend(ar); + Logging.Debug($"++++++Receive Server Port, size:" + RecvSize); remote.BeginReceive(this.remoteRecvBuffer, 0, RecvSize, 0, new AsyncCallback(PipeRemoteReceiveCallback), null); } diff --git a/shadowsocks-csharp/Controller/Service/UDPRelay.cs b/shadowsocks-csharp/Controller/Service/UDPRelay.cs index 58ec5e3c..5f8d2433 100644 --- a/shadowsocks-csharp/Controller/Service/UDPRelay.cs +++ b/shadowsocks-csharp/Controller/Service/UDPRelay.cs @@ -80,11 +80,13 @@ namespace Shadowsocks.Controller byte[] dataOut = new byte[length - 3 + 16 + IVEncryptor.ONETIMEAUTH_BYTES]; int outlen; encryptor.Encrypt(dataIn, length - 3, dataOut, out outlen); + Logging.Debug($"++++++Send Server Port, size:" + outlen); _remote.SendTo(dataOut, outlen, SocketFlags.None, _remoteEndPoint); } public void Receive() { EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + Logging.Debug($"++++++Receive Server Port, size:" + _buffer.Length); _remote.BeginReceiveFrom(_buffer, 0, _buffer.Length, 0, ref remoteEndPoint, new AsyncCallback(RecvFromCallback), null); } public void RecvFromCallback(IAsyncResult ar) @@ -103,6 +105,7 @@ namespace Shadowsocks.Controller byte[] sendBuf = new byte[outlen + 3]; Array.Copy(dataOut, 0, sendBuf, 3, outlen); + Logging.Debug($"======Send Local Port, size:" + (outlen + 3)); _local.SendTo(sendBuf, outlen + 3, 0, _localEndPoint); Receive(); }