diff options
author | Deepak Kodihalli <dkodihal@in.ibm.com> | 2018-08-23 02:19:58 -0500 |
---|---|---|
committer | Deepak Kodihalli <dkodihal@in.ibm.com> | 2018-08-29 03:38:49 -0500 |
commit | c49661925b0c59a4355aca6813a85d749c21e764 (patch) | |
tree | 65d4ecebf593f3d77cd428bf3397f7d99f762006 /phosphor-rsyslog-config/server-conf.cpp | |
parent | 9067c077034cd92e0498646b7d7a05fba890532c (diff) | |
download | phosphor-logging-c49661925b0c59a4355aca6813a85d749c21e764.tar.gz phosphor-logging-c49661925b0c59a4355aca6813a85d749c21e764.zip |
Add application to configure rsyslog
The application implements the xyz.openbmc_project.Network.Client D-Bus
interface to set a remote rsyslog server's address and port in the
rsyslog config file.
This lets us configure rsyslog to be able to stream out logs.
TODO: Exception handling and validation will be handled in subsequent
commits.
Change-Id: I8917daab3f0de1806d2f1aafe99cb3a872f19184
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
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 |