better tracking of first announce seen (#502)

This commit is contained in:
callebtc
2025-10-30 00:39:24 +01:00
committed by GitHub
parent 80d897a022
commit a4ce8cc979
4 changed files with 44 additions and 23 deletions
@@ -67,16 +67,21 @@ class SecurityManager(private val encryptionService: EncryptionService, private
// }
// Duplicate detection
val messageType = MessageType.fromValue(packet.type)
val messageID = generateMessageID(packet, peerID)
if (processedMessages.contains(messageID)) {
Log.d(TAG, "Dropping duplicate packet: $messageID")
return false
if (messageType != MessageType.ANNOUNCE) {
if (processedMessages.contains(messageID)) {
Log.d(TAG, "Dropping duplicate packet: $messageID")
return false
}
// Add to processed messages
processedMessages.add(messageID)
messageTimestamps[messageID] = currentTime
} else {
// Do not deduplicate ANNOUNCE at the security layer.
// They are signed/idempotent and we need to ensure first-announce per-connection can bind.
}
// Add to processed messages
processedMessages.add(messageID)
messageTimestamps[messageID] = currentTime
// NEW: Signature verification logging (not rejecting yet)
verifyPacketSignatureWithLogging(packet, peerID)