properly discard piggy back packets that don't match expected version

This commit is contained in:
ZappoMan 2014-05-20 16:19:14 -07:00
parent 412e870f98
commit 22a6e4679a
2 changed files with 19 additions and 2 deletions

View file

@ -61,6 +61,23 @@ void VoxelPacketProcessor::processPacket(const SharedNodePointer& sendingNode, c
} // fall through to piggyback message } // fall through to piggyback message
voxelPacketType = packetTypeForPacket(mutablePacket); voxelPacketType = packetTypeForPacket(mutablePacket);
PacketVersion packetVersion = mutablePacket[1];
PacketVersion expectedVersion = versionForPacketType(voxelPacketType);
// check version of piggyback packet against expected version
if (packetVersion != expectedVersion) {
static QMultiMap<QUuid, PacketType> 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)) { if (Menu::getInstance()->isOptionChecked(MenuOption::Voxels)) {
app->trackIncomingVoxelPacket(mutablePacket, sendingNode, wasStatsPacket); app->trackIncomingVoxelPacket(mutablePacket, sendingNode, wasStatsPacket);

View file

@ -47,7 +47,7 @@ enum PacketType {
PacketTypeVoxelSet, PacketTypeVoxelSet,
PacketTypeVoxelSetDestructive, PacketTypeVoxelSetDestructive,
PacketTypeVoxelErase, PacketTypeVoxelErase,
PacketTypeOctreeStats, PacketTypeOctreeStats, // 26
PacketTypeJurisdiction, PacketTypeJurisdiction,
PacketTypeJurisdictionRequest, PacketTypeJurisdictionRequest,
PacketTypeParticleQuery, PacketTypeParticleQuery,
@ -62,7 +62,7 @@ enum PacketType {
PacketTypeDomainServerRequireDTLS, PacketTypeDomainServerRequireDTLS,
PacketTypeNodeJsonStats, PacketTypeNodeJsonStats,
PacketTypeModelQuery, PacketTypeModelQuery,
PacketTypeModelData, PacketTypeModelData, // 41
PacketTypeModelAddOrEdit, PacketTypeModelAddOrEdit,
PacketTypeModelErase, PacketTypeModelErase,
PacketTypeModelAddResponse, PacketTypeModelAddResponse,