diff options
-rw-r--r-- | phosphor-rsyslog-config/Makefile.am | 3 | ||||
-rw-r--r-- | phosphor-rsyslog-config/server-conf.cpp | 22 | ||||
-rw-r--r-- | test/remote_logging_test_config.cpp | 21 |
3 files changed, 39 insertions, 7 deletions
diff --git a/phosphor-rsyslog-config/Makefile.am b/phosphor-rsyslog-config/Makefile.am index 806e30b..438a745 100644 --- a/phosphor-rsyslog-config/Makefile.am +++ b/phosphor-rsyslog-config/Makefile.am @@ -15,7 +15,8 @@ phosphor_rsyslog_conf_LDADD = \ phosphor_rsyslog_conf_LDFLAGS = \ $(SDBUSPLUS_LIBS) \ - $(PHOSPHOR_DBUS_INTERFACES_LIBS) + $(PHOSPHOR_DBUS_INTERFACES_LIBS) \ + -lstdc++fs phosphor_rsyslog_conf_CXXFLAGS = \ $(SDBUSPLUS_CFLAGS) \ diff --git a/phosphor-rsyslog-config/server-conf.cpp b/phosphor-rsyslog-config/server-conf.cpp index 836e83b..e8da82e 100644 --- a/phosphor-rsyslog-config/server-conf.cpp +++ b/phosphor-rsyslog-config/server-conf.cpp @@ -15,6 +15,19 @@ #include <string> +#if __has_include(<filesystem>) +#include <filesystem> +#elif __has_include(<experimental/filesystem>) +#include <experimental/filesystem> +namespace std +{ +// splice experimental::filesystem into std +namespace filesystem = std::experimental::filesystem; +} // namespace std +#else +#error filesystem not available +#endif + namespace phosphor { namespace rsyslog_config @@ -23,6 +36,7 @@ namespace rsyslog_config namespace utils = phosphor::rsyslog_utils; using namespace phosphor::logging; using namespace sdbusplus::xyz::openbmc_project::Common::Error; +namespace fs = std::filesystem; std::string Server::address(std::string value) { @@ -103,8 +117,7 @@ void Server::writeConfig(const std::string& serverAddress, uint16_t serverPort, } else // this is a disable request { - // write '#*.* @@remote-host:port' - stream << "#*.* @@remote-host:port"; + fs::remove(filePath); } restart(); @@ -130,6 +143,11 @@ bool Server::addressValid(const std::string& address) void Server::restore(const char* filePath) { + if (!fs::exists(filePath)) + { + return; + } + std::fstream stream(filePath, std::fstream::in); std::string line; diff --git a/test/remote_logging_test_config.cpp b/test/remote_logging_test_config.cpp index a4c6207..b34a43f 100644 --- a/test/remote_logging_test_config.cpp +++ b/test/remote_logging_test_config.cpp @@ -3,6 +3,19 @@ #include <fstream> #include <string> +#if __has_include(<filesystem>) +#include <filesystem> +#elif __has_include(<experimental/filesystem>) +#include <experimental/filesystem> +namespace std +{ +// splice experimental::filesystem into std +namespace filesystem = std::experimental::filesystem; +} // namespace std +#else +#error filesystem not available +#endif + namespace phosphor { namespace logging @@ -21,13 +34,13 @@ std::string getConfig(const char* filePath) TEST_F(TestRemoteLogging, testOnlyAddress) { config->address("1.1.1.1"); - EXPECT_EQ(getConfig(configFilePath.c_str()), "#*.* @@remote-host:port"); + EXPECT_EQ(fs::exists(configFilePath.c_str()), false); } TEST_F(TestRemoteLogging, testOnlyPort) { config->port(100); - EXPECT_EQ(getConfig(configFilePath.c_str()), "#*.* @@remote-host:port"); + EXPECT_EQ(fs::exists(configFilePath.c_str()), false); } TEST_F(TestRemoteLogging, testGoodConfig) @@ -43,7 +56,7 @@ TEST_F(TestRemoteLogging, testClearAddress) config->port(100); EXPECT_EQ(getConfig(configFilePath.c_str()), "*.* @@1.1.1.1:100"); config->address(""); - EXPECT_EQ(getConfig(configFilePath.c_str()), "#*.* @@remote-host:port"); + EXPECT_EQ(fs::exists(configFilePath.c_str()), false); } TEST_F(TestRemoteLogging, testClearPort) @@ -52,7 +65,7 @@ TEST_F(TestRemoteLogging, testClearPort) config->port(100); EXPECT_EQ(getConfig(configFilePath.c_str()), "*.* @@1.1.1.1:100"); config->port(0); - EXPECT_EQ(getConfig(configFilePath.c_str()), "#*.* @@remote-host:port"); + EXPECT_EQ(fs::exists(configFilePath.c_str()), false); } } // namespace test |