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.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/phosphor-rsyslog-config/server-conf.cpp b/phosphor-rsyslog-config/server-conf.cpp
index 1b46965..0b5bc62 100644
--- a/phosphor-rsyslog-config/server-conf.cpp
+++ b/phosphor-rsyslog-config/server-conf.cpp
@@ -2,7 +2,6 @@
#include "utils.hpp"
#include "xyz/openbmc_project/Common/error.hpp"
#include <fstream>
-#include <phosphor-logging/log.hpp>
#include <phosphor-logging/elog.hpp>
#if __has_include("../../usr/include/phosphor-logging/elog-errors.hpp")
#include "../../usr/include/phosphor-logging/elog-errors.hpp"
@@ -128,5 +127,28 @@ bool Server::addressValid(const std::string& address)
return true;
}
+void Server::restore(const char* filePath)
+{
+ std::fstream stream(filePath, std::fstream::in);
+ std::string line;
+
+ getline(stream, line);
+
+ // Ignore if line is commented
+ if ('#' != line.at(0))
+ {
+ auto pos = line.find(':');
+ if (pos != std::string::npos)
+ {
+ //"*.* @@<address>:<port>"
+ constexpr auto start = 6; // Skip "*.* @@"
+ auto serverAddress = line.substr(start, pos - start);
+ auto serverPort = line.substr(pos + 1);
+ NetworkClient::address(std::move(serverAddress));
+ NetworkClient::port(std::stoul(serverPort));
+ }
+ }
+}
+
} // namespace rsyslog_config
} // namespace phosphor
OpenPOWER on IntegriCloud