RHSrvAny.c was using a mixture of 4 space indentation, and tabs with a width of
4. This commit rationalises the whitespace to use only 4 space indentation, and
removes trailing whitespace.
---
RHSrvAny/RHSrvAny.c | 537 ++++++++++++++++++++++++++--------------------------
RHSrvAny/RHSrvAny.h | 1 -
RHSrvAny/resource.h | 2 +-
3 files changed, 269 insertions(+), 271 deletions(-)
diff --git a/RHSrvAny/RHSrvAny.c b/RHSrvAny/RHSrvAny.c
index 3d4c3b4..a28f973 100644
--- a/RHSrvAny/RHSrvAny.c
+++ b/RHSrvAny/RHSrvAny.c
@@ -1,4 +1,3 @@
-/* -*- Mode: C; tab-width: 4 -*- */
/* RHSrvAny - Turn any Windows program into a Windows service.
* Written by Yuval Kashtan.
* Copyright (C) 2010 Red Hat Inc.
@@ -42,82 +41,82 @@
#define SVCNAME TEXT("RHSrvAny")
-SERVICE_STATUS gSvcStatus;
+SERVICE_STATUS gSvcStatus;
HANDLE ghSvcStopEvent = NULL;
-SERVICE_STATUS_HANDLE gSvcStatusHandle;
+SERVICE_STATUS_HANDLE gSvcStatusHandle;
VOID SvcInstall (void);
-VOID WINAPI SvcCtrlHandler (DWORD);
-VOID WINAPI SvcMain (DWORD, LPTSTR *);
+VOID WINAPI SvcCtrlHandler (DWORD);
+VOID WINAPI SvcMain (DWORD, LPTSTR *);
VOID SvcReportEvent (LPTSTR);
-VOID SvcInit (DWORD, LPTSTR *);
+VOID SvcInit (DWORD, LPTSTR *);
VOID ReportSvcStatus (DWORD, DWORD, DWORD);
int
main (int argc, char **a_argv)
-{
+{
/* For compatibility with MinGW, see:
-
http://demosten-eng.blogspot.com/2008/08/mingw-and-unicode-support.html */
+
http://demosten-eng.blogspot.com/2008/08/mingw-and-unicode-support.html */
TCHAR **argv;
- argv = CommandLineToArgvW (GetCommandLineW (), &argc);
-
- SERVICE_TABLE_ENTRY DispatchTable[] = {
- {
- SVCNAME,
- (LPSERVICE_MAIN_FUNCTION) SvcMain
- },
- { NULL, NULL }
- };
-
- if(
- lstrcmpi(
- argv[1],
- TEXT("install")
- ) == 0
- ) {
- SvcInstall();
- return EXIT_SUCCESS;
- }
-
- if (!StartServiceCtrlDispatcher( DispatchTable ))
- {
- SvcReportEvent(TEXT("StartServiceCtrlDispatcher"));
- return EXIT_FAILURE;
+ argv = CommandLineToArgvW (GetCommandLineW (), &argc);
+
+ SERVICE_TABLE_ENTRY DispatchTable[] = {
+ {
+ SVCNAME,
+ (LPSERVICE_MAIN_FUNCTION) SvcMain
+ },
+ { NULL, NULL }
+ };
+
+ if(
+ lstrcmpi(
+ argv[1],
+ TEXT("install")
+ ) == 0
+ ) {
+ SvcInstall();
+ return EXIT_SUCCESS;
}
- return EXIT_SUCCESS;
-}
+ if (!StartServiceCtrlDispatcher( DispatchTable ))
+ {
+ SvcReportEvent(TEXT("StartServiceCtrlDispatcher"));
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}
-VOID
+VOID
SvcInstall() {
- SC_HANDLE schSCManager;
- SC_HANDLE schService;
- TCHAR szPath[MAX_PATH];
-
- if (
- !GetModuleFileName(
- NULL,
- szPath,
- MAX_PATH
- )
- ) {
- printf("Cannot install service (%d)\n", (int) GetLastError());
- return;
- }
-
- schSCManager = OpenSCManager(
- NULL,
- NULL,
- SC_MANAGER_ALL_ACCESS
- );
-
+ SC_HANDLE schSCManager;
+ SC_HANDLE schService;
+ TCHAR szPath[MAX_PATH];
+
+ if (
+ !GetModuleFileName(
+ NULL,
+ szPath,
+ MAX_PATH
+ )
+ ) {
+ printf("Cannot install service (%d)\n", (int) GetLastError());
+ return;
+ }
+
+ schSCManager = OpenSCManager(
+ NULL,
+ NULL,
+ SC_MANAGER_ALL_ACCESS
+ );
+
if (NULL == schSCManager) {
- printf("OpenSCManager failed (%d)\n", (int) GetLastError());
- return;
+ printf("OpenSCManager failed (%d)\n", (int) GetLastError());
+ return;
}
- schService = CreateService (
+ schService = CreateService (
schSCManager,
SVCNAME,
SVCNAME,
@@ -131,212 +130,212 @@ SvcInstall() {
NULL,
NULL,
NULL
- );
-
+ );
+
if (schService == NULL) {
printf (
- "CreateService failed (%d)\n",
- (int) GetLastError()
- );
+ "CreateService failed (%d)\n",
+ (int) GetLastError()
+ );
CloseServiceHandle (schSCManager);
return;
}
- else {
- printf("Service installed successfully\n");
- }
+ else {
+ printf("Service installed successfully\n");
+ }
- CloseServiceHandle (schService);
+ CloseServiceHandle (schService);
CloseServiceHandle (schSCManager);
}
-VOID
-WINAPI
+VOID
+WINAPI
SvcMain (
- DWORD dwArgc,
- LPTSTR *lpszArgv
+ DWORD dwArgc,
+ LPTSTR *lpszArgv
) {
- gSvcStatusHandle = RegisterServiceCtrlHandler (
- SVCNAME,
- SvcCtrlHandler
- );
-
- if (!gSvcStatusHandle) {
- SvcReportEvent(TEXT("RegisterServiceCtrlHandler"));
- return;
- }
-
- gSvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
- gSvcStatus.dwServiceSpecificExitCode = 0;
-
- ReportSvcStatus (
- SERVICE_START_PENDING,
- NO_ERROR,
- 3000
- );
-
- SvcInit (
- dwArgc,
- lpszArgv
- );
+ gSvcStatusHandle = RegisterServiceCtrlHandler (
+ SVCNAME,
+ SvcCtrlHandler
+ );
+
+ if (!gSvcStatusHandle) {
+ SvcReportEvent(TEXT("RegisterServiceCtrlHandler"));
+ return;
+ }
+
+ gSvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
+ gSvcStatus.dwServiceSpecificExitCode = 0;
+
+ ReportSvcStatus (
+ SERVICE_START_PENDING,
+ NO_ERROR,
+ 3000
+ );
+
+ SvcInit (
+ dwArgc,
+ lpszArgv
+ );
}
BOOL
RegistryRead (
- HKEY hHive,
- wchar_t *szKeyPath,
- wchar_t *szValue,
- wchar_t *szData,
- DWORD *nSize
+ HKEY hHive,
+ wchar_t *szKeyPath,
+ wchar_t *szValue,
+ wchar_t *szData,
+ DWORD *nSize
) {
- HKEY hKey;
- long lSuccess;
-
- lSuccess = RegOpenKey (
- hHive,
- szKeyPath,
- &hKey
- );
-
- if (lSuccess == ERROR_SUCCESS) {
- lSuccess = RegQueryValueEx (
- hKey,
- szValue,
- NULL,
- NULL,
- (LPBYTE) szData,
- nSize
- );
-
- if (lSuccess == ERROR_SUCCESS) {
- return (TRUE);
- }
- }
-
- return (FALSE);
+ HKEY hKey;
+ long lSuccess;
+
+ lSuccess = RegOpenKey (
+ hHive,
+ szKeyPath,
+ &hKey
+ );
+
+ if (lSuccess == ERROR_SUCCESS) {
+ lSuccess = RegQueryValueEx (
+ hKey,
+ szValue,
+ NULL,
+ NULL,
+ (LPBYTE) szData,
+ nSize
+ );
+
+ if (lSuccess == ERROR_SUCCESS) {
+ return (TRUE);
+ }
+ }
+
+ return (FALSE);
}
-VOID
+VOID
SvcInit (
- DWORD dwArgc,
- LPTSTR *lpszArgv
+ DWORD dwArgc,
+ LPTSTR *lpszArgv
) {
- DWORD nSize;
- BOOL fSuccess;
+ DWORD nSize;
+ BOOL fSuccess;
STARTUPINFO si;
- wchar_t szPWD[1024];
+ wchar_t szPWD[1024];
PROCESS_INFORMATION pi;
- wchar_t szCmdLine[1024];
- wchar_t szRegistryPath[1024];
+ wchar_t szCmdLine[1024];
+ wchar_t szRegistryPath[1024];
- // TO_DO: Declare and set any required variables.
- // Be sure to periodically call ReportSvcStatus() with
+ // TO_DO: Declare and set any required variables.
+ // Be sure to periodically call ReportSvcStatus() with
// SERVICE_START_PENDING. If initialization fails, call
// ReportSvcStatus with SERVICE_STOPPED.
// Create an event. The control handler function, SvcCtrlHandler,
// signals this event when it receives the stop control code.
- ghSvcStopEvent = CreateEvent (
- NULL,
- TRUE,
- FALSE,
- NULL
- );
+ ghSvcStopEvent = CreateEvent (
+ NULL,
+ TRUE,
+ FALSE,
+ NULL
+ );
if (ghSvcStopEvent == NULL) {
ReportSvcStatus (
- SERVICE_STOPPED,
- NO_ERROR,
- 0
- );
+ SERVICE_STOPPED,
+ NO_ERROR,
+ 0
+ );
return;
}
// Report running status when initialization is complete.
ReportSvcStatus (
- SERVICE_RUNNING,
- NO_ERROR,
- 0
- );
+ SERVICE_RUNNING,
+ NO_ERROR,
+ 0
+ );
// TO_DO: Perform work until service stops.
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
- nSize=1024;
+ nSize=1024;
#ifdef HAVE_SWPRINTF_S
- swprintf_s (
- szRegistryPath,
- nSize,
+ swprintf_s (
+ szRegistryPath,
+ nSize,
#else
- snwprintf (
- szRegistryPath,
- sizeof szRegistryPath,
+ snwprintf (
+ szRegistryPath,
+ sizeof szRegistryPath,
#endif
- L"SYSTEM\\CurrentControlSet\\services\\%s\\Parameters",
- SVCNAME
- );
-
- fSuccess = RegistryRead (
- HKEY_LOCAL_MACHINE,
- szRegistryPath,
- L"CommandLine",
- szCmdLine,
- &nSize
- );
-
- if (fSuccess) {
- fSuccess = RegistryRead (
- HKEY_LOCAL_MACHINE,
- szRegistryPath,
- L"PWD",
- szPWD,
- &nSize
- );
- }
-
- if (fSuccess) {
- fSuccess = CreateProcess (
- NULL,
- szCmdLine,
- NULL,
- NULL,
- FALSE,
- (
- CREATE_NO_WINDOW
- ),
- NULL,
- szPWD,
- &si,
- &pi
- );
- }
-
- // treat errors
+ L"SYSTEM\\CurrentControlSet\\services\\%s\\Parameters",
+ SVCNAME
+ );
+
+ fSuccess = RegistryRead (
+ HKEY_LOCAL_MACHINE,
+ szRegistryPath,
+ L"CommandLine",
+ szCmdLine,
+ &nSize
+ );
+
+ if (fSuccess) {
+ fSuccess = RegistryRead (
+ HKEY_LOCAL_MACHINE,
+ szRegistryPath,
+ L"PWD",
+ szPWD,
+ &nSize
+ );
+ }
+
+ if (fSuccess) {
+ fSuccess = CreateProcess (
+ NULL,
+ szCmdLine,
+ NULL,
+ NULL,
+ FALSE,
+ (
+ CREATE_NO_WINDOW
+ ),
+ NULL,
+ szPWD,
+ &si,
+ &pi
+ );
+ }
+
+ // treat errors
while(1)
{
// Check whether to stop the service.
WaitForSingleObject (
- ghSvcStopEvent,
- INFINITE
- );
+ ghSvcStopEvent,
+ INFINITE
+ );
ReportSvcStatus (
- SERVICE_STOPPED,
- NO_ERROR,
- 0
- );
+ SERVICE_STOPPED,
+ NO_ERROR,
+ 0
+ );
return;
}
}
VOID ReportSvcStatus (
- DWORD dwCurrentState,
- DWORD dwWin32ExitCode,
- DWORD dwWaitHint
+ DWORD dwCurrentState,
+ DWORD dwWin32ExitCode,
+ DWORD dwWaitHint
) {
static DWORD dwCheckPoint = 1;
@@ -345,99 +344,99 @@ VOID ReportSvcStatus (
gSvcStatus.dwWin32ExitCode = dwWin32ExitCode;
gSvcStatus.dwWaitHint = dwWaitHint;
- if (dwCurrentState == SERVICE_START_PENDING) {
- gSvcStatus.dwControlsAccepted = 0;
- }
- else {
- gSvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
- }
-
- if (
- (dwCurrentState == SERVICE_RUNNING) ||
- (dwCurrentState == SERVICE_STOPPED)
- ) {
- gSvcStatus.dwCheckPoint = 0;
- } else {
- gSvcStatus.dwCheckPoint = dwCheckPoint++;
- }
-
- // Report the status of the service to the SCM.
- SetServiceStatus (
- gSvcStatusHandle,
- &gSvcStatus
- );
+ if (dwCurrentState == SERVICE_START_PENDING) {
+ gSvcStatus.dwControlsAccepted = 0;
+ }
+ else {
+ gSvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
+ }
+
+ if (
+ (dwCurrentState == SERVICE_RUNNING) ||
+ (dwCurrentState == SERVICE_STOPPED)
+ ) {
+ gSvcStatus.dwCheckPoint = 0;
+ } else {
+ gSvcStatus.dwCheckPoint = dwCheckPoint++;
+ }
+
+ // Report the status of the service to the SCM.
+ SetServiceStatus (
+ gSvcStatusHandle,
+ &gSvcStatus
+ );
}
-VOID
-WINAPI
+VOID
+WINAPI
SvcCtrlHandler (
- DWORD dwCtrl
+ DWORD dwCtrl
) {
- switch(dwCtrl) {
- case SERVICE_CONTROL_STOP:
+ switch(dwCtrl) {
+ case SERVICE_CONTROL_STOP:
ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0);
/* Signal the service to stop. */
SetEvent(ghSvcStopEvent);
-
+
return;
-
- case SERVICE_CONTROL_INTERROGATE:
+
+ case SERVICE_CONTROL_INTERROGATE:
/* Fall through to send current status. */
- break;
-
- default:
break;
- }
+
+ default:
+ break;
+ }
ReportSvcStatus(gSvcStatus.dwCurrentState, NO_ERROR, 0);
}
/* Logs messages to the event log */
-VOID
+VOID
SvcReportEvent (
- LPTSTR szFunction
-) {
+ LPTSTR szFunction
+) {
TCHAR Buffer[80];
HANDLE hEventSource;
LPCTSTR lpszStrings[2];
hEventSource = RegisterEventSource (
- NULL,
- SVCNAME
- );
+ NULL,
+ SVCNAME
+ );
if (
- NULL != hEventSource
- ) {
+ NULL != hEventSource
+ ) {
#ifdef HAVE_STRINGCCHPRINTF
- StringCchPrintf
+ StringCchPrintf
#else
- snwprintf
+ snwprintf
#endif
- (
- Buffer,
- 80,
- TEXT("%s failed with %d"),
- szFunction,
- GetLastError()
- );
+ (
+ Buffer,
+ 80,
+ TEXT("%s failed with %d"),
+ szFunction,
+ GetLastError()
+ );
lpszStrings[0] = SVCNAME;
lpszStrings[1] = Buffer;
- ReportEvent (
- hEventSource,
- EVENTLOG_ERROR_TYPE,
- 0,
- SVC_ERROR,
- NULL,
- 2,
- 0,
- lpszStrings,
- NULL
- );
-
- DeregisterEventSource (hEventSource);
+ ReportEvent (
+ hEventSource,
+ EVENTLOG_ERROR_TYPE,
+ 0,
+ SVC_ERROR,
+ NULL,
+ 2,
+ 0,
+ lpszStrings,
+ NULL
+ );
+
+ DeregisterEventSource (hEventSource);
}
}
diff --git a/RHSrvAny/RHSrvAny.h b/RHSrvAny/RHSrvAny.h
index 72ada2a..f439056 100644
--- a/RHSrvAny/RHSrvAny.h
+++ b/RHSrvAny/RHSrvAny.h
@@ -1,4 +1,3 @@
-/* -*- Mode: C; tab-width: 4 -*- */
/* RHSrvAny - Turn any Windows program into a Windows service.
* Written by Yuval Kashtan.
* Copyright (C) 2010 Red Hat Inc.
diff --git a/RHSrvAny/resource.h b/RHSrvAny/resource.h
index ad31821..14bba9b 100644
--- a/RHSrvAny/resource.h
+++ b/RHSrvAny/resource.h
@@ -4,7 +4,7 @@
//
// Next default values for new objects
-//
+//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
--
1.8.3.1