1
0
mirror of https://github.com/PurpleI2P/i2pd.git synced 2025-01-22 04:04:16 +00:00

schdule connect timer

This commit is contained in:
orignal 2014-09-04 10:20:44 -04:00
parent 617e7bc81d
commit 10d9a4582f
2 changed files with 12 additions and 4 deletions

15
SSU.cpp
View File

@ -23,7 +23,8 @@ namespace ssu
m_NumSentBytes (0), m_NumReceivedBytes (0)
{
m_DHKeysPair = i2p::transports.GetNextDHKeysPair ();
ScheduleTermination ();
if (!router) // incoming session
ScheduleConnectTimer ();
}
SSUSession::~SSUSession ()
@ -584,13 +585,19 @@ namespace ssu
if (m_State == eSessionStateUnknown)
{
// set connect timer
m_Timer.expires_from_now (boost::posix_time::seconds(SSU_CONNECT_TIMEOUT));
m_Timer.async_wait (boost::bind (&SSUSession::HandleConnectTimer,
this, boost::asio::placeholders::error));
ScheduleConnectTimer ();
SendSessionRequest ();
}
}
void SSUSession::ScheduleConnectTimer ()
{
m_Timer.cancel ();
m_Timer.expires_from_now (boost::posix_time::seconds(SSU_CONNECT_TIMEOUT));
m_Timer.async_wait (boost::bind (&SSUSession::HandleConnectTimer,
this, boost::asio::placeholders::error));
}
void SSUSession::HandleConnectTimer (const boost::system::error_code& ecode)
{
if (!ecode)

1
SSU.h
View File

@ -97,6 +97,7 @@ namespace ssu
void ProcessRelayIntro (uint8_t * buf, size_t len);
void Established ();
void Failed ();
void ScheduleConnectTimer ();
void HandleConnectTimer (const boost::system::error_code& ecode);
void ProcessPeerTest (uint8_t * buf, size_t len, const boost::asio::ip::udp::endpoint& senderEndpoint);
void SendPeerTest (uint32_t nonce, uint32_t address, uint16_t port, uint8_t * introKey, bool toAddress = true);