commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: svn commit: r1051138 - in /commons/proper/daemon/trunk: RELEASE-NOTES.txt src/native/windows/src/service.c
Date Mon, 20 Dec 2010 18:39:44 GMT
On 20 December 2010 15:08,  <mturk@apache.org> 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: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message