From 6454d741d4c64aca19b258f7a33f8b0b95209016 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Tue, 27 Oct 2026 23:06:31 -0700 Subject: [PATCH] P2P fix raw dedup --- leenkx/Sources/leenkx/network/torrent/LeenkxClient.hx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/leenkx/Sources/leenkx/network/torrent/LeenkxClient.hx b/leenkx/Sources/leenkx/network/torrent/LeenkxClient.hx index 3243031b..74f20fcf 100644 --- a/leenkx/Sources/leenkx/network/torrent/LeenkxClient.hx +++ b/leenkx/Sources/leenkx/network/torrent/LeenkxClient.hx @@ -408,9 +408,10 @@ class LeenkxClient { } function onMessageData(identifier:String, message:Bytes, ?senderPk:String):Void { - var hash = Crypto.hash(message).sub(0, 16).toHex(); + var hash = (message.length > 0 && message.get(0) == 0x00) + ? null : Crypto.hash(message).sub(0, 16).toHex(); var t = now(); - if (!seen.exists(hash)) { + if (hash == null || !seen.exists(hash)) { if (message.length > 0 && (message.get(0) == 0x00 || message.get(0) == 0x01)) { var isRelayed = message.get(0) == 0x01; var offset = 1; @@ -434,7 +435,7 @@ class LeenkxClient { var rawPayload = message.sub(offset, message.length - offset); var payload = new leenkx.network.Buffer(); payload.writeBytes(rawPayload); - seen.set(hash, t); + if (isRelayed) seen.set(hash, t); var senderAddr = msgSenderPk != null ? pkToAddress.get(msgSenderPk) : null; if (senderAddr == null && msgSenderPk != null && msgSenderPk != "") { senderAddr = addressFromPk(msgSenderPk);