diff --git a/server/tools/protobuild/ss_msgid.proto b/server/tools/protobuild/ss_msgid.proto index ef3f819..d1eeae9 100644 --- a/server/tools/protobuild/ss_msgid.proto +++ b/server/tools/protobuild/ss_msgid.proto @@ -13,6 +13,7 @@ enum SSMessageId_e _SS_MS_HttpTunnelResponse = 15; _SS_HttpTunnelRequest = 16; _SS_HttpTunnelResponse = 17; + _SS_BindUpStreamSocket = 20; _SS_CMKcpHandshake = 99; _SS_CMPing = 101; diff --git a/server/tools/protobuild/ss_proto.proto b/server/tools/protobuild/ss_proto.proto index da7e761..66ec48d 100644 --- a/server/tools/protobuild/ss_proto.proto +++ b/server/tools/protobuild/ss_proto.proto @@ -132,3 +132,7 @@ message SS_Pong message SS_ForceCloseSocket { } + +message SS_BindUpStreamSocket +{ +} diff --git a/server/wsproxy/app.cc b/server/wsproxy/app.cc index f5de7da..a25f49c 100644 --- a/server/wsproxy/app.cc +++ b/server/wsproxy/app.cc @@ -259,7 +259,9 @@ void App::ProcessTargetServerMsg(f8::MsgHdr* hdr) GCListener::Instance()->ForceCloseClient(hdr->socket_handle); return; } - if (hdr->msgid == ss::_SS_CMLogin || hdr->msgid == ss::_SS_CMReconnect) { + if (hdr->msgid == ss::_SS_CMLogin || + hdr->msgid == ss::_SS_CMReconnect || + hdr->msgid == ss::_SS_BindUpStreamSocket) { DownStreamMgr::Instance()->BindUpStream(hdr->socket_handle, hdr->ip_saddr); GCListener::Instance()->MarkClient(hdr->socket_handle, true); }