handle DestroySession properly

pull/511/head
orignal 8 years ago
parent 6de7cd5063
commit ecd3a49d48

@ -117,9 +117,8 @@ namespace client
I2CPSession::I2CPSession (I2CPServer& owner, std::shared_ptr<boost::asio::ip::tcp::socket> socket):
m_Owner (owner), m_Socket (socket),
m_NextMessage (nullptr), m_NextMessageLen (0), m_NextMessageOffset (0),
m_MessageID (0), m_IsSendAccepted (true)
m_SessionID (0), m_MessageID (0), m_IsSendAccepted (true)
{
RAND_bytes ((uint8_t *)&m_SessionID, 2);
}
I2CPSession::~I2CPSession ()
@ -315,6 +314,7 @@ namespace client
void I2CPSession::CreateSessionMessageHandler (const uint8_t * buf, size_t len)
{
RAND_bytes ((uint8_t *)&m_SessionID, 2);
auto identity = std::make_shared<i2p::data::IdentityEx>();
size_t offset = identity->FromBuffer (buf, len);
if (!offset)
@ -365,7 +365,11 @@ namespace client
{
SendSessionStatusMessage (0); // destroy
LogPrint (eLogDebug, "I2CP: session ", m_SessionID, " destroyed");
Terminate ();
if (m_Destination)
{
m_Destination->Stop ();
m_Destination = 0;
}
}
void I2CPSession::ReconfigureSessionMessageHandler (const uint8_t * buf, size_t len)

Loading…
Cancel
Save