diff --git a/server/wsproxy/jsondatamgr.h b/server/wsproxy/jsondatamgr.h index fd02240..d5b2c3c 100644 --- a/server/wsproxy/jsondatamgr.h +++ b/server/wsproxy/jsondatamgr.h @@ -15,6 +15,8 @@ class JsonDataMgr : public a8::Singleton std::shared_ptr GetConf(); std::shared_ptr GetMasterServerClusterConf(); bool GetNodeHost(int node_id, std::string& host); + std::string GetUdpHost() { return udp_host_; } + int GetUdpPort() { return udp_port_; } private: std::string work_path_ = "../config"; @@ -23,4 +25,6 @@ class JsonDataMgr : public a8::Singleton std::mutex* node_host_mutex_ = nullptr; a8::XObject routing_tables_json_; std::map node_host_hash_; + std::string udp_host_; + int udp_port_ = 0; }; diff --git a/server/wsproxy/longsessionmgr.cc b/server/wsproxy/longsessionmgr.cc index 2632563..2ed3725 100644 --- a/server/wsproxy/longsessionmgr.cc +++ b/server/wsproxy/longsessionmgr.cc @@ -32,7 +32,7 @@ void LongSessionMgr::Init() udp_listener_->on_recv_packet = GSUdpListeneron_recv_packet; udp_listener_->bind_address = "0.0.0.0"; - udp_listener_->bind_port = JsonDataMgr::Instance()->GetConf()->At("listen_udp_port")->AsXValue(); + udp_listener_->bind_port = JsonDataMgr::Instance()->GetUdpPort(); udp_listener_->Open(); } @@ -68,6 +68,8 @@ void LongSessionMgr::_SS_CMKcpHandshake(f8::MsgHdr& hdr, const ss::SS_CMKcpHands long long secret_key = session->GetKcpSession()->GetSecretKey(); respmsg.set_secret_key(&secret_key, sizeof(secret_key)); } + respmsg.set_remote_host(JsonDataMgr::Instance()->GetUdpHost()); + respmsg.set_remote_port(JsonDataMgr::Instance()->GetUdpPort()); GCListener::Instance()->SendMsg(hdr.socket_handle, respmsg); }