Browse Source

read message body immediatly after length

pull/1243/head
orignal 6 years ago
parent
commit
5cac6ca8bb
  1. 11
      libi2pd/NTCP2.cpp

11
libi2pd/NTCP2.cpp

@ -806,7 +806,16 @@ namespace transport @@ -806,7 +806,16 @@ namespace transport
{
if (m_NextReceivedBuffer) delete[] m_NextReceivedBuffer;
m_NextReceivedBuffer = new uint8_t[m_NextReceivedLen];
Receive ();
boost::system::error_code ec;
size_t moreBytes = m_Socket.available(ec);
if (!ec && moreBytes >= m_NextReceivedLen)
{
// read and process messsage immediately if avaliable
moreBytes = boost::asio::read (m_Socket, boost::asio::buffer(m_NextReceivedBuffer, m_NextReceivedLen), boost::asio::transfer_all (), ec);
HandleReceived (ec, moreBytes);
}
else
Receive ();
}
else
{

Loading…
Cancel
Save