aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2014-05-28 15:55:34 +0200
committerMartin Willi <martin@revosec.ch>2014-06-04 15:53:12 +0200
commitef7bfadabb3440ea25ad3cb19ea1ff442fa0c6ce (patch)
tree799bf68bcbeae60d3eecfd5d16ffd1602bdc74ad /src
parentf59e2b7bb3c7e5c72375a2a9faf44598944fc218 (diff)
downloadstrongswan-ef7bfadabb3440ea25ad3cb19ea1ff442fa0c6ce.tar.bz2
strongswan-ef7bfadabb3440ea25ad3cb19ea1ff442fa0c6ce.tar.xz
charon-svc: Check if daemon has been initialized before invoking shutdown alert
Diffstat (limited to 'src')
-rw-r--r--src/charon-svc/charon-svc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/charon-svc/charon-svc.c b/src/charon-svc/charon-svc.c
index c21fc1ff5..d4fc83c48 100644
--- a/src/charon-svc/charon-svc.c
+++ b/src/charon-svc/charon-svc.c
@@ -170,7 +170,11 @@ static BOOL console_handler(DWORD dwCtrlType)
case CTRL_BREAK_EVENT:
case CTRL_CLOSE_EVENT:
DBG1(DBG_DMN, "application is stopping, cleaning up");
- charon->bus->alert(charon->bus, ALERT_SHUTDOWN_SIGNAL, dwCtrlType);
+ if (status.dwCurrentState == SERVICE_RUNNING)
+ {
+ charon->bus->alert(charon->bus, ALERT_SHUTDOWN_SIGNAL,
+ dwCtrlType);
+ }
/* signal main thread to clean up */
SetEvent(event);
return TRUE;
@@ -204,7 +208,11 @@ static DWORD service_handler(DWORD dwControl, DWORD dwEventType,
case SERVICE_CONTROL_STOP:
case SERVICE_CONTROL_SHUTDOWN:
DBG1(DBG_DMN, "service is stopping, cleaning up");
- charon->bus->alert(charon->bus, ALERT_SHUTDOWN_SIGNAL, dwControl);
+ if (status.dwCurrentState == SERVICE_RUNNING)
+ {
+ charon->bus->alert(charon->bus, ALERT_SHUTDOWN_SIGNAL,
+ dwControl);
+ }
/* signal main thread to clean up */
SetEvent(event);
return NO_ERROR;