P2P fix raw dedup

This commit is contained in:
2026-10-27 23:06:31 -07:00
parent 7d63d60d99
commit 6454d741d4

View File

@ -408,9 +408,10 @@ class LeenkxClient {
} }
function onMessageData(identifier:String, message:Bytes, ?senderPk:String):Void { 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(); 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)) { if (message.length > 0 && (message.get(0) == 0x00 || message.get(0) == 0x01)) {
var isRelayed = message.get(0) == 0x01; var isRelayed = message.get(0) == 0x01;
var offset = 1; var offset = 1;
@ -434,7 +435,7 @@ class LeenkxClient {
var rawPayload = message.sub(offset, message.length - offset); var rawPayload = message.sub(offset, message.length - offset);
var payload = new leenkx.network.Buffer(); var payload = new leenkx.network.Buffer();
payload.writeBytes(rawPayload); payload.writeBytes(rawPayload);
seen.set(hash, t); if (isRelayed) seen.set(hash, t);
var senderAddr = msgSenderPk != null ? pkToAddress.get(msgSenderPk) : null; var senderAddr = msgSenderPk != null ? pkToAddress.get(msgSenderPk) : null;
if (senderAddr == null && msgSenderPk != null && msgSenderPk != "") { if (senderAddr == null && msgSenderPk != null && msgSenderPk != "") {
senderAddr = addressFromPk(msgSenderPk); senderAddr = addressFromPk(msgSenderPk);