From bd1b12bbfa065a6f67045b46a653bb55e571cb4a Mon Sep 17 00:00:00 2001 From: James Frowen Date: Mon, 10 Feb 2025 14:55:00 +0000 Subject: [PATCH] fix: logging message name for Unauthenticated Message --- Assets/Mirage/Runtime/MessageHandler.cs | 11 ++++++++--- .../Tests/Runtime/Serialization/MessageHandlerTest.cs | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Assets/Mirage/Runtime/MessageHandler.cs b/Assets/Mirage/Runtime/MessageHandler.cs index 1677f490fe..0b65db2080 100644 --- a/Assets/Mirage/Runtime/MessageHandler.cs +++ b/Assets/Mirage/Runtime/MessageHandler.cs @@ -36,7 +36,7 @@ public void RegisterHandler(MessageDelegateWithPlayer handler, bool allowU } var del = MessageWrapper(handler); - _messageHandlers[msgId] = new Handler(del, allowUnauthenticated); + _messageHandlers[msgId] = new Handler(del, allowUnauthenticated, typeof(T)); } private static NetworkMessageDelegate MessageWrapper(MessageDelegateWithPlayer handler) @@ -158,7 +158,7 @@ private bool CheckAuthentication(INetworkPlayer player, int msgType, Handler han logger.Log($"Unauthenticated Message {type} received from {player}, player is not Authenticated so handler will not be invoked"); } - logger.LogError("Disconnecting Unauthenticated player"); + logger.LogError(handler.UnauthenticatedError); player.Disconnect(); return false; @@ -175,11 +175,16 @@ internal class Handler { public readonly NetworkMessageDelegate Delegate; public readonly bool AllowUnauthenticated; + public readonly string UnauthenticatedError; - public Handler(NetworkMessageDelegate @delegate, bool allowUnauthenticated) + public Handler(NetworkMessageDelegate @delegate, bool allowUnauthenticated, Type type) { Delegate = @delegate; AllowUnauthenticated = allowUnauthenticated; + + // cache the error message with the type, so we can log it on server with less allocations + if (!allowUnauthenticated) + UnauthenticatedError = $"Unauthenticated Message {type.FullName}, Disconnecting player"; } } } diff --git a/Assets/Tests/Runtime/Serialization/MessageHandlerTest.cs b/Assets/Tests/Runtime/Serialization/MessageHandlerTest.cs index 2dc5ddb315..51b631e705 100644 --- a/Assets/Tests/Runtime/Serialization/MessageHandlerTest.cs +++ b/Assets/Tests/Runtime/Serialization/MessageHandlerTest.cs @@ -73,7 +73,7 @@ public void DoesNotInvokesMessageHandler_WhenNotAuthenticated() var messageId = MessagePacker.GetId(); messageHandler.InvokeHandler(player, messageId, reader); } - , LogType.Error, $"Disconnecting Unauthenticated player"); + , LogType.Error, $"Unauthenticated Message {typeof(SceneReadyMessage).FullName}, Disconnecting player"); Assert.That(invoked, Is.EqualTo(0), "Should not have been invoked"); connection.Received(1).Disconnect();