Keep Windows happy.

This commit is contained in:
Guus Sliepen 2003-08-03 12:38:18 +00:00
parent 7bed2a7099
commit 3671ed806d

View file

@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: process.c,v 1.1.2.61 2003/08/02 20:50:38 guus Exp $ $Id: process.c,v 1.1.2.62 2003/08/03 12:38:18 guus Exp $
*/ */
#include "system.h" #include "system.h"
@ -165,6 +165,11 @@ DWORD WINAPI controlhandler(DWORD request, DWORD type, LPVOID boe, LPVOID bah) {
return ERROR_CALL_NOT_IMPLEMENTED; return ERROR_CALL_NOT_IMPLEMENTED;
} }
if(!running) {
status.dwCurrentState = SERVICE_STOP_PENDING;
SetServiceStatus(statushandle, &status);
}
return NO_ERROR; return NO_ERROR;
} }
@ -175,7 +180,6 @@ VOID WINAPI run_service(DWORD argc, LPTSTR* argv)
status.dwServiceType = SERVICE_WIN32; status.dwServiceType = SERVICE_WIN32;
status.dwCurrentState = SERVICE_RUNNING;
status.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; status.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
status.dwWin32ExitCode = 0; status.dwWin32ExitCode = 0;
status.dwServiceSpecificExitCode = 0; status.dwServiceSpecificExitCode = 0;
@ -188,13 +192,16 @@ VOID WINAPI run_service(DWORD argc, LPTSTR* argv)
logger(LOG_ERR, _("System call `%s' failed: %s"), "RegisterServiceCtrlHandlerEx", winerror(GetLastError())); logger(LOG_ERR, _("System call `%s' failed: %s"), "RegisterServiceCtrlHandlerEx", winerror(GetLastError()));
err = 1; err = 1;
} else { } else {
status.dwCurrentState = SERVICE_START_PENDING;
SetServiceStatus(statushandle, &status);
status.dwCurrentState = SERVICE_RUNNING;
SetServiceStatus(statushandle, &status); SetServiceStatus(statushandle, &status);
err = main2(argc, argv); err = main2(argc, argv);
status.dwCurrentState = SERVICE_STOPPED; status.dwCurrentState = SERVICE_STOPPED;
status.dwWin32ExitCode = err; //status.dwWin32ExitCode = err;
SetServiceStatus(statushandle, &status); SetServiceStatus(statushandle, &status);
} }