From 6892366c14253213675732c5d4bf8b2c0d338651 Mon Sep 17 00:00:00 2001 From: Ramin Yaghoubzadeh <ryaghoubzadeh@uni-bielefeld.de> Date: Thu, 7 Jan 2016 12:49:20 +0100 Subject: [PATCH] C++: --rsb-host and --rsb-port default parameters for ipaaca binaries --- ipaacalib/cpp/include/ipaaca/ipaaca.h | 5 +++++ ipaacalib/cpp/src/ipaaca-cmdline-parser.cc | 10 ++++++++++ ipaacalib/cpp/src/ipaaca-internal.cc | 10 ++++++++++ ipaacalib/cpp/src/ipaaca.cc | 3 +++ 4 files changed, 28 insertions(+) diff --git a/ipaacalib/cpp/include/ipaaca/ipaaca.h b/ipaacalib/cpp/include/ipaaca/ipaaca.h index df04ce4..1dabb9b 100644 --- a/ipaacalib/cpp/include/ipaaca/ipaaca.h +++ b/ipaacalib/cpp/include/ipaaca/ipaaca.h @@ -209,6 +209,11 @@ IPAACA_MEMBER_VAR_EXPORT extern std::string __ipaaca_static_option_default_chann /// Current console log level (defaults to warning), one of: IPAACA_LOG_LEVEL_CRITICAL, IPAACA_LOG_LEVEL_ERROR, IPAACA_LOG_LEVEL_WARNING, IPAACA_LOG_LEVEL_INFO, IPAACA_LOG_LEVEL_DEBUG, IPAACA_LOG_LEVEL_NONE IPAACA_MEMBER_VAR_EXPORT extern unsigned int __ipaaca_static_option_log_level; +/// RSB host to connect to (defaults to "" = do not set, use global config) +IPAACA_MEMBER_VAR_EXPORT extern std::string __ipaaca_static_option_rsb_host; +/// RSB port to connect to (defaults to "" = do not set, use global config) +IPAACA_MEMBER_VAR_EXPORT extern std::string __ipaaca_static_option_rsb_port; + IPAACA_MEMBER_VAR_EXPORT Lock& logger_lock(); #ifdef WIN32 diff --git a/ipaacalib/cpp/src/ipaaca-cmdline-parser.cc b/ipaacalib/cpp/src/ipaaca-cmdline-parser.cc index a5fe8d5..32742dd 100644 --- a/ipaacalib/cpp/src/ipaaca-cmdline-parser.cc +++ b/ipaacalib/cpp/src/ipaaca-cmdline-parser.cc @@ -90,6 +90,8 @@ void CommandLineParser::initialize_parser_defaults() add_option("ipaaca-default-channel", 0, true, "default"); add_option("ipaaca-enable-logging", 0, true, "WARNING"); add_option("rsb-enable-logging", 0, true, "ERROR"); + add_option("rsb-host", 0, true, ""); // empty = don't set + add_option("rsb-port", 0, true, ""); // empty = don't set } } @@ -108,6 +110,14 @@ bool CommandLineParser::consume_library_option(const std::string& name, bool exp std::string newch = optarg; IPAACA_DEBUG("Setting default channel " << newch) __ipaaca_static_option_default_channel = newch; + } else if (name=="rsb-host") { + std::string newhost = optarg; + IPAACA_DEBUG("Setting RSB host " << newhost) + __ipaaca_static_option_rsb_host = newhost; + } else if (name=="rsb-port") { + std::string newport = optarg; + IPAACA_DEBUG("Setting RSB port " << newport) + __ipaaca_static_option_rsb_port = newport; } else if (name=="ipaaca-enable-logging") { std::string level(optarg); if ((level=="NONE") || (level=="SILENT")) { diff --git a/ipaacalib/cpp/src/ipaaca-internal.cc b/ipaacalib/cpp/src/ipaaca-internal.cc index 6ae283c..2a9399e 100644 --- a/ipaacalib/cpp/src/ipaaca-internal.cc +++ b/ipaacalib/cpp/src/ipaaca-internal.cc @@ -97,6 +97,16 @@ IPAACA_EXPORT void Initializer::dump_current_default_config()//{{{ }//}}} IPAACA_EXPORT void Initializer::auto_configure_rsb()//{{{ { + // set RSB host and port iff provided using cmdline arguments + if (__ipaaca_static_option_rsb_host!="") { + IPAACA_INFO("Overriding RSB host with " << __ipaaca_static_option_rsb_host) + setenv("RSB_TRANSPORT_SPREAD_HOST", __ipaaca_static_option_rsb_host.c_str(), 1); + } + if (__ipaaca_static_option_rsb_port!="") { + IPAACA_INFO("Overriding RSB port with " << __ipaaca_static_option_rsb_port) + setenv("RSB_TRANSPORT_SPREAD_PORT", __ipaaca_static_option_rsb_port.c_str(), 1); + } + const char* plugin_path = getenv("RSB_PLUGINS_CPP_PATH"); if (!plugin_path) { #ifdef WIN32 diff --git a/ipaacalib/cpp/src/ipaaca.cc b/ipaacalib/cpp/src/ipaaca.cc index 76ee5a5..41bea5e 100644 --- a/ipaacalib/cpp/src/ipaaca.cc +++ b/ipaacalib/cpp/src/ipaaca.cc @@ -76,6 +76,9 @@ IPAACA_EXPORT std::string __ipaaca_static_option_default_payload_type("JSON"); IPAACA_EXPORT std::string __ipaaca_static_option_default_channel("default"); IPAACA_EXPORT unsigned int __ipaaca_static_option_log_level(IPAACA_LOG_LEVEL_WARNING); +IPAACA_EXPORT std::string __ipaaca_static_option_rsb_host(""); +IPAACA_EXPORT std::string __ipaaca_static_option_rsb_port(""); + } // of namespace ipaaca -- GitLab