mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-05 09:54:15 +00:00
delete messages sent to disconnected session
This commit is contained in:
parent
89883e2078
commit
923b64eb48
@ -678,6 +678,11 @@ namespace transport
|
|||||||
{
|
{
|
||||||
if (msg)
|
if (msg)
|
||||||
{
|
{
|
||||||
|
if (m_IsTerminated)
|
||||||
|
{
|
||||||
|
DeleteI2NPMessage (msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (m_IsSending)
|
if (m_IsSending)
|
||||||
m_SendQueue.push_back (msg);
|
m_SendQueue.push_back (msg);
|
||||||
else
|
else
|
||||||
@ -692,6 +697,12 @@ namespace transport
|
|||||||
|
|
||||||
void NTCPSession::PostI2NPMessages (std::vector<I2NPMessage *> msgs)
|
void NTCPSession::PostI2NPMessages (std::vector<I2NPMessage *> msgs)
|
||||||
{
|
{
|
||||||
|
if (m_IsTerminated)
|
||||||
|
{
|
||||||
|
for (auto it: msgs)
|
||||||
|
DeleteI2NPMessage (it);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (m_IsSending)
|
if (m_IsSending)
|
||||||
{
|
{
|
||||||
for (auto it: msgs)
|
for (auto it: msgs)
|
||||||
|
@ -830,13 +830,18 @@ namespace transport
|
|||||||
|
|
||||||
void SSUSession::SendI2NPMessage (I2NPMessage * msg)
|
void SSUSession::SendI2NPMessage (I2NPMessage * msg)
|
||||||
{
|
{
|
||||||
GetService ().post (std::bind (&SSUSession::PostI2NPMessage, shared_from_this (), msg));
|
GetService ().post (std::bind (&SSUSession::PostI2NPMessage, shared_from_this (), msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SSUSession::PostI2NPMessage (I2NPMessage * msg)
|
void SSUSession::PostI2NPMessage (I2NPMessage * msg)
|
||||||
{
|
{
|
||||||
if (msg)
|
if (msg)
|
||||||
m_Data.Send (msg);
|
{
|
||||||
|
if (m_State == eSessionStateEstablished)
|
||||||
|
m_Data.Send (msg);
|
||||||
|
else
|
||||||
|
DeleteI2NPMessage (msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SSUSession::SendI2NPMessages (const std::vector<I2NPMessage *>& msgs)
|
void SSUSession::SendI2NPMessages (const std::vector<I2NPMessage *>& msgs)
|
||||||
@ -846,8 +851,16 @@ namespace transport
|
|||||||
|
|
||||||
void SSUSession::PostI2NPMessages (std::vector<I2NPMessage *> msgs)
|
void SSUSession::PostI2NPMessages (std::vector<I2NPMessage *> msgs)
|
||||||
{
|
{
|
||||||
for (auto it: msgs)
|
if (m_State == eSessionStateEstablished)
|
||||||
if (it) m_Data.Send (it);
|
{
|
||||||
|
for (auto it: msgs)
|
||||||
|
if (it) m_Data.Send (it);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (auto it: msgs)
|
||||||
|
DeleteI2NPMessage (it);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SSUSession::ProcessData (uint8_t * buf, size_t len)
|
void SSUSession::ProcessData (uint8_t * buf, size_t len)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user