From 6d4601251f6c09dc492a97755a4c73c88680f0b2 Mon Sep 17 00:00:00 2001 From: Carsten Patzke <carsten.patzke@desy.de> Date: Thu, 16 Apr 2020 19:34:19 +0200 Subject: [PATCH] [Receiver] Added new config entry "NetworkMode" --- receiver/src/main.cpp | 14 ++++++++++++-- receiver/src/receiver_config.cpp | 1 + .../net_server/rds_fabric_server.cpp | 2 ++ .../net_server/rds_tcp_server.cpp | 4 ++-- .../receiver_data_server_config.h | 1 + 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/receiver/src/main.cpp b/receiver/src/main.cpp index e09fefd4d..01e44e8c4 100644 --- a/receiver/src/main.cpp +++ b/receiver/src/main.cpp @@ -10,6 +10,7 @@ #include "receiver_data_server/receiver_data_server.h" #include "receiver_data_server/net_server/rds_tcp_server.h" +#include "receiver_data_server/net_server/rds_fabric_server.h" asapo::Error ReadConfigFile(int argc, char* argv[]) { if (argc != 2) { @@ -22,8 +23,17 @@ asapo::Error ReadConfigFile(int argc, char* argv[]) { void AddDataServers(const asapo::ReceiverConfig* config, asapo::SharedCache cache, std::vector<asapo::RdsNetServerPtr>& netServers) { - // Add TCP - netServers.emplace_back(new asapo::RdsTcpServer("0.0.0.0:" + std::to_string(config->dataserver.listen_port))); + auto ds_config = config->dataserver; + auto networkingMode = ds_config.network_mode; + if (std::find(networkingMode.begin(), networkingMode.end(), "tcp") != networkingMode.end()) { + // Add TCP + netServers.emplace_back(new asapo::RdsTcpServer("0.0.0.0:" + std::to_string(ds_config.listen_port))); + } + + if (std::find(networkingMode.begin(), networkingMode.end(), "fabric") != networkingMode.end()) { + // Add Fabric + netServers.emplace_back(new asapo::RdsFabricServer(ds_config.advertise_uri)); + } } std::vector<std::thread> StartDataServers(const asapo::ReceiverConfig* config, asapo::SharedCache cache, diff --git a/receiver/src/receiver_config.cpp b/receiver/src/receiver_config.cpp index f0dffeef0..a3334cbe2 100644 --- a/receiver/src/receiver_config.cpp +++ b/receiver/src/receiver_config.cpp @@ -35,6 +35,7 @@ Error ReceiverConfigFactory::SetConfig(std::string file_name) { (err = parser.GetUInt64("AuthorizationInterval", &config.authorization_interval_ms)) || (err = parser.GetString("PerformanceDbName", &config.performance_db_name)) || (err = parser.Embedded("DataServer").GetString("AdvertiseURI", &config.dataserver.advertise_uri)) || + (err = parser.Embedded("DataServer").GetArrayString("NetworkMode", &config.dataserver.network_mode)) || (err = parser.GetString("LogLevel", &log_level)); if (err) { diff --git a/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp b/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp index 43fa3b758..a559456e5 100644 --- a/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp +++ b/receiver/src/receiver_data_server/net_server/rds_fabric_server.cpp @@ -29,6 +29,8 @@ Error RdsFabricServer::Initialize() { return err; } + log__->Info("Started Fabric ReceiverDataServer at '" + server__->GetAddress() + "'"); + return err; } diff --git a/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp b/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp index 8d681e9f4..14c6cc84c 100644 --- a/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp +++ b/receiver/src/receiver_data_server/net_server/rds_tcp_server.cpp @@ -14,9 +14,9 @@ Error RdsTcpServer::Initialize() { if (master_socket_ == kDisconnectedSocketDescriptor) { master_socket_ = io__->CreateAndBindIPTCPSocketListener(address_, kMaxPendingConnections, &err); if (!err) { - log__->Info("data server listening on " + address_); + log__->Info("Started TCP ReceiverDataServer at '" + address_ + "'"); } else { - log__->Error("dataserver cannot listen on " + address_ + ": " + err->Explain()); + log__->Error("TCP ReceiverDataServer cannot listen on " + address_ + ": " + err->Explain()); } } else { err = TextError("Server was already initialized"); diff --git a/receiver/src/receiver_data_server/receiver_data_server_config.h b/receiver/src/receiver_data_server/receiver_data_server_config.h index 46a3594dd..208c87d96 100644 --- a/receiver/src/receiver_data_server/receiver_data_server_config.h +++ b/receiver/src/receiver_data_server/receiver_data_server_config.h @@ -10,6 +10,7 @@ struct ReceiverDataServerConfig { uint64_t nthreads = 0; std::string tag; std::string advertise_uri; + std::vector<std::string> network_mode; }; } -- GitLab