From c10505cde864bdac85eb17097ce0e00d1bfbb006 Mon Sep 17 00:00:00 2001 From: vis2k Date: Fri, 13 May 2022 12:46:57 +0800 Subject: [PATCH 1/3] KcpConnection.SendReliable: added OnError instead of logs --- kcp2k/Assets/Tests/Editor/ClientServerTests.cs | 6 +++--- kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/kcp2k/Assets/Tests/Editor/ClientServerTests.cs b/kcp2k/Assets/Tests/Editor/ClientServerTests.cs index 5de24043..f3848ab0 100644 --- a/kcp2k/Assets/Tests/Editor/ClientServerTests.cs +++ b/kcp2k/Assets/Tests/Editor/ClientServerTests.cs @@ -370,7 +370,7 @@ public void ClientToServerTooLargeReliableMessage() byte[] message = new byte[KcpConnection.ReliableMaxMessageSize(ReceiveWindowSize) + 1]; #if UNITY_2018_3_OR_NEWER - UnityEngine.TestTools.LogAssert.Expect(UnityEngine.LogType.Error, new Regex($".*Failed to send reliable message of size {message.Length} because it's larger than ReliableMaxMessageSize={KcpConnection.ReliableMaxMessageSize(ReceiveWindowSize)}")); + UnityEngine.TestTools.LogAssert.Expect(UnityEngine.LogType.Warning, new Regex($".*Failed to send reliable message of size {message.Length} because it's larger than ReliableMaxMessageSize={KcpConnection.ReliableMaxMessageSize(ReceiveWindowSize)}")); #endif SendClientToServerBlocking(new ArraySegment(message), KcpChannel.Reliable); Assert.That(serverReceived.Count, Is.EqualTo(0)); @@ -660,7 +660,7 @@ public void ServerToClientTooLargeReliableMessage() byte[] message = new byte[KcpConnection.ReliableMaxMessageSize(ReceiveWindowSize) + 1]; #if UNITY_2018_3_OR_NEWER - UnityEngine.TestTools.LogAssert.Expect(UnityEngine.LogType.Error, new Regex($".*Failed to send reliable message of size {message.Length} because it's larger than ReliableMaxMessageSize={KcpConnection.ReliableMaxMessageSize(ReceiveWindowSize)}")); + UnityEngine.TestTools.LogAssert.Expect(UnityEngine.LogType.Warning, new Regex($".*Failed to send reliable message of size {message.Length} because it's larger than ReliableMaxMessageSize={KcpConnection.ReliableMaxMessageSize(ReceiveWindowSize)}")); #endif SendServerToClientBlocking(connectionId, new ArraySegment(message), KcpChannel.Reliable); Assert.That(clientReceived.Count, Is.EqualTo(0)); @@ -677,7 +677,7 @@ public void ServerToClientTooLargeUnreliableMessage() byte[] message = new byte[KcpConnection.UnreliableMaxMessageSize + 1]; #if UNITY_2018_3_OR_NEWER - UnityEngine.TestTools.LogAssert.Expect(UnityEngine.LogType.Error, new Regex($".*Failed to send unreliable message of size {message.Length} because it's larger than UnreliableMaxMessageSize={KcpConnection.UnreliableMaxMessageSize}")); + UnityEngine.TestTools.LogAssert.Expect(UnityEngine.LogType.Warning, new Regex($".*Failed to send unreliable message of size {message.Length} because it's larger than UnreliableMaxMessageSize={KcpConnection.UnreliableMaxMessageSize}")); #endif SendServerToClientBlocking(connectionId, new ArraySegment(message), KcpChannel.Unreliable); Assert.That(clientReceived.Count, Is.EqualTo(0)); diff --git a/kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs b/kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs index 29402cb1..7d81b5c9 100644 --- a/kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs +++ b/kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs @@ -578,12 +578,12 @@ void SendReliable(KcpHeader header, ArraySegment content) if (sent < 0) { // GetType() shows Server/ClientConn instead of just Connection. - Log.Warning($"{GetType()}: Send failed with error={sent} for content with length={content.Count}"); + OnError(ErrorCode.InvalidSend, $"{GetType()}: Send failed with error={sent} for content with length={content.Count}"); } } // otherwise content is larger than MaxMessageSize. let user know! - // GetType() shows Server/ClientConn instead of just Connection. - else Log.Error($"{GetType()}: Failed to send reliable message of size {content.Count} because it's larger than ReliableMaxMessageSize={ReliableMaxMessageSize(kcp.rcv_wnd)}"); + // GetType() shows Server/ClientConn instead of just Connection. + else OnError(ErrorCode.InvalidSend, $"{GetType()}: Failed to send reliable message of size {content.Count} because it's larger than ReliableMaxMessageSize={ReliableMaxMessageSize(kcp.rcv_wnd)}"); } void SendUnreliable(ArraySegment message) From dd98f2a55c0fdb4780a74bb7efba58667b046d9a Mon Sep 17 00:00:00 2001 From: anggape Date: Fri, 22 Jul 2022 15:13:16 +0700 Subject: [PATCH 2/3] fix: `KcpServer.Start` return when server is started --- kcp2k/Assets/kcp2k/highlevel/KcpServer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs index 5e486880..e9453a16 100644 --- a/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs +++ b/kcp2k/Assets/kcp2k/highlevel/KcpServer.cs @@ -130,6 +130,7 @@ public void Start(ushort port) if (socket != null) { Log.Warning("KCP: server already started!"); + return; } // listen From 7cf79aafb0f54eb97db15d5c75bd2e960bca0452 Mon Sep 17 00:00:00 2001 From: anggape Date: Sat, 23 Jul 2022 09:30:35 +0700 Subject: [PATCH 3/3] fix: Log.Info showing ${GetType()} instead of type name --- kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs b/kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs index 7d81b5c9..055df7c1 100644 --- a/kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs +++ b/kcp2k/Assets/kcp2k/highlevel/KcpConnection.cs @@ -293,7 +293,7 @@ void TickIncoming_Connected(uint time) // we were waiting for a handshake. // it proves that the other end speaks our protocol. // GetType() shows Server/ClientConn instead of just Connection. - Log.Info("${GetType()}: received handshake"); + Log.Info($"{GetType()}: received handshake"); state = KcpState.Authenticated; OnAuthenticated?.Invoke(); break; @@ -610,7 +610,7 @@ void SendUnreliable(ArraySegment message) public void SendHandshake() { // GetType() shows Server/ClientConn instead of just Connection. - Log.Info("${GetType()}: sending Handshake to other end!"); + Log.Info($"{GetType()}: sending Handshake to other end!"); SendReliable(KcpHeader.Handshake, default); }