From 62325f5503286edfbc55b64e680502ca5d9b9737 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?rich=CE=9Brd?= Date: Mon, 4 Aug 2025 16:04:50 -0400 Subject: [PATCH] fix: do not encode a delay for last hop (#71) --- mix/mix_protocol.nim | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/mix/mix_protocol.nim b/mix/mix_protocol.nim index 2732f7d..4d2671f 100644 --- a/mix/mix_protocol.nim +++ b/mix/mix_protocol.nim @@ -274,11 +274,17 @@ proc anonymizeLocalProtocolSend*( hop.add(Hop.init(multiAddrBytes)) # Compute delay - let delayMilliSec = cryptoRandomInt(3).valueOr: - error "Failed to generate random number", err = error - mix_messages_error.inc(labelValues = ["Entry", "NON_RECOVERABLE"]) - return - delay.add(uint16ToBytes(uint16(delayMilliSec))) + let delayMillisec = + if i != L - 1: + cryptoRandomInt(3).valueOr: + error "Failed to generate random number", err = error + mix_messages_error.inc(labelValues = ["Entry", "NON_RECOVERABLE"]) + return + else: + 0 # Last hop does not require a delay + + delay.add(uint16ToBytes(delayMillisec.uint16)) + i = i + 1 let serializedMsgChunk = paddedMsg.serialize().valueOr: error "Failed to serialize padded message", err = error