store relay session directly

This commit is contained in:
orignal 2016-12-30 17:53:54 -05:00
parent 2e8fa88fcb
commit 178dedf78c
3 changed files with 10 additions and 5 deletions

View file

@ -154,7 +154,7 @@ namespace transport
}
}
void SSUServer::AddRelay (uint32_t tag, const boost::asio::ip::udp::endpoint& relay)
void SSUServer::AddRelay (uint32_t tag, std::shared_ptr<SSUSession> relay)
{
m_Relays[tag] = relay;
}
@ -168,7 +168,12 @@ namespace transport
{
auto it = m_Relays.find (tag);
if (it != m_Relays.end ())
return FindSession (it->second);
{
if (it->second->GetState () == eSessionStateEstablished)
return it->second;
else
m_Relays.erase (it);
}
return nullptr;
}