Specify wich packet can ignore verification at DS level

This commit is contained in:
Atlante45 2018-02-13 18:13:07 -08:00
parent a6447da64c
commit 272f95efa2
2 changed files with 15 additions and 8 deletions

View file

@ -315,8 +315,10 @@ bool LimitedNodeList::packetSourceAndHashMatchAndTrackBandwidth(const udt::Packe
}
if (sourceNode) {
if (!PacketTypeEnum::getNonVerifiedPackets().contains(headerType) &&
!isDomainServer()) {
bool verifiedPacket = !PacketTypeEnum::getNonVerifiedPackets().contains(headerType);
bool ignoreVerification = isDomainServer() && PacketTypeEnum::getDomainIgnoredVerificationPackets().contains(headerType);
if (verifiedPacket && !ignoreVerification) {
QByteArray packetHeaderHash = NLPacket::verificationHashInHeader(packet);
QByteArray expectedHash = NLPacket::hashForPacketAndSecret(packet, sourceNode->getConnectionSecret());

View file

@ -187,14 +187,19 @@ public:
const static QSet<PacketTypeEnum::Value> getDomainSourcedPackets() {
const static QSet<PacketTypeEnum::Value> DOMAIN_SOURCED_PACKETS = QSet<PacketTypeEnum::Value>()
<< PacketTypeEnum::Value::AssetMappingOperation
<< PacketTypeEnum::Value::AssetMappingOperationReply
<< PacketTypeEnum::Value::AssetGet
<< PacketTypeEnum::Value::AssetGetReply
<< PacketTypeEnum::Value::AssetUpload
<< PacketTypeEnum::Value::AssetUploadReply;
<< PacketTypeEnum::Value::AssetMappingOperation
<< PacketTypeEnum::Value::AssetGet
<< PacketTypeEnum::Value::AssetUpload;
return DOMAIN_SOURCED_PACKETS;
}
const static QSet<PacketTypeEnum::Value> getDomainIgnoredVerificationPackets() {
const static QSet<PacketTypeEnum::Value> DOMAIN_IGNORED_VERIFICATION_PACKETS = QSet<PacketTypeEnum::Value>()
<< PacketTypeEnum::Value::AssetMappingOperationReply
<< PacketTypeEnum::Value::AssetGetReply
<< PacketTypeEnum::Value::AssetUploadReply;
return DOMAIN_IGNORED_VERIFICATION_PACKETS;
}
};
using PacketType = PacketTypeEnum::Value;