mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-28 11:47:48 +02:00
increased I2NP max message size to 32K and check if fragmented message exceeds it
This commit is contained in:
parent
d4ac1391fe
commit
12fbc9cb86
4 changed files with 15 additions and 6 deletions
|
@ -125,6 +125,13 @@ namespace tunnel
|
|||
if (fragmentNum == it->second.nextFragmentNum)
|
||||
{
|
||||
I2NPMessage * incompleteMessage = it->second.data;
|
||||
if (incompleteMessage->len + size >= I2NP_MAX_MESSAGE_SIZE)
|
||||
{
|
||||
LogPrint ("Fragment ", fragmentNum, " of message ", msgID, "exceeds max I2NP message size. Message dropped");
|
||||
i2p::DeleteI2NPMessage (it->second.data);
|
||||
m_IncompleteMessages.erase (it);
|
||||
continue;
|
||||
}
|
||||
memcpy (incompleteMessage->buf + incompleteMessage->len, fragment, size); // concatenate fragment
|
||||
incompleteMessage->len += size;
|
||||
if (isLastFragment)
|
||||
|
@ -139,7 +146,8 @@ namespace tunnel
|
|||
else
|
||||
{
|
||||
LogPrint ("Unexpected fragment ", fragmentNum, " instead ", it->second.nextFragmentNum, " of message ", msgID, ". Discarded");
|
||||
m_IncompleteMessages.erase (it); // TODO: store unexpect fragment for a while
|
||||
i2p::DeleteI2NPMessage (it->second.data);
|
||||
m_IncompleteMessages.erase (it); // TODO: store unexpected fragment for a while
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue