From e26cd5f960d965ce0ff44e74cb4e12fb7f515193 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Sun, 13 Aug 2017 08:57:27 +1000 Subject: [PATCH] Fix crashing again. --- MCGalaxy/Network/Socket/TcpSocket.cs | 19 ++++++++++--------- MCGalaxy/Player/Player.cs | 7 +++++-- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/MCGalaxy/Network/Socket/TcpSocket.cs b/MCGalaxy/Network/Socket/TcpSocket.cs index 5c90c610e..aea5b1dfb 100644 --- a/MCGalaxy/Network/Socket/TcpSocket.cs +++ b/MCGalaxy/Network/Socket/TcpSocket.cs @@ -29,22 +29,23 @@ namespace MCGalaxy.Network { int unprocessedLen; readonly SocketAsyncEventArgs recvArgs = new SocketAsyncEventArgs(); - byte[] sendBuffer = new byte[1536]; + byte[] sendBuffer = new byte[2048]; readonly object sendLock = new object(); readonly Queue sendQueue = new Queue(64); volatile bool sendInProgress; readonly SocketAsyncEventArgs sendArgs = new SocketAsyncEventArgs(); public TcpSocket(Player p, Socket s) { - player = p; socket = s; - - recvArgs.UserToken = this; - recvArgs.SetBuffer(recvBuffer, 0, recvBuffer.Length); - recvArgs.Completed += recvCallback; - - sendArgs.UserToken = this; + player = p; socket = s; + recvArgs.UserToken = this; + recvArgs.SetBuffer(recvBuffer, 0, recvBuffer.Length); + sendArgs.UserToken = this; sendArgs.SetBuffer(sendBuffer, 0, sendBuffer.Length); - sendArgs.Completed += sendCallback; + } + + public void RegisterCallbacks() { + recvArgs.Completed += recvCallback; + sendArgs.Completed += sendCallback; } public string RemoteIP { diff --git a/MCGalaxy/Player/Player.cs b/MCGalaxy/Player/Player.cs index 47b01c181..7cd933544 100644 --- a/MCGalaxy/Player/Player.cs +++ b/MCGalaxy/Player/Player.cs @@ -51,7 +51,10 @@ namespace MCGalaxy { public Player(Socket s) { spamChecker = new SpamChecker(this); try { - Socket = new TcpSocket(this, s); + TcpSocket tcp = new TcpSocket(this, s); + Socket = tcp; + tcp.RegisterCallbacks(); + ip = Socket.RemoteIP; SessionID = Interlocked.Increment(ref sessionCounter) & SessionIDMask; Logger.Log(LogType.UserActivity, ip + " connected to the server."); @@ -115,7 +118,7 @@ namespace MCGalaxy { string viptitle = (devPrefix && isMod) ? string.Format("{0}[&aInfo{0}] ", color) : - (devPrefix && isDev) ? string.Format("{0}[&9Dev{0}] ", color) : ""; + (devPrefix && isDev) ? string.Format("{0}[&9Dev{0}] ", color) : ""; prefix = prefix + viptitle; prefix = (title.Length == 0) ? prefix : prefix + color + "[" + titlecolor + title + color + "] "; }