> -----Original Message-----
> From: William A. Rowe, Jr. [mailto:[EMAIL PROTECTED]] 
> Sent: 14. lipanj 2002 9:18
> To: Cliff Woolley
> Cc: [EMAIL PROTECTED]
> Subject: Re: [Bug 9858] New: - ApacheMonitor can not start 
> service due to bug in service.c or ApacheMonitor.c (fwd)
> 
> 
> This is the same bug as winnt's mpm that Jeff Trawick's -k 
> patch introduced, we used to ignore this accidental 
> non-switch 'parameter' but the parsing change showed this up as a bug.
> 
> I'll let Mladen author the patch and apply later today :-)  
> The answer is pretty trivial, we simply shouldn't have ever 
> provided an argv[0] to the StartService call.  The old 
> parsers [1.3/2.0] both overlooked this bug.
> 

Yes, now that I look that don't know why did I even done all that arg
parsing...
It works even without args :-).

If doesn't theN just  replace the line 775 with the args[0] = NULL;


MT.

Index: ApacheMonitor.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/support/win32/ApacheMonitor.c,v
retrieving revision 1.18
diff -u -3 -r1.18 ApacheMonitor.c
--- ApacheMonitor.c 19 Apr 2002 19:19:44 -0000  1.18
+++ ApacheMonitor.c 14 Jun 2002 07:40:46 -0000
@@ -667,7 +667,6 @@
     SC_HANDLE schService;
     SC_HANDLE schSCManager;    
     SERVICE_STATUS schSStatus;
-    LPSTR     *args;
     int       ticks;
 
     if (g_dwOSVersion == OS_VERSION_WIN9X)
@@ -717,17 +716,6 @@
     }
     else
     {
-        /* Apache 2.0 uses '-k runservice' as cmdline parameter */
-        sPos = strstr(szImagePath, "--ntservice");
-        if (!sPos)
-        {
-            sPos = strstr(szImagePath, "-k runservice");
-            serviceFlag = FALSE;
-        }
-        if (sPos)
-            lstrcpyn(szBuf, szImagePath, sPos - szImagePath);
-        else
-            return FALSE;
         schSCManager = OpenSCManager(
             szComputerName,
             NULL,
@@ -771,16 +759,8 @@
                 case SERVICE_CONTROL_CONTINUE:
                     sprintf(szMsg, g_lpMsg[IDS_MSG_SRVSTART-IDS_MSG_FIRST], 
szServiceName);
                     addListBoxString(g_hwndStdoutList, szMsg);
-                    args = (char **)malloc(3 * sizeof(char*));
-                    args[0] = szBuf;
-                    if (serviceFlag)
-                        args[1] = "--ntservice";
-                    else
-                    {
-                        args[1] = "-k";
-                        args[2] = "runservice";
-                    }
-                    if (StartService(schService, serviceFlag ? 2 : 3, args)) 
+
+                    if (StartService(schService, 0, NULL)) 
                     {
                         Sleep(1000);
                         while (QueryServiceStatus(schService, &schSStatus)) 
@@ -800,8 +780,6 @@
                             addListBoxString(g_hwndStdoutList, szMsg);
                         }
                     }
-                    /* is this OK to do? */
-                    free(args);
                 break;                
                 case SERVICE_APACHE_RESTART:
                     sprintf(szMsg, g_lpMsg[IDS_MSG_SRVRESTART-IDS_MSG_FIRST], 
szServiceName);

Reply via email to