From 0234918f304aca89eb98d7ea0a73b0d30e9e2ab2 Mon Sep 17 00:00:00 2001 From: Int32Overflow Date: Sat, 28 Jan 2023 12:12:20 +0100 Subject: [PATCH] Performance impact fix (#1661) --- .../MqttClientSubscriptionsManager.cs | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Source/MQTTnet/Server/Internal/MqttClientSubscriptionsManager.cs b/Source/MQTTnet/Server/Internal/MqttClientSubscriptionsManager.cs index b409d959..70a5df88 100644 --- a/Source/MQTTnet/Server/Internal/MqttClientSubscriptionsManager.cs +++ b/Source/MQTTnet/Server/Internal/MqttClientSubscriptionsManager.cs @@ -403,6 +403,18 @@ namespace MQTTnet.Server CreateSubscriptionResult createSubscriptionResult, SubscribeResult subscribeResult) { + if (createSubscriptionResult.Subscription.RetainHandling == MqttRetainHandling.DoNotSendOnSubscribe) + { + // This is a MQTT V5+ feature. + return; + } + + if (createSubscriptionResult.Subscription.RetainHandling == MqttRetainHandling.SendAtSubscribeIfNewSubscriptionOnly && !createSubscriptionResult.IsNewSubscription) + { + // This is a MQTT V5+ feature. + return; + } + for (var index = retainedMessages.Count - 1; index >= 0; index--) { var retainedMessage = retainedMessages[index]; @@ -411,18 +423,6 @@ namespace MQTTnet.Server continue; } - if (createSubscriptionResult.Subscription.RetainHandling == MqttRetainHandling.DoNotSendOnSubscribe) - { - // This is a MQTT V5+ feature. - continue; - } - - if (createSubscriptionResult.Subscription.RetainHandling == MqttRetainHandling.SendAtSubscribeIfNewSubscriptionOnly && !createSubscriptionResult.IsNewSubscription) - { - // This is a MQTT V5+ feature. - continue; - } - if (MqttTopicFilterComparer.Compare(retainedMessage.Topic, createSubscriptionResult.Subscription.Topic) != MqttTopicFilterCompareResult.IsMatch) { continue;