diff --git a/receiver/src/main.cpp b/receiver/src/main.cpp index 4ed53ff6bb7dfb702631c326bb8a8e2a2fab5890..50912953b84786a39d9de47816388d20b2fcdae3 100644 --- a/receiver/src/main.cpp +++ b/receiver/src/main.cpp @@ -22,7 +22,7 @@ asapo::Error ReadConfigFile(int argc, char* argv[]) { return factory.SetConfig(argv[1]); } -void AddDataServers(const asapo::ReceiverConfig* config, const asapo::SharedCache& cache, +void AddDataServers(const asapo::ReceiverConfig* config, const asapo::SharedCache&, const asapo::SharedReceiverMonitoringClient& monitoring, std::vector<asapo::RdsNetServerPtr>& netServers) { auto logger = asapo::GetDefaultReceiverDataServerLogger(); diff --git a/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp b/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp index 53985f4849e84640e437691ee675c24a6ccb5dac..388fd8641c800638bd47ad464fa168a135fe6312 100644 --- a/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp +++ b/receiver/src/receiver_data_server/request_handler/receiver_data_server_request_handler.cpp @@ -2,7 +2,7 @@ #include "../receiver_data_server_error.h" #include "asapo/common/internal/version.h" -#include <regex> +#include <sstream> namespace asapo { @@ -148,14 +148,25 @@ void ReceiverDataServerRequestHandler::HandleValidRequest(const ReceiverDataServ } } +// https://stackoverflow.com/a/46931770/ +std::vector<std::string> split(const std::string& s, const std::string& delimiter) { + size_t pos_start = 0, pos_end, delim_len = delimiter.length(); + std::string token; + std::vector<std::string> res; + + while ((pos_end = s.find (delimiter, pos_start)) != std::string::npos) { + token = s.substr (pos_start, pos_end - pos_start); + pos_start = pos_end + delim_len; + res.push_back (token); + } + + res.push_back (s.substr (pos_start)); + return res; +} std::unique_ptr<RequestSenderDetails> ReceiverDataServerRequestHandler::ExtractMonitoringInfoFromRequest(const GenericRequest* request) { std::string details(request->header.stream); - std::regex token("§"); - std::vector<std::string> detailsParts { - std::sregex_token_iterator(details.begin(), details.end(), token, -1), - std::sregex_token_iterator() - }; + std::vector<std::string> detailsParts = split(details, "§"); if (detailsParts.size() != 5) { return nullptr;