summaryrefslogtreecommitdiffstats
path: root/app/watchdog.cpp
diff options
context:
space:
mode:
authorWilliam A. Kennington III <wak@google.com>2018-02-09 16:11:18 -0800
committerWilliam A. Kennington III <wak@google.com>2018-02-21 23:54:59 +0000
commitde14a027c06d93dadf05322529bec9d83f4cd181 (patch)
treea1d60808317a58d07c643889b8a4aa9c0572e4ef /app/watchdog.cpp
parent5257525db7dd97ffb8b5464df1b5b83df0297e7a (diff)
downloadphosphor-host-ipmid-de14a027c06d93dadf05322529bec9d83f4cd181.tar.gz
phosphor-host-ipmid-de14a027c06d93dadf05322529bec9d83f4cd181.zip
watchdog: Implement initialized using the new dbus interface
This makes it possible for the phosphor-host-ipmi or any other watchdog managing daemon to report to the caller that the watchdog was not configured if the phosphor-watchdog daemon restarts for any reason. Change-Id: Iae3a8554c2f5d1cb89368f3ce14b3d44922599c0 Signed-off-by: William A. Kennington III <wak@google.com>
Diffstat (limited to 'app/watchdog.cpp')
-rw-r--r--app/watchdog.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/app/watchdog.cpp b/app/watchdog.cpp
index d537683..f28ff80 100644
--- a/app/watchdog.cpp
+++ b/app/watchdog.cpp
@@ -28,6 +28,13 @@ ipmi_ret_t ipmi_app_watchdog_reset(
WatchdogService wd_service;
WatchdogService::Properties wd_prop = wd_service.getProperties();
+ // Notify the caller if we haven't initialized our timer yet
+ // so it can configure actions and timeouts
+ if (!wd_prop.initialized)
+ {
+ return IPMI_WDOG_CC_NOT_INIT;
+ }
+
// Reset the countdown to make sure we don't expire our timer
wd_service.setTimeRemaining(wd_prop.interval);
@@ -114,6 +121,9 @@ ipmi_ret_t ipmi_app_watchdog_set(
wd_service.setInterval(interval);
wd_service.setTimeRemaining(interval);
+ // Mark as initialized so that future resets behave correctly
+ wd_service.setInitialized(true);
+
return IPMI_CC_OK;
}
catch (const std::domain_error &)
OpenPOWER on IntegriCloud