post I2NP messages to NTCP2 thread

This commit is contained in:
orignal 2018-07-19 12:46:19 -04:00
parent 5001592fb4
commit 5bedfc1c84
2 changed files with 9 additions and 1 deletions

View file

@ -748,9 +748,16 @@ namespace transport
void NTCP2Session::SendI2NPMessages (const std::vector<std::shared_ptr<I2NPMessage> >& msgs)
{
m_Server.GetService ().post (std::bind (&NTCP2Session::PostI2NPMessages, shared_from_this (), msgs));
}
void NTCP2Session::PostI2NPMessages (std::vector<std::shared_ptr<I2NPMessage> > msgs)
{
if (m_IsTerminated) return;
for (auto it: msgs)
m_SendQueue.push_back (it);
if (!m_IsSending) SendQueue ();
if (!m_IsSending)
SendQueue ();
}
NTCP2Server::NTCP2Server ():

View file

@ -109,6 +109,7 @@ namespace transport
void SendNextFrame (const uint8_t * payload, size_t len);
void HandleNextFrameSent (const boost::system::error_code& ecode, std::size_t bytes_transferred);
void SendQueue ();
void PostI2NPMessages (std::vector<std::shared_ptr<I2NPMessage> > msgs);
private: