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