diff --git a/server/wsproxy/mastermgr.cc b/server/wsproxy/mastermgr.cc index eef6b93..49f7ba2 100644 --- a/server/wsproxy/mastermgr.cc +++ b/server/wsproxy/mastermgr.cc @@ -25,6 +25,8 @@ public: f8::MsgHdr* hdr_copy = nullptr; f8::TimerWp timer_wp; long long req_tick = 0; + + UpStream* conn = nullptr; }; void MasterMgr::Init() @@ -61,14 +63,17 @@ void MasterMgr::_SS_MS_ResponseTargetServer(f8::MsgHdr& hdr, const ss::SS_MS_Res msg.port() ); if (conn) { - RemoveRequest(req->socket_handle); conn->ForwardClientMsgEx(req->hdr_copy); + req->conn = conn; + req->hdr_copy = nullptr; + RemoveRequest(req->socket_handle); return; } else { abort(); } + } else { + RemoveRequest(req->socket_handle); } - RemoveRequest(req->socket_handle); } }