diff options
author | Martin Willi <martin@revosec.ch> | 2014-05-28 15:55:34 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2014-06-04 15:53:12 +0200 |
commit | ef7bfadabb3440ea25ad3cb19ea1ff442fa0c6ce (patch) | |
tree | 799bf68bcbeae60d3eecfd5d16ffd1602bdc74ad /src | |
parent | f59e2b7bb3c7e5c72375a2a9faf44598944fc218 (diff) | |
download | strongswan-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.c | 12 |
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; |