You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@locus.apache.org on 2000/06/05 20:05:13 UTC

cvs commit: apache-1.3/src/os/win32 service.c service.h

wrowe       00/06/05 11:05:11

  Modified:    .        STATUS
               src      CHANGES
               src/main http_main.c
               src/os/win32 service.c service.h
  Log:
    *) Add Win32 option -k stop as an alias of -k shutdown, to correspond to
       the NET START/NET STOP syntax.
  
    *) Force Apache to test the Win32 config prior to any operation,
       except the [-k shutdown -n service] and [-u -n service] combinations.
  
    *) Add Win32 Ctrl+C/Ctrl+Break/Close/Logoff/Shutdown handler.
       Modified submission by Jan Just Keijser <KE...@logica.com>
  
  Revision  Changes    Path
  1.824     +31 -46    apache-1.3/STATUS
  
  Index: STATUS
  ===================================================================
  RCS file: /home/cvs/apache-1.3/STATUS,v
  retrieving revision 1.823
  retrieving revision 1.824
  diff -u -r1.823 -r1.824
  --- STATUS	2000/06/05 16:08:09	1.823
  +++ STATUS	2000/06/05 18:04:19	1.824
  @@ -1,5 +1,5 @@
     1.3 STATUS:
  -  Last modified at [$Date: 2000/06/05 16:08:09 $]
  +  Last modified at [$Date: 2000/06/05 18:04:19 $]
   
   Release:
   
  @@ -27,26 +27,30 @@
   
       * Add a simple hold console open patch (wait for close or
           the ESC key, with a nice message) if the server died a 
  -        bad death (non-zero exit code) in console mode.  Add the
  -        ConsoleHandler to deal with Ctrl+C/Ctrl+Break and, at
  -        least under NT, shutdown, logoff and window close.
  +        bad death (non-zero exit code) in console mode.  
           OtherBill is working on this
   
       * Assure we haven't drifted too far between httpd.conf-dist
           and httpd.conf-dist-win.
   
  -    * Assure the windows.html and win_compiling.html reflect
  -        reality, today.
  -	- running the server without admin
  -	- how CGIs work (?)
  -	- short/long name handling (?)
  -	- better status page on current state of NT for users
  -        > Basic answer the the last one - 2.0 is coming
  +    * Document cvstodsp6.pl in win_compiling.html.
  +        OtherBill will do this Wed if noone beats him to it.
  +
  +    * Assure the windows.html reflects reality, today.
  +	- running the service as a user other than SYSTEM (NT/2000).
  +        - CONDITIONALLY - if someone posts revisions to the list for
  +          htdocs/manual/windows.html to properly document JJK's Win95
  +          services support as a -HIGHLY EXPERIMENTAL- patch,
  +          OtherBill will include that patch (with -k runservice rather
  +          than -s, not documented in the -h list of options, and with
  +          FreeConsole() -following- successful parsing of httpd.conf).
  +          Too many are complaining, -but- 3+ Win95 users must step up
  +          to test this new patch offered late Mon eve before we proceed.
   
       * Complete the security hole in stat() by testing for anything
         other than conventional file-not-found, permission-denied errors
         and rejecting the request then and there.  By rights, all of
  -      these cases aught to be Not Found, not Permission Denied.
  +      these cases aught to be Not Found, not Permission Denied?
   
   RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
   
  @@ -65,16 +69,20 @@
   
   Available Patches:
   
  -    * Eric Wedel <we...@wenet.net>'s patch for CONNECT method and proxy
  -      on Win32.  Addresses PR 5107 and maybe 2014.
  -	PR: 5899
  -	Status: 
  -
       * Dan Astoorian <dj...@cs.toronto.edu>'s patch to fix mod_include RE
         tokenisation
   	PR: 5898
   	Status: 
   
  +    * JJ Keijser's patch (99/10/06) to: 
  +	- Run Apache as a service on Win9x (PR2208)
  +	- Making sure that Apache is shut down when the system is shutdown. 
  +           under Win95 (PR1643, PR2472)
  +	- Use apache -i/-u to install/uninstalling Apache on Win9x
  +	- Make Apache shut down cleanly when run on Windows 95 (PR4125)
  +	PR#: PR2472, PR4125, PR1643 (suspended) and PR2208 (suspended).
  +	Status: Martin +1(untested)
  +
       * Gerd Knorr <gk...@berlinonline.de>'s patch to enable mod_auth_digest
         to handle both Digest *and* Basic authentication modes.
   	PR: 5879
  @@ -116,16 +124,6 @@
   
   	Status: Martin +1(untested), Ken +1(untested)
          
  -    * JJ Keijser's patch (99/10/06) to: 
  -	- Run Apache as a service on Win95 (PR2208)
  -	- Making sure that Apache is shut down when the system is shutdown. 
  -           (PR1643, PR2472)
  -	- Use apache -i/-u to install/uninstalling Apache on Win95
  -	- Add ConsoleCtrlHandler to catch Ctrl-C in the Apache console window
  -	- Make Apache shut down cleanly when run on Windows 95 (PR4125)
  -	PR#: PR2472, PR4125, PR1643 (suspended) and PR2208 (suspended).
  -	Status: Martin +1(untested)
  -
       * Paul Reder's patch to fix Allow/Deny (.htaccess parsing) in
         regex <Directory*> processing.
   	Message-ID: <37...@raleigh.ibm.com>
  @@ -422,27 +420,12 @@
   	Ken: What's W95-specific about it?
   
    Help:
  -    * There are several PRs reporting Apache looping and they each seem to
  -      implicate CGI script processing. The first PR happened about the time
  -      we migrated to using native Win32 function calls to create the child 
  -      process. I have tried to recreate the problem w/o success. It just now
  -      occurs to me that there may be a race condition between when the new
  -      process comes alive and the parent sending data to (or attempting to
  -      read data from) the child process. CreateProcess() returns immediately,
  -      before the new process is created. The parent may be attempting I/O
  -      with the child before it's ready. TODO: investigate ways to cause the
  -      parent to wait for the child process to become fully active before
  -      proceeding with CGI I/O processing.
  -
       * chdir() for CGI scripts and mod_include #exec needs to be 
         re-implemented now that CreateProcess is being used.
   
       * process/thread model
   	- need dynamic thread creation/destruction, similar to 
   	  Unix process model
  -	- can't use WaitForMultipleObjects in the same way we
  -	  do now, since that has a limit of 64(!) objects.  Grr.
  -	  PR#1665
   
       * some errors printed by CGIs to stderr don't end up making it
         to the server log unless an extra debugging message is added
  @@ -460,8 +443,6 @@
       * the mutex should be critical-regions, since the current design
         is creating a mess of SO calls that are unnecessary
   
  -    * we don't mmap on NT.  Use TransmitFile?
  -
       * CGIs
   	- docs on how they work w/scripts
   	- WTF is the buffering coming from?
  @@ -469,8 +450,12 @@
   
       * performance
   
  -    * http_main.c hell
  -	- split into two files?
  +    * documentation:
  +	- running the server without admin
  +	- how CGIs work
  +	- update README.NT
  +	- short/long name handling
  +	- better status page on current state of NT for users
   
       * who should run the service?  Who exactly is the "system account"?
   
  
  
  
  1.1548    +10 -0     apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1547
  retrieving revision 1.1548
  diff -u -r1.1547 -r1.1548
  --- CHANGES	2000/06/05 16:08:15	1.1547
  +++ CHANGES	2000/06/05 18:04:28	1.1548
  @@ -1,5 +1,15 @@
   Changes with Apache 1.3.13
   
  +  *) Add Win32 option -k stop as an alias of -k shutdown, to correspond to
  +     the NET START/NET STOP syntax. [William Rowe]
  +
  +  *) Force Apache to test the Win32 config prior to any operation,
  +     except the [-k shutdown -n service] and [-u -n service] combinations.
  +     [William Rowe]
  +
  +  *) Add Win32 Ctrl+C/Ctrl+Break/Close/Logoff/Shutdown handler.
  +     [William Rowe, Jan Just Keijser <KE...@logica.com>]
  +
     *) Expand mod_setenvif so its directives can be used in <Files> and
        <Directory> containers, and in .htaccess files when FileInfo
        overriding is allowed.  PR#3000 [Ken Coar]
  
  
  
  1.495     +25 -3     apache-1.3/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v
  retrieving revision 1.494
  retrieving revision 1.495
  diff -u -r1.494 -r1.495
  --- http_main.c	2000/06/01 23:42:25	1.494
  +++ http_main.c	2000/06/05 18:04:41	1.495
  @@ -6690,7 +6690,10 @@
   	    ap_dump_settings = 1;
   	    break;
   	case 'k':
  -	    signal_to_send = optarg;
  +            if (!strcasecmp(optarg, "stop"))
  +                signal_to_send = "shutdown";
  +            else
  +                signal_to_send = optarg;
   	    break;
   #endif /* WIN32 */
   #ifdef NETWARE
  @@ -6789,11 +6792,29 @@
       ap_no2slash(ap_server_confname);
   
   #ifdef WIN32
  +    if (!child) {
  +        /* Let's go fishing for some signals including ctrl+c/ctrl+break,
  +         * and logoff, close and shutdown under WinNT/2000
  +         */
  +        SetConsoleCtrlHandler(ap_control_handler, TRUE);
  +        atexit(ap_control_handler_terminate);
  +    }
  +    
  +    /* Read the conf now unless we are uninstalling the service,
  +     * or shutting down a running service 
  +     * (but do read the conf for the pidfile if we shutdown the console)
  +     */
  +    if ((install >= 0) && (!service_name || !signal_to_send 
  +                           || strcasecmp(signal_to_send,"shutdown"))) {
  +        server_conf = ap_read_config(pconf, ptrans, ap_server_confname);
  +    }
  +
       if (install) {
           if (!service_name)
               service_name = ap_pstrdup(pconf, DEFAULTSERVICENAME);
           if (install > 0) 
  -            InstallService(service_name, ap_server_root_relative(pcommands, ap_server_confname));
  +            InstallService(service_name, ap_server_root_relative(pcommands, 
  +                                                         ap_server_confname));
           else
               RemoveService(service_name);
           clean_parent_exit(0);
  @@ -6808,8 +6829,9 @@
           printf("Unknown service: %s\n", service_name);
           clean_parent_exit(0);
       }
  -#endif
  +#else
       server_conf = ap_read_config(pconf, ptrans, ap_server_confname);
  +#endif
   
       if (ap_configtestonly) {
           fprintf(stderr, "%s: Syntax OK\n", ap_server_root_relative(pcommands, ap_server_confname));
  
  
  
  1.17      +42 -1     apache-1.3/src/os/win32/service.c
  
  Index: service.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/os/win32/service.c,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- service.c	2000/04/15 17:57:25	1.16
  +++ service.c	2000/06/05 18:04:53	1.17
  @@ -456,6 +456,47 @@
               return TRUE;
       return FALSE;
   }
  -           
  +
  +/* Control handler for processing Ctrl-C/Ctrl-Break and
  + * on Windows NT also user logoff and system shutdown
  + */
  +
  +void ap_control_handler_terminate(void)
  +{
  +    /* Remove the control handler at the end of the day. */
  +    SetConsoleCtrlHandler(ap_control_handler, FALSE);
  +}
  +
  +BOOL CALLBACK ap_control_handler(DWORD ctrl_type)
  +{
  +    switch (ctrl_type)
  +    {
  +        case CTRL_C_EVENT:
  +        case CTRL_BREAK_EVENT:
  +            fprintf(stderr, "Apache server interrupted...\n");
  +            /* for Interrupt signals, shut down the server.
  +             * Tell the system we have dealt with the signal
  +             * without waiting for Apache to terminate.
  +             */
  +            ap_start_shutdown();            
  +            return TRUE;
  +
  +        case CTRL_CLOSE_EVENT:
  +        case CTRL_LOGOFF_EVENT:
  +        case CTRL_SHUTDOWN_EVENT:
  +            /* for Terminate signals, shut down the server.
  +             * Wait for Apache to terminate, but respond
  +             * after a reasonable time to tell the system
  +             * that we have already tried to shut down.
  +             */
  +            fprintf(stderr, "Apache server shutdown initiated...\n");
  +            ap_start_shutdown();
  +            Sleep(30000);
  +            return TRUE;
  +    }
  + 
  +    /* We should never get here, but this is (mostly) harmless */
  +    return FALSE;
  +}
   #endif /* WIN32 */
   
  
  
  
  1.6       +2 -0      apache-1.3/src/os/win32/service.h
  
  Index: service.h
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/os/win32/service.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- service.h	2000/03/13 21:00:41	1.5
  +++ service.h	2000/06/05 18:04:55	1.6
  @@ -12,6 +12,8 @@
   void RemoveService(char *display_name);
   int service_init();
   int send_signal_to_service(char *display_name, char *sig);
  +void ap_control_handler_terminate(void);
  +BOOL CALLBACK ap_control_handler(DWORD ctrl_type);
   #endif /* WIN32 */
   
   #endif /* SERVICE_H */
  
  
  

RE: cvs commit: apache-1.3/src/os/win32 service.c service.h

Posted by Andrew Braund <ab...@mail.com>.
> If those who want this patch applied will speak up to the list, and one will
> offer a patch to the windows.html docs to bring that up to this patch,
> and several will commit to testing the revised patch, I'll go for it.
> 

I will test the revised patch.
I am now starting on windows.html revisions.

Regards
Andrew Braund

RE: [PATCH] RE: cvs commit: apache-1.3/src/os/win32 service.c service.h

Posted by Andrew Braund <ab...@mail.com>.
Revised patch to win_compiling.html incorporating sugestions.

> > Other Comments;
> > Makefile.win is a Windows (only) make file so why can't it copy the
> > conf\*.conf-dist-win, conf\mime.types, conf\magic and htdocs\*.*
> files to the
> > ServerRoot directory? Would this be a good thing/worth doing?
>
> Hmmm.  Interesting, although often one is building the tree in the manner
> it is distributed, that is src is the folder within the ServerRoot, and
> the INSTDIR=.. - but this gives me an even more interesting idea; if the
> httpd.conf is not found, and httpd.conf-dist-win is present, autogenerate
> a proper httpd.conf on startup?

Sounds good.

For now I have left the copy commands in the docs (with warnings).
Do with them as you see fit.


--- old_win_compiling.html	Thu May 11 13:09:18 2000
+++ win_compiling.html	Wed Jun  7 00:48:14 2000
@@ -20,7 +20,7 @@
    See <A HREF="windows.html">Using Apache with Microsoft Windows</A>
    before you begin.</P>

-<P>Compiling Apache requires Microsoft Visual C++ 5.0 to be properly
+<P>Compiling Apache requires Microsoft Visual C++ 5.0 (or 6.0) to be properly
    installed. It is easiest to compile with the command-line tools
    (nmake, <EM>etc.</EM>..). Consult the VC++ manual to determine how
    to install them.  Be especially aware that the vcvars32.bat file
@@ -43,6 +43,12 @@
    information in the resulting files, making it easier to find bugs and
    track down problems.</P>

+<P>If you get an error such as "the name specified is not recognized..."
+ then you need to run vcvars32.bat first. Enter the following command;<br>
+  "c:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"<br>
+ (you will need to adjust this so it matches where your VC was installed) then
+ try the nmake command again.</P>
+
 <P>Apache can also be compiled using VC++'s Visual Studio development
    environment.  To simplify this process, a Visual Studio workspace,
    Apache.dsw, is provided in the src folder.  This workspace exposes
@@ -95,28 +101,28 @@
    root directory. The default is the <CODE>\Apache</CODE>
    directory, on the current hard drive.</P>

-<P>To install the files into the <CODE>\Apache</CODE> directory
+<P>To install the files into the <CODE>c:\ServerRoot</CODE> directory
    automatically, use one the following nmake commands (see above):</P>
 <UL>
-<LI><CODE>nmake /f Makefile.win installr INSTDIR=<EM>dir</EM></CODE>
+<LI><CODE>nmake /f Makefile.win installr INSTDIR=<EM>c:\ServerRoot</EM></CODE>
  (for release build)
-<LI><CODE>nmake /f Makefile.win installd INSTDIR=<EM>dir</EM></CODE>
+<LI><CODE>nmake /f Makefile.win installd INSTDIR=<EM>c:\ServerRoot</EM></CODE>
  (for debug build)
 </UL>

-The <EM>dir</EM> argument to INSTDIR gives the installation directory; it can
-be omitted if Apache is to be installed into <SAMP>\Apache</SAMP>.
+The <EM>c:\ServerRoot</EM> argument to INSTDIR gives the installation
directory (it can
+be omitted if Apache is to be installed into <SAMP>\Apache</SAMP>).

 <P>This will install the following:</P>

 <UL>
-  <LI><CODE><EM>dir</EM>\Apache.exe</CODE> - Apache executable
-  <LI><CODE><EM>dir</EM>\ApacheCore.dll</CODE> - Main Apache shared library
-  <LI><CODE><EM>dir</EM>\modules\ApacheModule*.dll</CODE> - Loadable Apache
+  <LI><CODE><EM>c:\ServerRoot</EM>\Apache.exe</CODE> - Apache executable
+  <LI><CODE><EM>c:\ServerRoot</EM>\ApacheCore.dll</CODE> - Main Apache shared
library
+  <LI><CODE><EM>c:\ServerRoot</EM>\modules\ApacheModule*.dll</CODE> - Loadable
Apache
       modules
-  <LI><CODE><EM>dir</EM>\bin\*.exe</CODE> - Administrator support executables
-  <LI><CODE><EM>dir</EM>\conf</CODE> - Empty configuration directory
-  <LI><CODE><EM>dir</EM>\logs</CODE> - Empty logging directory
+  <LI><CODE><EM>c:\ServerRoot</EM>\bin\*.exe</CODE> - Administrator support
executables
+  <LI><CODE><EM>c:\ServerRoot</EM>\conf</CODE> - Empty configuration directory
+  <LI><CODE><EM>c:\ServerRoot</EM>\logs</CODE> - Empty logging directory
 </UL>

 <P>If you do not have nmake, or wish to install in a different directory,
@@ -140,10 +146,29 @@
 <P>
 Before running the server you must fill out the conf directory.
 Copy the *.conf-dist-win from the distribution conf directory
-and rename *.conf.  Edit the @@ServerRoot@@ entries to your
-actual server root (for example "C:\apache").  Copy over
-the conf/magic and conf/mime.types files as well.
+and rename them to *.conf.  You will need to copy over the conf/magic
+and conf/mime.types files as well. In order to serve documents
+you will need to create a htdocs\index.html or just copy over the standard
Apache
+ones (This is a good idea as then you get the full Apache documentation on
line).
+If you have previously run Apache from the c:\ServerRoot directory then please
make
+sure you backup any files you wish to retain or only copy the files you want
replaced.
+The following commands will copy all the required files to your
+c:\ServerRoot directory (***over-writing any that were there***);<br><br>
+
+<UL>
+<LI><CODE>xcopy ..\conf\*.conf-dist-win c:\ServerRoot\conf\*.conf</CODE><br>
+<LI><CODE>xcopy ..\conf\magic c:\ServerRoot\conf\</CODE><br>
+<LI><CODE>xcopy ..\conf\mime.types c:\ServerRoot\conf\</CODE><br>
+<LI><CODE>xcopy ..\htdocs\*.* c:\ServerRoot\htdocs\ /E</CODE><br>
+</UL>
+(adjust these so c:\ServerRoot matches the INSTDIR used above)
+
+<P>
+Edit the @@ServerRoot@@ entries in c:\ServerRoot\conf\httpd.conf to your
+actual server root (for example "c:/ServerRoot" Note: you must use forward
+slashes in Apache configuration files).<br>

 <!--#include virtual="footer.html" -->
 </BODY>
 </HTML>
+



RE: [PATCH] RE: cvs commit: apache-1.3/src/os/win32 service.c service.h

Posted by "William A. Rowe, Jr." <wr...@lnd.com>.
> From: Andrew Braund [mailto:abraund_news@mail.com]
> Sent: Tuesday, June 06, 2000 12:16 AM
> 
> 
> This is my first attempt at a patch so please be gentle! I thought I would
> start with some changes to win_compiling.html. The changes mainly cater for the
> novice user. I have just seen a new version (apache-1.3_20000606041200.tar.gz)
> so will download it and start testing the new service stuff on 95 and add
> something to the windows.html documentation.

Good changes (perhaps C:\ServerRoot, to be consistent though?  I can see a
truly novice user retaining the D:, while they have no D: drive :-)  

> I downloaded apache-1.3_20000605221200.tar.gz then compiled (command line
> style) following instructions in windows.html and win_compiling.html. This went
> very well, a new user would get a good first impression.

Good to hear it!
 
> Other Comments;
> Makefile.win is a Windows (only) make file so why can't it copy the
> conf\*.conf-dist-win, conf\mime.types, conf\magic and htdocs\*.* files to the
> ServerRoot directory? Would this be a good thing/worth doing?

Hmmm.  Interesting, although often one is building the tree in the manner
it is distributed, that is src is the folder within the ServerRoot, and
the INSTDIR=.. - but this gives me an even more interesting idea; if the
httpd.conf is not found, and httpd.conf-dist-win is present, autogenerate
a proper httpd.conf on startup?

> PS; Many thanks to Mr William Rowe for all his effort on the 
> Windows code, and sorry for complaining :(.

Complaining?  I don't remember your name as a complainer, at least not once
you start submitting patches for the fixes you want to see :-)  


[PATCH] RE: cvs commit: apache-1.3/src/os/win32 service.c service.h

Posted by Andrew Braund <ab...@mail.com>.
This is my first attempt at a patch so please be gentle! I thought I would
start with some changes to win_compiling.html. The changes mainly cater for the
novice user. I have just seen a new version (apache-1.3_20000606041200.tar.gz)
so will download it and start testing the new service stuff on 95 and add
something to the windows.html documentation.

I downloaded apache-1.3_20000605221200.tar.gz then compiled (command line
style) following instructions in windows.html and win_compiling.html. This went
very well, a new user would get a good first impression.

Other Comments;
Makefile.win is a Windows (only) make file so why can't it copy the
conf\*.conf-dist-win, conf\mime.types, conf\magic and htdocs\*.* files to the
ServerRoot directory? Would this be a good thing/worth doing?

PS; Many thanks to Mr William Rowe for all his effort on the Windows code, and
sorry for complaining :(.

> -----Original Message-----
> From: William A. Rowe, Jr. [mailto:wrowe@lnd.com]
> Sent: Tuesday, 6 June 2000 4:09
> To: new-httpd@apache.org
> Subject: RE: cvs commit: apache-1.3/src/os/win32 service.c service.h
>
>
> > From: wrowe@locus.apache.org [mailto:wrowe@locus.apache.org]
> > Sent: Monday, June 05, 2000 1:05 PM
> >
> >   Index: STATUS
> >   ===================================================================
> >   +    * Assure the windows.html reflects reality, today.
> >   +        - running the service as a user other than SYSTEM (NT/2000).
> >   +        - CONDITIONALLY - if someone posts revisions to the list for
> >   +          htdocs/manual/windows.html to properly document JJK's Win95
> >   +          services support as a -HIGHLY EXPERIMENTAL- patch,
> >   +          OtherBill will include that patch (with -k runservice rather
> >   +          than -s, not documented in the -h list of options, and with
> >   +          FreeConsole() -following- successful parsing of httpd.conf).
> >   +          Too many are complaining, -but- 3+ Win95 users must step up
> >   +          to test this new patch offered late Mon eve before we proceed.
>
> Ok, explanation...
>
> I've had several sideband comments about this side of JJK's patch.  It took
> considerable rework to get it to integrate well into 2.0, but I did start
> in my devel 1.3.x tree.  So it is already there.
>
> If those who want this patch applied will speak up to the list, and one will
> offer a patch to the windows.html docs to bring that up to this patch,
> and several will commit to testing the revised patch, I'll go for it.
>
> HOWEVER, it must be clearly marked -HIGHLY EXPERIMENTAL- (for this rev).
> If it works well, and we don't see the complaints, then we will remove
> that caviat for 2.0 :-)  We must warn them that if it works -at all- we
> can not attest to it's reliability or future support of that feature.
>
> My original thought - "This is a new feature"... didn't hold water.  If we
> are going to deploy in 2.0, why not get it tested in 1.3.13?  That affords
> us the best confidence in a clean 2.0 release.  Also, several complained
> that they were needing that feature now, not in several months or whenever
> 2.0 gets rolling into beta.  [beta 2.0 should be stronger than Win32 1.3!]
>


--- win_compiling.html	Thu May 11 13:09:18 2000
+++ updated_win_compiling.html	Tue Jun  6 12:28:38 2000
@@ -20,7 +20,7 @@
    See <A HREF="windows.html">Using Apache with Microsoft Windows</A>
    before you begin.</P>

-<P>Compiling Apache requires Microsoft Visual C++ 5.0 to be properly
+<P>Compiling Apache requires Microsoft Visual C++ 5.0 (or 6.0) to be properly
    installed. It is easiest to compile with the command-line tools
    (nmake, <EM>etc.</EM>..). Consult the VC++ manual to determine how
    to install them.  Be especially aware that the vcvars32.bat file
@@ -43,6 +43,12 @@
    information in the resulting files, making it easier to find bugs and
    track down problems.</P>

+<P>If you get an error such as "the name specified is not recognized..."
+ then you need to run vcvars32.bat first. Enter the following command;<br>
+  "D:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"<br>
+ (you will need to adjust this so it matches where your VC was installed) then
+ try the nmake command again.</P>
+
 <P>Apache can also be compiled using VC++'s Visual Studio development
    environment.  To simplify this process, a Visual Studio workspace,
    Apache.dsw, is provided in the src folder.  This workspace exposes
@@ -95,28 +101,28 @@
    root directory. The default is the <CODE>\Apache</CODE>
    directory, on the current hard drive.</P>

-<P>To install the files into the <CODE>\Apache</CODE> directory
+<P>To install the files into the <CODE>c:\ApacheRoot</CODE> directory
    automatically, use one the following nmake commands (see above):</P>
 <UL>
-<LI><CODE>nmake /f Makefile.win installr INSTDIR=<EM>dir</EM></CODE>
+<LI><CODE>nmake /f Makefile.win installr INSTDIR=<EM>c:\ApacheRoot</EM></CODE>
  (for release build)
-<LI><CODE>nmake /f Makefile.win installd INSTDIR=<EM>dir</EM></CODE>
+<LI><CODE>nmake /f Makefile.win installd INSTDIR=<EM>c:\ApacheRoot</EM></CODE>
  (for debug build)
 </UL>

-The <EM>dir</EM> argument to INSTDIR gives the installation directory; it can
-be omitted if Apache is to be installed into <SAMP>\Apache</SAMP>.
+The <EM>c:\ApacheRoot</EM> argument to INSTDIR gives the installation
directory (it can
+be omitted if Apache is to be installed into <SAMP>\Apache</SAMP>).

 <P>This will install the following:</P>

 <UL>
-  <LI><CODE><EM>dir</EM>\Apache.exe</CODE> - Apache executable
-  <LI><CODE><EM>dir</EM>\ApacheCore.dll</CODE> - Main Apache shared library
-  <LI><CODE><EM>dir</EM>\modules\ApacheModule*.dll</CODE> - Loadable Apache
+  <LI><CODE><EM>c:\ApacheRoot</EM>\Apache.exe</CODE> - Apache executable
+  <LI><CODE><EM>c:\ApacheRoot</EM>\ApacheCore.dll</CODE> - Main Apache shared
library
+  <LI><CODE><EM>c:\ApacheRoot</EM>\modules\ApacheModule*.dll</CODE> - Loadable
Apache
       modules
-  <LI><CODE><EM>dir</EM>\bin\*.exe</CODE> - Administrator support executables
-  <LI><CODE><EM>dir</EM>\conf</CODE> - Empty configuration directory
-  <LI><CODE><EM>dir</EM>\logs</CODE> - Empty logging directory
+  <LI><CODE><EM>c:\ApacheRoot</EM>\bin\*.exe</CODE> - Administrator support
executables
+  <LI><CODE><EM>c:\ApacheRoot</EM>\conf</CODE> - Empty configuration directory
+  <LI><CODE><EM>c:\ApacheRoot</EM>\logs</CODE> - Empty logging directory
 </UL>

 <P>If you do not have nmake, or wish to install in a different directory,
@@ -140,10 +146,23 @@
 <P>
 Before running the server you must fill out the conf directory.
 Copy the *.conf-dist-win from the distribution conf directory
-and rename *.conf.  Edit the @@ServerRoot@@ entries to your
-actual server root (for example "C:\apache").  Copy over
-the conf/magic and conf/mime.types files as well.
+and rename them to *.conf.  You will need to copy over the
+conf/magic and conf/mime.types files as well. In order to serve documents
+you will need to create a htdocs\index.html or just copy over the standard
Apache
+ones (This is a good idea as then you get the full Apache documention on
line).<br>
+The following commands will do this;<br>
+xcopy c:\Apache\conf\*.conf-dist-win c:\ApacheRoot\conf\*.conf<br>
+xcopy c:\Apache\conf\magic c:\ApacheRoot\conf\<br>
+xcopy c:\Apache\conf\mime.types c:\ApacheRoot\conf\<br>
+xcopy c:\Apache\htdocs\*.* c:\ApacheRoot\htdocs\ /E<br>
+(adjust these so c:\ApacheRoot matches the INSTDIR used above)
+
+<P>
+Edit the @@ServerRoot@@ entries in c:\ApacheRoot\conf\httpd.conf to your
+actual server root (for example "c:/ApacheRoot" Note: you must use forward
+slashes in Apache configuration files).<br>

 <!--#include virtual="footer.html" -->
 </BODY>
 </HTML>
+


RE: cvs commit: apache-1.3/src/os/win32 service.c service.h

Posted by "William A. Rowe, Jr." <wr...@lnd.com>.
> From: wrowe@locus.apache.org [mailto:wrowe@locus.apache.org]
> Sent: Monday, June 05, 2000 1:05 PM
> 
>   Index: STATUS
>   ===================================================================
>   +    * Assure the windows.html reflects reality, today.
>   +        - running the service as a user other than SYSTEM (NT/2000).
>   +        - CONDITIONALLY - if someone posts revisions to the list for
>   +          htdocs/manual/windows.html to properly document JJK's Win95
>   +          services support as a -HIGHLY EXPERIMENTAL- patch,
>   +          OtherBill will include that patch (with -k runservice rather
>   +          than -s, not documented in the -h list of options, and with
>   +          FreeConsole() -following- successful parsing of httpd.conf).
>   +          Too many are complaining, -but- 3+ Win95 users must step up
>   +          to test this new patch offered late Mon eve before we proceed.

Ok, explanation...

I've had several sideband comments about this side of JJK's patch.  It took
considerable rework to get it to integrate well into 2.0, but I did start
in my devel 1.3.x tree.  So it is already there.

If those who want this patch applied will speak up to the list, and one will
offer a patch to the windows.html docs to bring that up to this patch,
and several will commit to testing the revised patch, I'll go for it.

HOWEVER, it must be clearly marked -HIGHLY EXPERIMENTAL- (for this rev).
If it works well, and we don't see the complaints, then we will remove
that caviat for 2.0 :-)  We must warn them that if it works -at all- we
can not attest to it's reliability or future support of that feature.

My original thought - "This is a new feature"... didn't hold water.  If we
are going to deploy in 2.0, why not get it tested in 1.3.13?  That affords
us the best confidence in a clean 2.0 release.  Also, several complained
that they were needing that feature now, not in several months or whenever
2.0 gets rolling into beta.  [beta 2.0 should be stronger than Win32 1.3!]