From 2f7d5eaf2a9858cc066f7539841c30808756cc9c Mon Sep 17 00:00:00 2001 From: Arne Welzel Date: Thu, 12 Jun 2025 16:40:00 +0200 Subject: [PATCH] cluster/WebSocket: Pass X-Application-Name to dispatcher This is going to be used to add labels to telemetry if the X-Application-Name header is set. --- src/cluster/websocket/WebSocket-IXWebSocket.cc | 9 +++++++-- src/cluster/websocket/WebSocket.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/cluster/websocket/WebSocket-IXWebSocket.cc b/src/cluster/websocket/WebSocket-IXWebSocket.cc index 36d4864236..3c575abf16 100644 --- a/src/cluster/websocket/WebSocket-IXWebSocket.cc +++ b/src/cluster/websocket/WebSocket-IXWebSocket.cc @@ -138,8 +138,13 @@ std::unique_ptr StartServer(std::unique_ptrtype == ix::WebSocketMessageType::Open ) { - dispatcher->QueueForProcessing( - WebSocketOpen{id, msg->openInfo.uri, msg->openInfo.protocol, std::move(ixws)}); + std::optional application_name; + auto it = msg->openInfo.headers.find("X-Application-Name"); + if ( it != msg->openInfo.headers.end() ) + application_name = it->second; + + dispatcher->QueueForProcessing(WebSocketOpen{id, msg->openInfo.uri, msg->openInfo.protocol, + std::move(application_name), std::move(ixws)}); } else if ( msg->type == ix::WebSocketMessageType::Message ) { dispatcher->QueueForProcessing(WebSocketMessage{id, msg->str}); diff --git a/src/cluster/websocket/WebSocket.h b/src/cluster/websocket/WebSocket.h index eff83c11f2..ab5cebcec0 100644 --- a/src/cluster/websocket/WebSocket.h +++ b/src/cluster/websocket/WebSocket.h @@ -125,6 +125,7 @@ struct WebSocketOpen { std::string id; std::string uri; std::string protocol; + std::optional application_name; std::shared_ptr wsc; };