From: Martin Willi Date: Wed, 28 May 2014 13:55:34 +0000 (+0200) Subject: charon-svc: Check if daemon has been initialized before invoking shutdown alert X-Git-Tag: 5.2.0dr6~24^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef7bfadabb3440ea25ad3cb19ea1ff442fa0c6ce;p=thirdparty%2Fstrongswan.git charon-svc: Check if daemon has been initialized before invoking shutdown alert --- diff --git a/src/charon-svc/charon-svc.c b/src/charon-svc/charon-svc.c index c21fc1ff55..d4fc83c48b 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;