diff --git a/server/wsproxy/mastermgr.cc b/server/wsproxy/mastermgr.cc index adc4774..ff178a1 100644 --- a/server/wsproxy/mastermgr.cc +++ b/server/wsproxy/mastermgr.cc @@ -27,7 +27,7 @@ void MasterMgr::Init() std::string remote_ip = master_svr_conf->At("ip")->AsXValue(); int remote_port = master_svr_conf->At("port")->AsXValue(); { - Master* conn = new Master(); + auto conn = std::make_shared(); conn->Init(instance_id, remote_ip, remote_port); mastersvr_hash_[conn->instance_id] = conn; conn->Open(); @@ -60,7 +60,7 @@ void MasterMgr::_SS_MS_ResponseTargetServer(f8::MsgHdr& hdr, const ss::SS_MS_Res } } -Master* MasterMgr::GetConnById(int instance_id) +std::shared_ptr MasterMgr::GetConnById(int instance_id) { auto itr = mastersvr_hash_.find(instance_id); return itr != mastersvr_hash_.end() ? itr->second : nullptr; @@ -108,7 +108,7 @@ void MasterMgr::RequestTargetServer(f8::MsgHdr& hdr, team_uuid = data; code = a8::openssl::Crc32((unsigned char*)data.data(), data.size()); } - Master* svr = GetConnById(code % mastersvr_hash_.size() + 1); + std::shared_ptr svr = GetConnById(code % mastersvr_hash_.size() + 1); if (svr) { ++curr_context_id_; #if 0 diff --git a/server/wsproxy/mastermgr.h b/server/wsproxy/mastermgr.h index eff71f0..707c404 100644 --- a/server/wsproxy/mastermgr.h +++ b/server/wsproxy/mastermgr.h @@ -37,12 +37,12 @@ class MasterMgr : public a8::Singleton private: long long GetContextIdBySocket(int socket_handle); f8::MsgHdr* GetHdrByContextId(long long context_id); - Master* GetConnById(int instance_id); + std::shared_ptr GetConnById(int instance_id); private: int target_conn_id_ = 100; long long curr_context_id_ = 0; - std::map mastersvr_hash_; + std::map> mastersvr_hash_; std::map pending_socket_hash_; std::map pending_request_hash_;