shill: Disconnect services before exiting.
Add SIGINT/SIGTERM handler to gracefully exit the main loop and add
ability to disconnect from all services during the clean up.
BUG=chromium-os:19997
TEST=Unit tests, WiFiManager, manually run shill and Control-C
Change-Id: Ida02ade729af624ef0ea4e32e3fb80436aaf870b
Reviewed-on: https://gerrit.chromium.org/gerrit/11092
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
diff --git a/manager.cc b/manager.cc
index 584fb92..4bd3be8 100644
--- a/manager.cc
+++ b/manager.cc
@@ -137,6 +137,12 @@
(*it)->Save();
}
+ vector<ServiceRefPtr>::iterator services_it;
+ for (services_it = services_.begin(); services_it != services_.end();
+ ++services_it) {
+ (*services_it)->Disconnect();
+ }
+
adaptor_->UpdateRunning();
modem_info_.Stop();
device_info_.Stop();