summaryrefslogtreecommitdiffstats
path: root/phosphor-rsyslog-config/server-conf.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'phosphor-rsyslog-config/server-conf.hpp')
-rw-r--r--phosphor-rsyslog-config/server-conf.hpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/phosphor-rsyslog-config/server-conf.hpp b/phosphor-rsyslog-config/server-conf.hpp
index edab113..8660416 100644
--- a/phosphor-rsyslog-config/server-conf.hpp
+++ b/phosphor-rsyslog-config/server-conf.hpp
@@ -14,6 +14,7 @@ namespace rsyslog_config
using namespace phosphor::logging;
using NetworkClient = sdbusplus::xyz::openbmc_project::Network::server::Client;
using Iface = sdbusplus::server::object::object<NetworkClient>;
+namespace sdbusRule = sdbusplus::bus::match::rules;
/** @class Server
* @brief Configuration for rsyslog server
@@ -40,7 +41,13 @@ class Server : public Iface
const std::string& path,
const char* filePath) :
Iface(bus, path.c_str(), true),
- configFilePath(filePath)
+ configFilePath(filePath),
+ hostnameChange(
+ bus,
+ sdbusRule::propertiesChanged(
+ "/org/freedesktop/hostname1", "org.freedesktop.hostname1"),
+ std::bind(std::mem_fn(&Server::hostnameChanged),
+ this, std::placeholders::_1))
{
try
{
@@ -97,6 +104,16 @@ class Server : public Iface
void restore(const char* filePath);
std::string configFilePath{};
+
+ /** @brief React to hostname change
+ * @param[in] msg - sdbusplus message
+ */
+ void hostnameChanged(sdbusplus::message::message& msg)
+ {
+ restart();
+ }
+
+ sdbusplus::bus::match_t hostnameChange;
};
} // namespace rsyslog_config
OpenPOWER on IntegriCloud