diff --git a/interface/src/voxels/VoxelPacketProcessor.cpp b/interface/src/voxels/VoxelPacketProcessor.cpp index 8576f14b16..aedf9e6b41 100644 --- a/interface/src/voxels/VoxelPacketProcessor.cpp +++ b/interface/src/voxels/VoxelPacketProcessor.cpp @@ -61,6 +61,23 @@ void VoxelPacketProcessor::processPacket(const SharedNodePointer& sendingNode, c } // fall through to piggyback message voxelPacketType = packetTypeForPacket(mutablePacket); + PacketVersion packetVersion = mutablePacket[1]; + PacketVersion expectedVersion = versionForPacketType(voxelPacketType); + + // check version of piggyback packet against expected version + if (packetVersion != expectedVersion) { + static QMultiMap versionDebugSuppressMap; + + QUuid senderUUID = uuidFromPacketHeader(packet); + if (!versionDebugSuppressMap.contains(senderUUID, voxelPacketType)) { + qDebug() << "Packet version mismatch on" << voxelPacketType << "- Sender" + << senderUUID << "sent" << (int)packetVersion << "but" + << (int)expectedVersion << "expected."; + + versionDebugSuppressMap.insert(senderUUID, voxelPacketType); + } + } + if (Menu::getInstance()->isOptionChecked(MenuOption::Voxels)) { app->trackIncomingVoxelPacket(mutablePacket, sendingNode, wasStatsPacket); diff --git a/libraries/networking/src/PacketHeaders.h b/libraries/networking/src/PacketHeaders.h index d5b1e8301c..9c764f9f02 100644 --- a/libraries/networking/src/PacketHeaders.h +++ b/libraries/networking/src/PacketHeaders.h @@ -47,7 +47,7 @@ enum PacketType { PacketTypeVoxelSet, PacketTypeVoxelSetDestructive, PacketTypeVoxelErase, - PacketTypeOctreeStats, + PacketTypeOctreeStats, // 26 PacketTypeJurisdiction, PacketTypeJurisdictionRequest, PacketTypeParticleQuery, @@ -62,7 +62,7 @@ enum PacketType { PacketTypeDomainServerRequireDTLS, PacketTypeNodeJsonStats, PacketTypeModelQuery, - PacketTypeModelData, + PacketTypeModelData, // 41 PacketTypeModelAddOrEdit, PacketTypeModelErase, PacketTypeModelAddResponse,