From c3c5c7ae6388127c982610c480596de061091be0 Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 22 Jun 2022 16:56:54 -0400 Subject: [PATCH] forward correct RelayResponse from Charlie to Alice --- libi2pd/SSU2Session.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libi2pd/SSU2Session.cpp b/libi2pd/SSU2Session.cpp index e9fd32a2..cf776f0a 100644 --- a/libi2pd/SSU2Session.cpp +++ b/libi2pd/SSU2Session.cpp @@ -1394,8 +1394,16 @@ namespace transport if (it != m_RelaySessions.end ()) { if (it->second.first && it->second.first->IsEstablished ()) + { // we are Bob, message from Charlie - it->second.first->SendData (buf, len); // forward to Alice as is + uint8_t payload[SSU2_MAX_PAYLOAD_SIZE]; + payload[0] = eSSU2BlkRelayResponse; + htobe16buf (payload + 1, len); + memcpy (payload + 3, buf, len); // forward to Alice as is + size_t payloadSize = len + 3; + payloadSize += CreatePaddingBlock (payload + payloadSize, SSU2_MAX_PAYLOAD_SIZE - payloadSize); + it->second.first->SendData (payload, payloadSize); + } else { // we are Alice, message from Bob