Browse Source

schdule connect timer

pull/95/head
orignal 10 years ago
parent
commit
10d9a4582f
  1. 15
      SSU.cpp
  2. 1
      SSU.h

15
SSU.cpp

@ -23,7 +23,8 @@ namespace ssu @@ -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 @@ -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

@ -97,6 +97,7 @@ namespace ssu @@ -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);

Loading…
Cancel
Save