From f846b87590a9ac41e1f6183cd008d28ae48b20f2 Mon Sep 17 00:00:00 2001 From: orignal Date: Mon, 2 Feb 2015 16:08:35 -0500 Subject: [PATCH] make sure DeliveryStatus and DatabseStore are sent first --- SSUData.cpp | 3 +-- SSUSession.cpp | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/SSUData.cpp b/SSUData.cpp index f60d7f13..72d283ee 100644 --- a/SSUData.cpp +++ b/SSUData.cpp @@ -298,7 +298,6 @@ namespace transport sentMessage->nextResendTime = i2p::util::GetSecondsSinceEpoch () + RESEND_INTERVAL; sentMessage->numResends = 0; auto& fragments = sentMessage->fragments; - msgID = htobe32 (msgID); size_t payloadSize = m_PacketSize - sizeof (SSUHeader) - 9; // 9 = flag + #frg(1) + messageID(4) + frag info (3) size_t len = msg->GetLength (); uint8_t * msgBuf = msg->GetSSUHeader (); @@ -314,7 +313,7 @@ namespace transport payload++; *payload = 1; // always 1 message fragment per message payload++; - *(uint32_t *)payload = msgID; + htobe32buf (payload, msgID); payload += 4; bool isLast = (len <= payloadSize); size_t size = isLast ? len : payloadSize; diff --git a/SSUSession.cpp b/SSUSession.cpp index 0cbbc818..c5e04d23 100644 --- a/SSUSession.cpp +++ b/SSUSession.cpp @@ -255,7 +255,7 @@ namespace transport if (paddingSize > 0) paddingSize = 16 - paddingSize; payload += paddingSize; // TODO: verify signature (need data from session request), payload points to signature - SendI2NPMessage (CreateDeliveryStatusMsg (0)); + m_Data.Send (CreateDeliveryStatusMsg (0)); Established (); } @@ -767,7 +767,7 @@ namespace transport delete m_DHKeysPair; m_DHKeysPair = nullptr; } - SendI2NPMessage (CreateDatabaseStoreMsg ()); + m_Data.Send (CreateDatabaseStoreMsg ()); transports.PeerConnected (shared_from_this ()); if (m_PeerTest && (m_RemoteRouter && m_RemoteRouter->IsPeerTesting ())) SendPeerTest ();