This commit is contained in:
aozhiwei 2024-03-24 14:08:43 +08:00
parent c68e482dd8
commit 5cc155cd2b

View File

@ -7,6 +7,7 @@
#include <f8/timer.h>
#include <f8/netmsghandler.h>
#include <f8/protoutils.h>
#include <f8/jsonhttprequest.h>
#include "mastermgr.h"
#include "master.h"
@ -242,7 +243,24 @@ std::shared_ptr<RequestTarget> MasterMgr::GetRequestByContextId(long long contex
void MasterMgr::AddHttpTunnelRequest(int socket_handle, std::shared_ptr<f8::JsonHttpRequest> request)
{
if (!request->GetParams()->IsObject() ||
request->GetParams()->Get("team_uuid", "").GetString() == "") {
return;
}
std::string team_uuid = request->GetParams()->Get("team_uuid", "").GetString();
unsigned int code = a8::openssl::Crc32((unsigned char*)team_uuid.data(), team_uuid.size());
std::shared_ptr<Master> svr = GetConnById(code % mastersvr_hash_.size() + 1);
if (svr) {
++curr_context_id_;
ss::SS_WSP_HttpTunnelRequest msg;
msg.set_context_id(curr_context_id_);
msg.set_url(request->GetUrl());
std::string query_str;
request->GetParams()->ToUrlEncodeStr(query_str);
msg.set_query_str(query_str);
svr->SendMsg(msg);
auto req = std::make_shared<HttpTunnelRequest>();
req->socket_handle = socket_handle;
req->context_id = curr_context_id_;
@ -251,6 +269,7 @@ void MasterMgr::AddHttpTunnelRequest(int socket_handle, std::shared_ptr<f8::Json
pending_http_tunnel_socket_hash_[socket_handle] = req;
pending_http_tunnel_context_hash_[curr_context_id_] = req;
}
}
void MasterMgr::RemoveHttpTunnelRequest(int socket_handle)
{