On 20 December 2010 15:08, <[email protected]> wrote:
> 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;
Not sure I understand how Tcpip or Afd can ever appear here - surely
the "ess" field is set to the list of services that depend on the
Daemon service?
> __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);
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]