From b9031c331dff942776b512dcd48d1b7e051e149c Mon Sep 17 00:00:00 2001 From: orignal Date: Mon, 24 Feb 2014 15:16:39 -0500 Subject: [PATCH] send SSU DeliveryStatus --- I2NPProtocol.cpp | 13 +++++++++++-- RouterInfo.cpp | 2 +- SSU.cpp | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/I2NPProtocol.cpp b/I2NPProtocol.cpp index 25549a09..9d7ccf18 100644 --- a/I2NPProtocol.cpp +++ b/I2NPProtocol.cpp @@ -70,8 +70,17 @@ namespace i2p I2NPMessage * CreateDeliveryStatusMsg (uint32_t msgID) { I2NPDeliveryStatusMsg msg; - msg.msgID = htobe32 (msgID); - msg.timestamp = htobe64 (i2p::util::GetMillisecondsSinceEpoch ()); + if (msgID) + { + msg.msgID = htobe32 (msgID); + msg.timestamp = htobe64 (i2p::util::GetMillisecondsSinceEpoch ()); + } + else // for SSU establishment + { + auto rnd = i2p::context.GetRandomNumberGenerator (); + msg.msgID = htobe32 (rnd.GenerateWord32 ()); + msg.timestamp = htobe64 (2); // netID = 2 + } return CreateI2NPMessage (eI2NPDeliveryStatus, (uint8_t *)&msg, sizeof (msg)); } diff --git a/RouterInfo.cpp b/RouterInfo.cpp index cd97d89d..88118e5e 100644 --- a/RouterInfo.cpp +++ b/RouterInfo.cpp @@ -217,7 +217,7 @@ namespace data // caps WriteString ("caps", properties); properties << '='; - WriteString ("BC", properties); // TODO: + WriteString ("B", properties); // TODO: should be 'BC' for introducers properties << ';'; } else diff --git a/SSU.cpp b/SSU.cpp index 4417733b..e713159b 100644 --- a/SSU.cpp +++ b/SSU.cpp @@ -176,7 +176,7 @@ namespace ssu m_State = eSessionStateConfirmedReceived; LogPrint ("Session confirmed received"); m_State = eSessionStateEstablished; - // TODO: send DeliverStatus + SendI2NPMessage (CreateDeliveryStatusMsg (0)); Established (); } else