Author: mturk Date: Mon Dec 20 15:08:21 2010 New Revision: 1051138 URL: http://svn.apache.org/viewvc?rev=1051138&view=rev Log: DAEMON-190: Make sure we have default system dependent services
Modified: commons/proper/daemon/trunk/RELEASE-NOTES.txt commons/proper/daemon/trunk/src/native/windows/src/service.c Modified: commons/proper/daemon/trunk/RELEASE-NOTES.txt URL: http://svn.apache.org/viewvc/commons/proper/daemon/trunk/RELEASE-NOTES.txt?rev=1051138&r1=1051137&r2=1051138&view=diff ============================================================================== --- commons/proper/daemon/trunk/RELEASE-NOTES.txt (original) +++ commons/proper/daemon/trunk/RELEASE-NOTES.txt Mon Dec 20 15:08:21 2010 @@ -70,7 +70,7 @@ NEW FEATURES: BUG FIXES: -1.0.5: DAEMON-188 +1.0.5: DAEMON-188, DAEMON-190 1.0.4: DAEMON-95, DAEMON-171, DAEMON-100, DAEMON-164, DAEMON-165, DAEMON-175, DAEMON-177, DAEMON-150, DAEMON-163, DAEMON-182, DAEMON-181 Modified: commons/proper/daemon/trunk/src/native/windows/src/service.c URL: http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/src/service.c?rev=1051138&r1=1051137&r2=1051138&view=diff ============================================================================== --- commons/proper/daemon/trunk/src/native/windows/src/service.c (original) +++ commons/proper/daemon/trunk/src/native/windows/src/service.c Mon Dec 20 15:08:21 2010 @@ -249,7 +249,7 @@ __apxStopDependentServices(LPAPXSERVICE DWORD dwBytesNeeded; DWORD dwCount; - LPENUM_SERVICE_STATUS lpDependencies = NULL; + LPENUM_SERVICE_STATUSW lpDependencies = NULL; ENUM_SERVICE_STATUS ess; SC_HANDLE hDepService; SERVICE_STATUS_PROCESS ssp; @@ -260,11 +260,11 @@ __apxStopDependentServices(LPAPXSERVICE /* Pass a zero-length buffer to get the required buffer size. */ - if (EnumDependentServices(lpService->hService, - SERVICE_ACTIVE, - lpDependencies, 0, - &dwBytesNeeded, - &dwCount)) { + if (EnumDependentServicesW(lpService->hService, + SERVICE_ACTIVE, + lpDependencies, 0, + &dwBytesNeeded, + &dwCount)) { /* If the Enum call succeeds, then there are no dependent * services, so do nothing. */ @@ -284,24 +284,26 @@ __apxStopDependentServices(LPAPXSERVICE __try { /* Enumerate the dependencies. */ - if (!EnumDependentServices(lpService->hService, - SERVICE_ACTIVE, - lpDependencies, - dwBytesNeeded, - &dwBytesNeeded, - &dwCount)) + if (!EnumDependentServicesW(lpService->hService, + SERVICE_ACTIVE, + lpDependencies, + dwBytesNeeded, + &dwBytesNeeded, + &dwCount)) return FALSE; for (i = 0; i < dwCount; i++) { ess = *(lpDependencies + i); /* Open the service. */ - hDepService = OpenService(lpService->hManager, - ess.lpServiceName, - SERVICE_STOP | SERVICE_QUERY_STATUS); + hDepService = OpenServiceW(lpService->hManager, + ess.lpServiceName, + SERVICE_STOP | SERVICE_QUERY_STATUS); if (!hDepService) - return FALSE; - + continue; + if (lstrcmpiW(ess.lpServiceName, L"Tcpip") == 0 || + lstrcmpiW(ess.lpServiceName, L"Afd") == 0) + continue; __try { /* Send a stop code. */ if (!ControlService(hDepService, @@ -525,7 +527,7 @@ apxServiceInstall(APXHANDLE hService, LP szImagePath, NULL, NULL, - lpDependencies, + lpDependencies ? lpDependencies : L"Tcpip\0Afd\0", NULL, NULL);