diff options
Diffstat (limited to 'phosphor-rsyslog-config/server-conf.cpp')
-rw-r--r-- | phosphor-rsyslog-config/server-conf.cpp | 42 |
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 |