shill: vpn: Implement a ProcessKiller singleton.
This class may be used to terminate and reap child processes
asynchronously and robustly. Also:
- Use ProcessKiller to kill spawned "openvpn" and "l2tpipsec_vpn"
processes.
- Delete the associated OpenVPN tunnel interfaces cleanly after the
openvpn process dies.
- Fix a somewhat harmless bug where shill was sending SIGTERM to
already dead VPN processes from child watch callbacks.
BUG=chromium-os:31535,chromium-os:31571
TEST=unit tests, tested on device
Change-Id: If15f08e76c51dac33a434551ef4ba11ca66d0401
Reviewed-on: https://gerrit.chromium.org/gerrit/24610
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/Makefile b/Makefile
index f7012af..48447c7 100644
--- a/Makefile
+++ b/Makefile
@@ -176,6 +176,7 @@
portal_detector.o \
power_manager.o \
power_manager_proxy.o \
+ process_killer.o \
profile.o \
profile_dbus_adaptor.o \
profile_dbus_property_exporter.o \
@@ -301,6 +302,7 @@
mock_portal_detector.o \
mock_power_manager.o \
mock_power_manager_proxy.o \
+ mock_process_killer.o \
mock_profile.o \
mock_property_store.o \
mock_proxy_factory.o \
@@ -336,6 +338,7 @@
openvpn_management_server_unittest.o \
portal_detector_unittest.o \
power_manager_unittest.o \
+ process_killer_unittest.o \
profile_dbus_property_exporter_unittest.o \
profile_unittest.o \
property_accessor_unittest.o \