1
0
mirror of https://github.com/PurpleI2P/i2pd.git synced 2025-01-22 04:04:16 +00:00

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) 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) for (auto it: msgs)
m_SendQueue.push_back (it); m_SendQueue.push_back (it);
if (!m_IsSending) SendQueue (); if (!m_IsSending)
SendQueue ();
} }
NTCP2Server::NTCP2Server (): NTCP2Server::NTCP2Server ():

View File

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