Browse Source

don't process SSU messages after termination

pull/1634/head
orignal 4 years ago
parent
commit
75a31c79ae
  1. 13
      libi2pd/SSU.cpp
  2. 2
      libi2pd/SSU.h

13
libi2pd/SSU.cpp

@ -127,18 +127,18 @@ namespace transport @@ -127,18 +127,18 @@ namespace transport
delete m_ReceiversThread;
m_ReceiversThread = nullptr;
}
if (m_Thread)
{
m_Thread->join ();
delete m_Thread;
m_Thread = nullptr;
}
if (m_ReceiversThreadV6)
{
m_ReceiversThreadV6->join ();
delete m_ReceiversThreadV6;
m_ReceiversThreadV6 = nullptr;
}
if (m_Thread)
{
m_Thread->join ();
delete m_Thread;
m_Thread = nullptr;
}
}
void SSUServer::Run ()
@ -377,6 +377,7 @@ namespace transport @@ -377,6 +377,7 @@ namespace transport
void SSUServer::HandleReceivedPackets (std::vector<SSUPacket *> packets,
std::map<boost::asio::ip::udp::endpoint, std::shared_ptr<SSUSession> > * sessions)
{
if (!m_IsRunning) return;
std::shared_ptr<SSUSession> session;
for (auto& packet: packets)
{

2
libi2pd/SSU.h

@ -119,7 +119,7 @@ namespace transport @@ -119,7 +119,7 @@ namespace transport
};
bool m_OnlyV6;
bool m_IsRunning;
volatile bool m_IsRunning;
std::thread * m_Thread, * m_ReceiversThread, * m_ReceiversThreadV6;
boost::asio::io_service m_Service, m_ReceiversService, m_ReceiversServiceV6;
boost::asio::io_service::work m_Work, m_ReceiversWork, m_ReceiversWorkV6;

Loading…
Cancel
Save