summaryrefslogtreecommitdiffstats
path: root/transporthandler.cpp
diff options
context:
space:
mode:
authorVernon Mauery <vernon.mauery@linux.intel.com>2019-03-13 13:11:25 -0700
committerVernon Mauery <vernon.mauery@linux.intel.com>2019-03-20 13:26:06 -0700
commit1b7f6f2d01b955cecb79eea8cc21f6fe387ce1f1 (patch)
treeb1f7d52984c4466c3637709d4a59a70f0fcce03a /transporthandler.cpp
parent3719c2fc50d33dbe407eb5351d94252406ccec9e (diff)
downloadphosphor-host-ipmid-1b7f6f2d01b955cecb79eea8cc21f6fe387ce1f1.tar.gz
phosphor-host-ipmid-1b7f6f2d01b955cecb79eea8cc21f6fe387ce1f1.zip
make ipmid respond to SIGTERM and SIGINT for clean shutdown
On some systems ipmid was not responding to SIGTERM so systemd could not shut it down in a clean manner, resorting to SIGKILL after a long timeout. This adds code to respond to SIGTERM and SIGINT and safely unwind all the provider libraries on exit. Tested-by: running ipmid; in another shell, and running 'killall -15 ipmid' or 'killall -2 ipmid' to send SIGTERM or SIGINT and watch that ipmid shuts down in a controlled and timely manner. Change-Id: I690846796523bebea1a08845c0d17e1df2a94fee Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
Diffstat (limited to 'transporthandler.cpp')
-rw-r--r--transporthandler.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/transporthandler.cpp b/transporthandler.cpp
index 0b5a00c..24fea47 100644
--- a/transporthandler.cpp
+++ b/transporthandler.cpp
@@ -37,7 +37,8 @@ namespace filesystem = std::experimental::filesystem;
#error filesystem not available
#endif
-extern std::unique_ptr<phosphor::Timer> networkTimer;
+// timer for network changes
+std::unique_ptr<phosphor::Timer> networkTimer = nullptr;
const int SIZE_MAC = 18; // xx:xx:xx:xx:xx:xx
constexpr auto ipv4Protocol = "xyz.openbmc_project.Network.IP.Protocol.IPv4";
OpenPOWER on IntegriCloud