summaryrefslogtreecommitdiffstats
path: root/phosphor-rsyslog-config/server-conf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'phosphor-rsyslog-config/server-conf.cpp')
-rw-r--r--phosphor-rsyslog-config/server-conf.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/phosphor-rsyslog-config/server-conf.cpp b/phosphor-rsyslog-config/server-conf.cpp
new file mode 100644
index 0000000..16c792d
--- /dev/null
+++ b/phosphor-rsyslog-config/server-conf.cpp
@@ -0,0 +1,42 @@
+#include "server-conf.hpp"
+#include "utils.hpp"
+#include <fstream>
+
+namespace phosphor
+{
+namespace rsyslog_config
+{
+
+namespace utils = phosphor::rsyslog_utils;
+
+std::string Server::address(std::string value)
+{
+ writeConfig(value, port(), configFilePath.c_str());
+ auto result = NetworkClient::address(value);
+ return result;
+}
+
+uint16_t Server::port(uint16_t value)
+{
+ writeConfig(address(), value, configFilePath.c_str());
+ auto result = NetworkClient::port(value);
+ return result;
+}
+
+void Server::writeConfig(
+ const std::string& serverAddress,
+ uint16_t serverPort,
+ const char* filePath)
+{
+ if (serverPort && !serverAddress.empty())
+ {
+ std::fstream stream(filePath, std::fstream::out);
+ // write '*.* @@remote-host:port'
+ stream << "*.* @@" << serverAddress << ":" << serverPort;
+
+ utils::restart();
+ }
+}
+
+} // namespace rsyslog_config
+} // namespace phosphor
OpenPOWER on IntegriCloud