mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 23:36:41 +02:00
fix supression of repeated messages for version mismatch
This commit is contained in:
parent
2a2eb39066
commit
b257daaef1
1 changed files with 23 additions and 7 deletions
|
@ -189,19 +189,35 @@ bool PacketReceiver::packetVersionMatch(const NLPacket& packet) {
|
||||||
if (packet.getVersion() != versionForPacketType(packet.getType())
|
if (packet.getVersion() != versionForPacketType(packet.getType())
|
||||||
&& packet.getType() != PacketType::StunResponse) {
|
&& packet.getType() != PacketType::StunResponse) {
|
||||||
|
|
||||||
static QMultiMap<QUuid, PacketType::Value> versionDebugSuppressMap;
|
static QMultiHash<QUuid, PacketType::Value> sourcedVersionDebugSuppressMap;
|
||||||
|
static QMultiHash<HifiSockAddr, PacketType::Value> versionDebugSuppressMap;
|
||||||
|
|
||||||
const QUuid& senderID = packet.getSourceID();
|
bool hasBeenOutput = false;
|
||||||
|
QString senderString;
|
||||||
if (!versionDebugSuppressMap.contains(senderID, packet.getType())) {
|
|
||||||
|
if (NON_SOURCED_PACKETS.contains(packet.getType())) {
|
||||||
|
const HifiSockAddr& senderSockAddr = packet.getSenderSockAddr();
|
||||||
|
hasBeenOutput = versionDebugSuppressMap.contains(senderSockAddr, packet.getType());
|
||||||
|
|
||||||
|
if (!hasBeenOutput) {
|
||||||
|
versionDebugSuppressMap.insert(senderSockAddr, packet.getType());
|
||||||
|
senderString = QString("%1:%2").arg(senderSockAddr.getAddress().toString()).arg(senderSockAddr.getPort());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
hasBeenOutput = sourcedVersionDebugSuppressMap.contains(packet.getSourceID(), packet.getType());
|
||||||
|
|
||||||
|
if (!hasBeenOutput) {
|
||||||
|
sourcedVersionDebugSuppressMap.insert(packet.getSourceID(), packet.getType());
|
||||||
|
senderString = uuidStringWithoutCurlyBraces(packet.getSourceID().toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hasBeenOutput) {
|
||||||
qCDebug(networking) << "Packet version mismatch on" << packet.getType() << "- Sender"
|
qCDebug(networking) << "Packet version mismatch on" << packet.getType() << "- Sender"
|
||||||
<< senderID << "sent" << qPrintable(QString::number(packet.getVersion())) << "but"
|
<< senderString << "sent" << qPrintable(QString::number(packet.getVersion())) << "but"
|
||||||
<< qPrintable(QString::number(versionForPacketType(packet.getType()))) << "expected.";
|
<< qPrintable(QString::number(versionForPacketType(packet.getType()))) << "expected.";
|
||||||
|
|
||||||
emit packetVersionMismatch(packet.getType());
|
emit packetVersionMismatch(packet.getType());
|
||||||
|
|
||||||
versionDebugSuppressMap.insert(senderID, packet.getType());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue