Add iterator to improve max messages check performance.

This commit is contained in:
Kalila L 2021-03-14 22:35:56 -04:00
parent 9d15b00fbb
commit 008c0f0b1e

View file

@ -49,13 +49,15 @@ void MessagesMixer::handleMessages(QSharedPointer<ReceivedMessage> receivedMessa
MessagesClient::decodeMessagesPacket(receivedMessage, channel, isText, message, data, senderID);
auto nodeList = DependencyManager::get<NodeList>();
if (_allSubscribers.value(senderUUID) >= _maxMessagesPerSecond) {
// We will reject all messages that go over this limit for that second.
// FIXME: We will add logging options to offer analytics on this later.
return;
}
_allSubscribers[senderUUID] += 1;
auto itr = _allSubscribers.find(senderUUID);
if (itr == _allSubscribers.end()) {
_allSubscribers[senderUUID] = 1;
} else if (*itr >= _maxMessagesPerSecond) { // this syntax might be wrong I forget
return;
} else {
*itr += 1;
}
nodeList->eachMatchingNode(
[&](const SharedNodePointer& node)->bool {