summaryrefslogtreecommitdiffstats
path: root/src/rpc-server
diff options
context:
space:
mode:
Diffstat (limited to 'src/rpc-server')
-rw-r--r--src/rpc-server/trex_rpc_req_resp_server.cpp6
-rw-r--r--src/rpc-server/trex_rpc_req_resp_server.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/rpc-server/trex_rpc_req_resp_server.cpp b/src/rpc-server/trex_rpc_req_resp_server.cpp
index 28bf1d80..729917c0 100644
--- a/src/rpc-server/trex_rpc_req_resp_server.cpp
+++ b/src/rpc-server/trex_rpc_req_resp_server.cpp
@@ -171,6 +171,12 @@ void TrexRpcServerReqRes::_stop_rpc_thread() {
void TrexRpcServerReqRes::handle_request(const std::string &request) {
std::string response;
+ if ( request.size() > MAX_RPC_MSG_LEN ) {
+ response = "Request is too large (" + std::to_string(request.size()) + " bytes). Consider splitting to smaller chunks.";
+ handle_server_error(response);
+ return;
+ }
+
process_request(request, response);
zmq_send(m_socket, response.c_str(), response.size(), 0);
diff --git a/src/rpc-server/trex_rpc_req_resp_server.h b/src/rpc-server/trex_rpc_req_resp_server.h
index 92d51a2a..9a994044 100644
--- a/src/rpc-server/trex_rpc_req_resp_server.h
+++ b/src/rpc-server/trex_rpc_req_resp_server.h
@@ -53,6 +53,7 @@ protected:
void *m_context;
void *m_socket;
+ static const uint32_t MAX_RPC_MSG_LEN = 999999;
};
/**