diff --git a/server/wsproxy/longsessionmgr.cc b/server/wsproxy/longsessionmgr.cc index 72d22c8..96ed80d 100644 --- a/server/wsproxy/longsessionmgr.cc +++ b/server/wsproxy/longsessionmgr.cc @@ -7,6 +7,7 @@ #include "longsessionmgr.h" #include "app.h" #include "jsondatamgr.h" +#include "longsession.h" static void GSUdpListeneron_error(int errorid) { @@ -39,33 +40,20 @@ void LongSessionMgr::Update() } -std::shared_ptr GetSessionBySocketHandle(int socket_handle) +std::shared_ptr LongSessionMgr::GetSession(int socket_handle) { - return nullptr; + auto itr = socket_handle_hash_.find(socket_handle); + return itr != socket_handle_hash_.end() ? itr->second : nullptr; } -#if 0 -std::shared_ptr GCListener::GetKcpSessionByRemoteKey(long long key) -{ - auto itr = kcp_session_addr_hash_.find(key); - return itr != kcp_session_addr_hash_.end() ? itr->second : nullptr; -} - -std::shared_ptr GCListener::GetKcpSessionBySocketHandle(int socket_handle) -{ - auto itr = kcp_session_handle_hash_.find(socket_handle); - return itr != kcp_session_handle_hash_.end() ? itr->second : nullptr; -} - -#endif - void LongSessionMgr::ProcUdpPacket(a8::UdpPacket* pkt) { - #if 0 - long long key = pkt->GetRemoteKey(); - auto session = GetKcpSessionByRemoteKey(key); - if (session) { + int socket_handle = 0; + long long secret_key = 0; + auto session = GetSession(socket_handle); + if (session && secret_key == session->GetSecretKey()) { + #if 0 session->OnRecvPacket(pkt); + #endif } - #endif }