From 88e4eb6d2e7bb5d7198053760b51332fa9021e28 Mon Sep 17 00:00:00 2001 From: cinder Date: Thu, 29 May 2025 13:03:28 -0500 Subject: [PATCH] Enum.ToString() was eating up a lot of time in IncomingPacketHandler() --- LibreMetaverse/Login.cs | 16 +++++++++++++--- LibreMetaverse/NetworkManager.cs | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/LibreMetaverse/Login.cs b/LibreMetaverse/Login.cs index a54d6769..9e5b05e2 100644 --- a/LibreMetaverse/Login.cs +++ b/LibreMetaverse/Login.cs @@ -1190,8 +1190,8 @@ namespace OpenMetaverse private readonly Dictionary CallbackOptions = new Dictionary(); /// A list of packets obtained during the login process which - /// networkmanager will log but not process - private readonly List UDPBlacklist = new List(); + /// NetworkManager will log but not process + private readonly List UDPBlacklist = new List(); #endregion #region Public Methods @@ -1764,7 +1764,17 @@ namespace OpenMetaverse * for exclusion from packet processing */ if (reply.UDPBlacklist != null) { - UDPBlacklist.AddRange(reply.UDPBlacklist.Split(',')); + foreach (var entry in reply.UDPBlacklist.Split(',')) + { + if (Enum.TryParse(entry, true, out var result)) + { + UDPBlacklist.Add(result); + } + else + { + Logger.Log($"Could not parse {entry} from UDP Blacklist", Helpers.LogLevel.Warning); + } + } } // Misc: diff --git a/LibreMetaverse/NetworkManager.cs b/LibreMetaverse/NetworkManager.cs index 9652d0ff..d94b10da 100644 --- a/LibreMetaverse/NetworkManager.cs +++ b/LibreMetaverse/NetworkManager.cs @@ -1023,7 +1023,7 @@ namespace OpenMetaverse if (packet == null) continue; // Skip blacklisted packets - if (UDPBlacklist.Contains(packet.Type.ToString())) + if (UDPBlacklist.Contains(packet.Type)) { Logger.Log($"Discarding Blacklisted packet {packet.Type} from {simulator.IPEndPoint}", Helpers.LogLevel.Warning);