From ef7bfadabb3440ea25ad3cb19ea1ff442fa0c6ce Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Wed, 28 May 2014 15:55:34 +0200 Subject: [PATCH] charon-svc: Check if daemon has been initialized before invoking shutdown alert --- src/charon-svc/charon-svc.c | 12 ++++++++++-- 1 file 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;