diff --git a/SSUData.cpp b/SSUData.cpp index a4c47559..69b4287f 100644 --- a/SSUData.cpp +++ b/SSUData.cpp @@ -235,7 +235,7 @@ namespace transport { if (m_ReceivedMessages.size () > 100) m_ReceivedMessages.clear (); m_ReceivedMessages.insert (msgID); - i2p::HandleI2NPMessage (msg); + m_Handler.PutNextMessage (msg); } else { @@ -260,6 +260,8 @@ namespace transport SendFragmentAck (msgID, fragmentNum); buf += fragmentSize; } + if (numFragments > 0) + m_Handler.Flush (); } void SSUData::ProcessMessage (uint8_t * buf, size_t len) diff --git a/SSUData.h b/SSUData.h index e362acd3..57e14832 100644 --- a/SSUData.h +++ b/SSUData.h @@ -106,6 +106,7 @@ namespace transport std::set m_ReceivedMessages; boost::asio::deadline_timer m_ResendTimer; int m_MaxPacketSize, m_PacketSize; + i2p::I2NPMessagesHandler m_Handler; }; } }