summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phosphor-rsyslog-config/Makefile.am3
-rw-r--r--phosphor-rsyslog-config/server-conf.cpp22
-rw-r--r--test/remote_logging_test_config.cpp21
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
OpenPOWER on IntegriCloud