dgaudet 97/06/26 20:02:17
Modified: htdocs Tag: APACHE_1_2_X index.html htdocs/manual Tag: APACHE_1_2_X custom-error.html index.html new_features_1_2.html process-model.html suexec.html virtual-host.html htdocs/manual/misc Tag: APACHE_1_2_X FAQ.html compat_notes.html fin_wait_2.html index.html known_bugs.html nopgp.html perf-bsd44.html perf.html vif-info.html htdocs/manual/mod Tag: APACHE_1_2_X core.html mod_auth_anon.html mod_dir.html mod_include.html mod_proxy.html mod_rewrite.html mod_status.html Added: htdocs/manual Tag: APACHE_1_2_X new_features_1_3.html htdocs/manual/misc Tag: APACHE_1_2_X descriptors.html Log: Merge in all of the docs from HEAD, I'll clean it up a bit later. Revision Changes Path No revision No revision 1.5.2.1 +33 -23 apache/htdocs/index.html Index: index.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/index.html,v retrieving revision 1.5 retrieving revision 1.5.2.1 diff -C3 -r1.5 -r1.5.2.1 *** index.html 1997/05/01 05:26:31 1.5 --- index.html 1997/06/27 03:01:56 1.5.2.1 *************** *** 1,23 **** ! <HTML><HEAD> ! <TITLE>Test Page for Apache</TITLE> ! </HEAD><BODY> ! ! <H1>It Worked!</H1> ! ! If you can see this, then your ! <A HREF="http://www.apache.org/">Apache</A> installation was ! successful. You may now add content to this directory and ! replace this page. ! ! <P> ! The Apache <A HREF="manual/index.html">documentation has been ! included with this distribution.</A> ! ! <P> ! You are free to use the image below on an Apache-powered web ! server. Thanks for using Apache! ! ! <P> ! <img src="apache_pb.gif" alt=""> ! ! </BODY></HTML> --- 1,33 ---- ! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> ! <HTML> ! <HEAD> ! <TITLE>Test Page for Apache</TITLE> ! </HEAD> ! <!-- Background white, links blue (unvisited), navy (visited), red (active) --> ! <BODY ! BGCOLOR="#FFFFFF" ! TEXT="#000000" ! LINK="#0000FF" ! VLINK="#000080" ! ALINK="#FF0000" ! > ! <H1 ALIGN="CENTER">It Worked!</H1> ! <P> ! If you can see this, then your ! <A HREF="http://www.apache.org/">Apache</A> installation was ! successful. You may now add content to this directory and ! replace this page. ! </P> ! <P> ! The Apache <A HREF="manual/index.html">documentation</A> has been ! included with this distribution. ! </P> ! <P> ! You are free to use the image below on an Apache-powered web ! server. Thanks for using Apache! ! </P> ! <P ALIGN="CENTER"> ! <IMG SRC="apache_pb.gif" ALT=""> ! </P> ! </BODY> ! </HTML> No revision No revision 1.8.2.1 +2 -2 apache/htdocs/manual/custom-error.html Index: custom-error.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/custom-error.html,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C3 -r1.8 -r1.8.2.1 *** custom-error.html 1997/06/04 11:07:47 1.8 --- custom-error.html 1997/06/27 03:01:58 1.8.2.1 *************** *** 29,37 **** response, then this response can be replaced with either some friendlier text or by a redirection to another URL (local or external). ! <P> ! <DT>Old behavior <DD>NCSA httpd 1.3 would return some boring old error/problem message --- 29,37 ---- response, then this response can be replaced with either some friendlier text or by a redirection to another URL (local or external). ! <P> ! <DT>Old behavior <DD>NCSA httpd 1.3 would return some boring old error/problem message 1.14.2.1 +1 -0 apache/htdocs/manual/index.html Index: index.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/index.html,v retrieving revision 1.14 retrieving revision 1.14.2.1 diff -C3 -r1.14 -r1.14.2.1 *** index.html 1997/06/04 11:07:48 1.14 --- index.html 1997/06/27 03:01:58 1.14.2.1 *************** *** 19,24 **** --- 19,25 ---- <h3><a name="new">Release Notes</a></h3> <ul> + <li><a href="new_features_1_3.html">New features in Apache 1.3</a> <li><a href="new_features_1_2.html">New features in Apache 1.2</a> <li><a href="new_features_1_1.html">New features in Apache 1.1</a> <li><a href="new_features_1_0.html">New features in Apache 1.0</a> 1.29.2.1 +6 -6 apache/htdocs/manual/new_features_1_2.html Index: new_features_1_2.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/new_features_1_2.html,v retrieving revision 1.29 retrieving revision 1.29.2.1 diff -C3 -r1.29 -r1.29.2.1 *** new_features_1_2.html 1997/06/04 11:07:51 1.29 --- new_features_1_2.html 1997/06/27 03:01:58 1.29.2.1 *************** *** 193,204 **** <li><b><a href="mod/mod_proxy.html">Optional proxy module</a></b><br> An improved FTP, HTTP, and CONNECT mode SSL proxy is included with Apache 1.2. Some of the changes visible to users: ! <dl><dl> ! <dt>- Improved FTP proxy supporting PASV mode ! <dt>- ProxyBlock directive for excluding sites to proxy ! <dt>- NoCache * directive for disabling proxy caching ! <dt>- Numerous bug fixes ! </dl></dl> </ul> --- 193,204 ---- <li><b><a href="mod/mod_proxy.html">Optional proxy module</a></b><br> An improved FTP, HTTP, and CONNECT mode SSL proxy is included with Apache 1.2. Some of the changes visible to users: ! <dl><dl> ! <dt>- Improved FTP proxy supporting PASV mode ! <dt>- ProxyBlock directive for excluding sites to proxy ! <dt>- NoCache * directive for disabling proxy caching ! <dt>- Numerous bug fixes ! </dl></dl> </ul> 1.8.2.1 +3 -3 apache/htdocs/manual/process-model.html Index: process-model.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/process-model.html,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C3 -r1.8 -r1.8.2.1 *** process-model.html 1997/06/04 11:07:51 1.8 --- process-model.html 1997/06/27 03:01:59 1.8.2.1 *************** *** 39,47 **** The defaults for each variable are: <PRE> ! MinSpareServers 5 ! MaxSpareServers 10 ! StartServers 5 </PRE> There is an absolute maximum number of simultaneous children defined --- 39,47 ---- The defaults for each variable are: <PRE> ! MinSpareServers 5 ! MaxSpareServers 10 ! StartServers 5 </PRE> There is an absolute maximum number of simultaneous children defined 1.11.2.1 +157 -156 apache/htdocs/manual/suexec.html Index: suexec.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/suexec.html,v retrieving revision 1.11 retrieving revision 1.11.2.1 diff -C3 -r1.11 -r1.11.2.1 *** suexec.html 1997/06/05 20:07:19 1.11 --- suexec.html 1997/06/27 03:01:59 1.11.2.1 *************** *** 17,30 **** <P ALIGN="LEFT"> <OL> ! <LH><BIG><STRONG>CONTENTS</STRONG></BIG></LH> ! <LI><A HREF="#what">What is suEXEC?</A></LI> ! <LI><A HREF="#before">Before we begin.</A></LI> ! <LI><A HREF="#model">suEXEC Security Model.</A></LI> ! <LI><A HREF="#install">Configuring & Installing suEXEC</A></LI> ! <LI><A HREF="#enable">Enabling & Disabling suEXEC</A></LI> ! <LI><A HREF="#debug">Debugging suEXEC</A></LI> ! <LI><A HREF="#jabberwock">Beware the Jabberwock: Warnings & Examples</A></LI> </OL> </P> --- 17,31 ---- <P ALIGN="LEFT"> <OL> ! <LH><BIG><STRONG>CONTENTS</STRONG></BIG></LH> ! <LI><A HREF="#what">What is suEXEC?</A></LI> ! <LI><A HREF="#before">Before we begin.</A></LI> ! <LI><A HREF="#model">suEXEC Security Model.</A></LI> ! <LI><A HREF="#install">Configuring & Installing suEXEC</A></LI> ! <LI><A HREF="#enable">Enabling & Disabling suEXEC</A></LI> ! <LI><A HREF="#debug">Debugging suEXEC</A></LI> ! <LI><A HREF="#jabberwock">Beware the Jabberwock: Warnings & ! Examples</A></LI> </OL> </P> *************** *** 119,242 **** The wrapper then employs the following process to determine success or failure -- if any one of these conditions fail, the program logs the failure and exits with an error, otherwise it will continue: ! <OL> ! <LI><STRONG>Was the wrapper called with the proper number of arguments?</STRONG> ! <BLOCKQUOTE> ! The wrapper will only execute if it is given the proper number of arguments. ! The proper argument format is known to the Apache web server. If the wrapper ! is not receiving the proper number of arguments, it is either being hacked, or ! there is something wrong with the suEXEC portion of your Apache binary. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the user executing this wrapper a valid user of this system?</STRONG> ! <BLOCKQUOTE> ! This is to ensure that the user executing the wrapper is truly a user of the system. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is this valid user allowed to run the wrapper?</STRONG> ! <BLOCKQUOTE> ! Is this user the user allowed to run this wrapper? Only one user (the Apache ! user) is allowed to execute this program. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Does the target program have an unsafe hierarchical reference?</STRONG> ! <BLOCKQUOTE> ! Does the target program contain a leading '/' or have a '..' backreference? These ! are not allowed; the target program must reside within the Apache webspace. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target user name valid?</STRONG> ! <BLOCKQUOTE> ! Does the target user exist? ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target group name valid?</STRONG> ! <BLOCKQUOTE> ! Does the target group exist? ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target user <EM>NOT</EM> superuser?</STRONG> ! <BLOCKQUOTE> ! Presently, suEXEC does not allow 'root' to execute CGI/SSI programs. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target userid <EM>ABOVE</EM> the minimum ID number?</STRONG> ! <BLOCKQUOTE> ! The minimum user ID number is specified during configuration. This allows you ! to set the lowest possible userid that will be allowed to execute CGI/SSI programs. ! This is useful to block out "system" accounts. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target group <EM>NOT</EM> the superuser group?</STRONG> ! <BLOCKQUOTE> ! Presently, suEXEC does not allow the 'root' group to execute CGI/SSI programs. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target groupid <EM>ABOVE</EM> the minimum ID number?</STRONG> ! <BLOCKQUOTE> ! The minimum group ID number is specified during configuration. This allows you ! to set the lowest possible groupid that will be allowed to execute CGI/SSI programs. ! This is useful to block out "system" groups. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Can the wrapper successfully become the target user and group?</STRONG> ! <BLOCKQUOTE> ! Here is where the program becomes the target user and group via setuid and setgid ! calls. The group access list is also initialized with all of the groups of which ! the user is a member. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Does the directory in which the program resides exist?</STRONG> ! <BLOCKQUOTE> ! If it doesn't exist, it can't very well contain files. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the directory within the Apache webspace?</STRONG> ! <BLOCKQUOTE> ! If the request is for a regular portion of the server, is the requested directory ! within the server's document root? If the request is for a UserDir, is the requested ! directory within the user's document root? ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the directory <EM>NOT</EM> writable by anyone else?</STRONG> ! <BLOCKQUOTE> ! We don't want to open up the directory to others; only the owner user may be able ! to alter this directories contents. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Does the target program exist?</STRONG> ! <BLOCKQUOTE> ! If it doesn't exists, it can't very well be executed. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target program <EM>NOT</EM> writable by anyone else?</STRONG> ! <BLOCKQUOTE> ! We don't want to give anyone other than the owner the ability to change the program. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target program <EM>NOT</EM> setuid or setgid?</STRONG> ! <BLOCKQUOTE> ! We do not want to execute programs that will then change our UID/GID again. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target user/group the same as the program's user/group?</STRONG> ! <BLOCKQUOTE> ! Is the user the owner of the file? ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Can we successfully clean the process environment to ensure safe operations?</STRONG> ! <BLOCKQUOTE> ! suEXEC cleans the process' environment by establishing a safe execution PATH (defined ! during configuration), as well as only passing through those variables whose names ! are listed in the safe environment list (also created during configuration). ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Can we successfully become the target program and execute?</STRONG> ! <BLOCKQUOTE> ! Here is where suEXEC ends and the target program begins. ! </BLOCKQUOTE> ! </LI> ! </OL> </P> <P ALIGN="LEFT"> --- 120,243 ---- The wrapper then employs the following process to determine success or failure -- if any one of these conditions fail, the program logs the failure and exits with an error, otherwise it will continue: ! <OL> ! <LI><STRONG>Was the wrapper called with the proper number of arguments?</STRONG> ! <BLOCKQUOTE> ! The wrapper will only execute if it is given the proper number of arguments. ! The proper argument format is known to the Apache web server. If the wrapper ! is not receiving the proper number of arguments, it is either being hacked, or ! there is something wrong with the suEXEC portion of your Apache binary. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the user executing this wrapper a valid user of this system?</STRONG> ! <BLOCKQUOTE> ! This is to ensure that the user executing the wrapper is truly a user of the system. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is this valid user allowed to run the wrapper?</STRONG> ! <BLOCKQUOTE> ! Is this user the user allowed to run this wrapper? Only one user (the Apache ! user) is allowed to execute this program. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Does the target program have an unsafe hierarchical reference?</STRONG> ! <BLOCKQUOTE> ! Does the target program contain a leading '/' or have a '..' backreference? These ! are not allowed; the target program must reside within the Apache webspace. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target user name valid?</STRONG> ! <BLOCKQUOTE> ! Does the target user exist? ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target group name valid?</STRONG> ! <BLOCKQUOTE> ! Does the target group exist? ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target user <EM>NOT</EM> superuser?</STRONG> ! <BLOCKQUOTE> ! Presently, suEXEC does not allow 'root' to execute CGI/SSI programs. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target userid <EM>ABOVE</EM> the minimum ID number?</STRONG> ! <BLOCKQUOTE> ! The minimum user ID number is specified during configuration. This allows you ! to set the lowest possible userid that will be allowed to execute CGI/SSI programs. ! This is useful to block out "system" accounts. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target group <EM>NOT</EM> the superuser group?</STRONG> ! <BLOCKQUOTE> ! Presently, suEXEC does not allow the 'root' group to execute CGI/SSI programs. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target groupid <EM>ABOVE</EM> the minimum ID number?</STRONG> ! <BLOCKQUOTE> ! The minimum group ID number is specified during configuration. This allows you ! to set the lowest possible groupid that will be allowed to execute CGI/SSI programs. ! This is useful to block out "system" groups. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Can the wrapper successfully become the target user and group?</STRONG> ! <BLOCKQUOTE> ! Here is where the program becomes the target user and group via setuid and setgid ! calls. The group access list is also initialized with all of the groups of which ! the user is a member. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Does the directory in which the program resides exist?</STRONG> ! <BLOCKQUOTE> ! If it doesn't exist, it can't very well contain files. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the directory within the Apache webspace?</STRONG> ! <BLOCKQUOTE> ! If the request is for a regular portion of the server, is the requested directory ! within the server's document root? If the request is for a UserDir, is the requested ! directory within the user's document root? ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the directory <EM>NOT</EM> writable by anyone else?</STRONG> ! <BLOCKQUOTE> ! We don't want to open up the directory to others; only the owner user may be able ! to alter this directories contents. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Does the target program exist?</STRONG> ! <BLOCKQUOTE> ! If it doesn't exists, it can't very well be executed. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target program <EM>NOT</EM> writable by anyone else?</STRONG> ! <BLOCKQUOTE> ! We don't want to give anyone other than the owner the ability to change the program. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target program <EM>NOT</EM> setuid or setgid?</STRONG> ! <BLOCKQUOTE> ! We do not want to execute programs that will then change our UID/GID again. ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Is the target user/group the same as the program's user/group?</STRONG> ! <BLOCKQUOTE> ! Is the user the owner of the file? ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Can we successfully clean the process environment to ensure safe operations?</STRONG> ! <BLOCKQUOTE> ! suEXEC cleans the process' environment by establishing a safe execution PATH (defined ! during configuration), as well as only passing through those variables whose names ! are listed in the safe environment list (also created during configuration). ! </BLOCKQUOTE> ! </LI> ! <LI><STRONG>Can we successfully become the target program and execute?</STRONG> ! <BLOCKQUOTE> ! Here is where suEXEC ends and the target program begins. ! </BLOCKQUOTE> ! </LI> ! </OL> </P> <P ALIGN="LEFT"> *************** *** 257,263 **** <STRONG><A HREF="suexec.html">BACK TO CONTENTS</A></STRONG> </P> ! <H3><A NAME="install">Configuring & Installing suEXEC</A></H3> <P ALIGN="LEFT"> Here's where we begin the fun. The configuration and installation of suEXEC is a four step process: edit the suEXEC header file, compile suEXEC, place the --- 258,264 ---- <STRONG><A HREF="suexec.html">BACK TO CONTENTS</A></STRONG> </P> ! <H3><A NAME="install">Configuring & Installing suEXEC</A></H3> <P ALIGN="LEFT"> Here's where we begin the fun. The configuration and installation of suEXEC is a four step process: edit the suEXEC header file, compile suEXEC, place the *************** *** 396,402 **** <STRONG><A HREF="suexec.html">BACK TO CONTENTS</A></STRONG> </P> ! <H3><A NAME="enable">Enabling & Disabling suEXEC</A></H3> <P ALIGN="LEFT"> After properly installing the <STRONG>suexec</STRONG> wrapper executable, you must kill and restart the Apache server. A simple --- 397,403 ---- <STRONG><A HREF="suexec.html">BACK TO CONTENTS</A></STRONG> </P> ! <H3><A NAME="enable">Enabling & Disabling suEXEC</A></H3> <P ALIGN="LEFT"> After properly installing the <STRONG>suexec</STRONG> wrapper executable, you must kill and restart the Apache server. A simple *************** *** 454,460 **** <STRONG><A HREF="suexec.html">BACK TO CONTENTS</A></STRONG> </P> ! <H3><A NAME="jabberwock">Beware the Jabberwock: Warnings & Examples</A></H3> <P ALIGN="LEFT"> <STRONG>NOTE!</STRONG> This section may not be complete. For the latest revision of this section of the documentation, see the Apache Group's --- 455,461 ---- <STRONG><A HREF="suexec.html">BACK TO CONTENTS</A></STRONG> </P> ! <H3><A NAME="jabberwock">Beware the Jabberwock: Warnings & Examples</A></H3> <P ALIGN="LEFT"> <STRONG>NOTE!</STRONG> This section may not be complete. For the latest revision of this section of the documentation, see the Apache Group's *************** *** 467,499 **** limitations on server setup. Please review these before submitting any "bugs" regarding suEXEC. <UL> ! <LH><STRONG>suEXEC Points Of Interest</STRONG></LH> ! <LI>Hierarchy limitations ! <BLOCKQUOTE> ! For security and efficiency reasons, all suexec requests must ! remain within either a top-level document root for virtual ! host requests, or one top-level personal document root for ! userdir requests. For example, if you have four VirtualHosts ! configured, you would need to structure all of your VHosts' ! document roots off of one main Apache document hierarchy to ! take advantage of suEXEC for VirtualHosts. (Example forthcoming.) ! </BLOCKQUOTE> ! </LI> ! <LI>suEXEC's PATH environment variable ! <BLOCKQUOTE> ! This can be a dangerous thing to change. Make certain every ! path you include in this define is a <STRONG>trusted</STRONG> ! directory. You don't want to open people up to having someone ! from across the world running a trojan horse on them. ! </BLOCKQUOTE> ! </LI> ! <LI>Altering the suEXEC code ! <BLOCKQUOTE> ! Again, this can cause <STRONG>Big Trouble</STRONG> if you try ! this without knowing what you are doing. Stay away from it ! if at all possible. ! </BLOCKQUOTE> ! </LI> </UL> <P ALIGN="CENTER"> --- 468,500 ---- limitations on server setup. Please review these before submitting any "bugs" regarding suEXEC. <UL> ! <LH><STRONG>suEXEC Points Of Interest</STRONG></LH> ! <LI>Hierarchy limitations ! <BLOCKQUOTE> ! For security and efficiency reasons, all suexec requests must ! remain within either a top-level document root for virtual ! host requests, or one top-level personal document root for ! userdir requests. For example, if you have four VirtualHosts ! configured, you would need to structure all of your VHosts' ! document roots off of one main Apache document hierarchy to ! take advantage of suEXEC for VirtualHosts. (Example forthcoming.) ! </BLOCKQUOTE> ! </LI> ! <LI>suEXEC's PATH environment variable ! <BLOCKQUOTE> ! This can be a dangerous thing to change. Make certain every ! path you include in this define is a <STRONG>trusted</STRONG> ! directory. You don't want to open people up to having someone ! from across the world running a trojan horse on them. ! </BLOCKQUOTE> ! </LI> ! <LI>Altering the suEXEC code ! <BLOCKQUOTE> ! Again, this can cause <STRONG>Big Trouble</STRONG> if you try ! this without knowing what you are doing. Stay away from it ! if at all possible. ! </BLOCKQUOTE> ! </LI> </UL> <P ALIGN="CENTER"> 1.12.2.1 +2 -2 apache/htdocs/manual/virtual-host.html Index: virtual-host.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/virtual-host.html,v retrieving revision 1.12 retrieving revision 1.12.2.1 diff -C3 -r1.12 -r1.12.2.1 *** virtual-host.html 1997/06/04 11:07:52 1.12 --- virtual-host.html 1997/06/27 03:02:00 1.12.2.1 *************** *** 186,194 **** "rlimit" to some large number, like 512. <LI>Edit http_main.c to add calls to setrlimit() from main(), along the lines of <PRE> ! struct rlimit rlp; ! rlp.rlim_cur = rlp.rlim_max = 512; if (setrlimit(RLIMIT_NPROC, &rlp)) { fprintf(stderr, "setrlimit(RLIMIT_NPROC) failed.\n"); exit(1); --- 186,194 ---- "rlimit" to some large number, like 512. <LI>Edit http_main.c to add calls to setrlimit() from main(), along the lines of <PRE> ! struct rlimit rlp; ! rlp.rlim_cur = rlp.rlim_max = 512; if (setrlimit(RLIMIT_NPROC, &rlp)) { fprintf(stderr, "setrlimit(RLIMIT_NPROC) failed.\n"); exit(1); No revision No revision 1.1.2.1 +0 -0 apache/htdocs/manual/new_features_1_3.html Index: new_features_1_3.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/new_features_1_3.html,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -C3 -r1.1 -r1.1.2.1 No revision No revision 1.63.2.3 +181 -23 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.63.2.2 retrieving revision 1.63.2.3 diff -C3 -r1.63.2.2 -r1.63.2.3 *** FAQ.html 1997/06/11 21:21:39 1.63.2.2 --- FAQ.html 1997/06/27 03:02:04 1.63.2.3 *************** *** 15,21 **** <!--#include virtual="header.html" --> <H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.63.2.2 $ ($Date: 1997/06/11 21:21:39 $) </P> <P> The latest version of this FAQ is always available from the main --- 15,21 ---- <!--#include virtual="header.html" --> <H1 ALIGN="CENTER">Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.63.2.3 $ ($Date: 1997/06/27 03:02:04 $) </P> <P> The latest version of this FAQ is always available from the main *************** *** 35,45 **** <!-- apache.org or apacheweek.com). --> <!-- - When adding items, make sure they're put in the right place --> <!-- - verify that the numbering matches up. --> ! <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> <!-- correctly in a reliable way when this is converted to text --> ! <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> ! <!-- blocks inside a <P></P> instead. This is necessary to get --> ! <!-- the horizontal and vertical indenting right. --> <!-- - Don't forget to include an HR tag after the last /P tag --> <!-- but before the /LI in an item. --> <P> --- 35,45 ---- <!-- apache.org or apacheweek.com). --> <!-- - When adding items, make sure they're put in the right place --> <!-- - verify that the numbering matches up. --> ! <!-- - *Don't* use <PRE></PRE> blocks - they don't appear --> <!-- correctly in a reliable way when this is converted to text --> ! <!-- with Lynx. Use <DL><DD><CODE>xxx<BR>xx</CODE></DD></DL> --> ! <!-- blocks inside a <P></P> instead. This is necessary to get --> ! <!-- the horizontal and vertical indenting right. --> <!-- - Don't forget to include an HR tag after the last /P tag --> <!-- but before the /LI in an item. --> <P> *************** *** 131,136 **** --- 131,138 ---- <LI><A HREF="#fdlim">Why can't I run more than <<EM>n</EM>> virtual hosts?</A> </LI> + <LI><A HREF="#freebsd-setsize">Can I increase FD_SETSIZE on FreeBSD?</A> + </LI> <LI><A HREF="#limitGET">Why do I keep getting "access denied" for form POST requests?</A> </LI> *************** *** 205,210 **** --- 207,221 ---- </LI> <LI><A HREF="#no-info-directives">Why doesn't mod_info list any directives?</A> + <LI><A HREF="#linux-shmget">When I run it under Linux I get "shmget: + function not found", what should I do?</A> + </LI> + <LI><A HREF="#authauthoritative">Why does my authentification give + me a server error?</A> + <LI><A HREF="#auth-on-same-machine">Do I have to keep the (mSQL) + authentification information on the same machine?</A> + </LI> + <LI><A HREF="#msql-slow">Why is my mSQL authentification terribly slow?</A> </LI> </OL> </LI> *************** *** 569,595 **** <P> It means just what it says: the server was expecting a complete set of HTTP headers (one or more followed by a blank line), and didn't get ! them. The most common cause of this (aside from people not ! outputting the required headers at all) a result of an interaction ! with perl's output buffering. To make perl flush its buffers ! after each output statement, insert the following statements before your ! first <CODE>print</CODE> or <CODE>write</CODE> statement: </P> <P> <DL> ! <DD><CODE>$cfh = select (STDOUT);<BR> ! $| = 1;<BR> ! select ($cfh);</CODE> </DD> </DL> </P> <P> This is generally only necessary when you are calling external programs from your script that send output to stdout, or if there will ! be along delay between the time the headers are sent and the actual content starts being emitted. To maximise performance, you should ! turn buffering back <EM>on</EM> (with <CODE>$| = 0</CODE> or the ! equivalent) after the statements that send the headers. <P> If your script isn't written in Perl, do the equivalent thing for whatever language you <EM>are</EM> using (<EM>e.g.</EM>, for C, call --- 580,627 ---- <P> It means just what it says: the server was expecting a complete set of HTTP headers (one or more followed by a blank line), and didn't get ! them. ! </P> ! <P> ! The most common cause of this problem is the script dying before ! sending the complete set of headers, or possibly any at all, to the ! server. To see if this is the case, try running the script standalone ! from an interactive session, rather than as a script under the server. ! If you get error messages, this is almost certainly the cause of the ! "premature end of script headers" message. ! </P> ! <P> ! The second most common cause of this (aside from people not ! outputting the required headers at all) is a result of an interaction ! with Perl's output buffering. To make Perl flush its buffers ! after each output statement, insert the following statements around ! the <CODE>print</CODE> or <CODE>write</CODE> statements that send your ! HTTP headers: </P> <P> <DL> ! <DD><CODE>{<BR> ! local ($oldbar) = $|;<BR> ! $cfh = select (STDOUT);<BR> ! $| = 1;<BR> ! #<BR> ! # print your HTTP headers here<BR> ! #<BR> ! $| = $oldbar;<BR> ! select ($cfh);<BR> ! }</CODE> </DD> </DL> </P> <P> This is generally only necessary when you are calling external programs from your script that send output to stdout, or if there will ! be a long delay between the time the headers are sent and the actual content starts being emitted. To maximise performance, you should ! turn buffer-flushing back <EM>off</EM> (with <CODE>$| = 0</CODE> or the ! equivalent) after the statements that send the headers, as displayed ! above. ! </P> <P> If your script isn't written in Perl, do the equivalent thing for whatever language you <EM>are</EM> using (<EM>e.g.</EM>, for C, call *************** *** 796,803 **** HREF="../mod/core.html#listen" ><SAMP>Listen</SAMP></A> directives. If there are no other servers running on the machine ! and all of them are running on the same port, you normally don't ! need any Listen directives at all. </LI> <LI>Reduce the number of log files. You can use <A --- 828,836 ---- HREF="../mod/core.html#listen" ><SAMP>Listen</SAMP></A> directives. If there are no other servers running on the machine ! on the same port then you normally don't ! need any Listen directives at all. By default Apache listens to ! all addresses on port 80. </LI> <LI>Reduce the number of log files. You can use <A *************** *** 815,821 **** <A HREF="perf.html" >performance hints</A> ! page. </LI> <LI>"Don't do that" - try to run with fewer virtual hosts </LI> --- 848,855 ---- <A HREF="perf.html" >performance hints</A> ! page. There is a specific note for ! <a href="#freebsd-setsize">FreeBSD</a> below. </LI> <LI>"Don't do that" - try to run with fewer virtual hosts </LI> *************** *** 831,836 **** --- 865,888 ---- available in the way of solutions. </P> <HR> + + <LI><A NAME="freebsd-setsize"> + <STRONG>Can I increase FD_SETSIZE on FreeBSD?</STRONG> + </A> + <P> + On FreeBSD 2.2 and older FD_SETSIZE, which limits the number of open + files on the system, is limted to 256. This can limit the number of + virtual hosts you are using; especially if they all use different log + files. Increasing this limit (and recompiling apache) is not enough + (As it is on some platforms, such as Solaris), as you also will have + to recompile libc with the changed setting. + </P> + <p> + On FreeBSD 3.0 the default is 1024, so the problem is lessened. + </p> + <HR> + </LI> + <LI><A NAME="limitGET"> <STRONG>Why do I keep getting "access denied" for form POST requests?</STRONG> *************** *** 1113,1119 **** </P> <P> <DL> ! <DD><CODE>if ($0 =~ m:/*nph-:) { <BR> $HTTP_headers = --- 1165,1171 ---- </P> <P> <DL> ! <DD><CODE>if ($0 =~ m:^(.*/)*nph-[^/]*$:) { <BR> $HTTP_headers = *************** *** 1124,1132 **** "Connection: close\015\012"; <BR> ! printf ($HTTP_headers); <BR> ! };</CODE> </DD> </DL> </P> --- 1176,1184 ---- "Connection: close\015\012"; <BR> ! print $HTTP_headers; <BR> ! }</CODE> </DD> </DL> </P> *************** *** 1137,1143 **** </LI> <LI><A NAME="linuxiovec"> <STRONG>Why do I get complaints about redefinition ! of "<CODE>struct iovec</CODE>" when compiling under Linux?</STRONG> </A> <P> This is a conflict between your C library includes and your kernel --- 1189,1196 ---- </LI> <LI><A NAME="linuxiovec"> <STRONG>Why do I get complaints about redefinition ! of "<CODE>struct iovec</CODE>" when ! compiling under Linux?</STRONG> </A> <P> This is a conflict between your C library includes and your kernel *************** *** 1538,1543 **** --- 1591,1701 ---- this event, however. </P> <HR> + </LI> + + <LI><A NAME="linux-shmget"> + <STRONG>When I run it under Linux I get "shmget: + function not found", what should I do?</STRONG> + </A> + <P> + Your kernel has been built without SysV IPC support. You will have to + rebuild the kernel with that support enabled (it's under the + "General Setup" submenu). Documention for + kernel building is beyond the scope of this FAQ, you should consult + the <A HREF="http://www.linuxhq.com/HOWTO/Kernel-HOWTO.html">Kernel + HOWTO</A>, or the documentation provided with your distribution, + or a <A HREF="http://www.linuxhq.com/HOWTO/META-FAQ.html">Linux + newsgroup/mailing list</A>. As a last resort workaround, you can + comment out the <CODE>#define HAVE_SHMGET</CODE> definition in the + <CODE>LINUX</CODE> section of + <CODE>src/conf.h</CODE> and rebuild the server. This will produce + a server which is slower and less reliable. + </P> + <HR> + </LI> + + <LI><A NAME="authauthoritative"> + <STRONG>Why does my authentification give me a server error?</STRONG> + </A> + <P> + Under normal circumstances, the apache access control modules will + pass unrecognized userids on to the next access control module in + line. Only if the userid is recognized, the password is validated + (or not) will it give the usual success or authentification failed + messages. + </p> + <p> + However if the last access module in line 'declines' the validation + request (because it has never heard of the userid or because it is not + configured) the http_request handler will give one of the following, + confusing, errors: + <UL> + <li> <code>check access</code> + <li> <code>check user. No user file? </code> + <li> <code>check access. No groups file? </code> + </ul> + This does not mean that you have to add a 'AuthUserFile /dev/null' + line as some magazines suggest ! + </p> + <p> + The solution is to ensure that at least the last module is authoritative + and <b>CONFIGURED</b>. By default <code>mod_auth</code> is authoritative + and will give an OK/Denied, but only if it is configured with the + proper AuthUserFile. Likewise if a valid group is required. (Remember + that the modules are processed in the reverse order they appear in + your compile-time Configuration file.) + </P> + <p> + A typical situation for this error is when you are using the + mod_auth_dbm, mod_auth_msql, mod_auth_mysql, mod_auth_anon or + mod_auth_cookie on their own. These are by default <b>not</b> + authoritative, and this will pass the buck on to the (non-existent) next + authentification module when the user ID is not in their respective + database. Just add the appropriate 'XXXAuthoritative yes' line to + the configuration. + </p> + <p> + In general it is a good idea (though not terribly efficient) to have the + file based mod_auth a module of last resort. This allows you to access + the web server with a few special passwords even if the databases are + down or corrupted. This does cost a file-open/seek/close for each + request in a protected area. + </p> + <HR> + </LI> + + <LI><A NAME="auth-on-same-machine"> + <STRONG>Do I have to keep the (mSQL) authentification information + on the same machine?</STRONG> + </A> + <p> + Some organizations feel very strongly about keeping the authentification + information on a different machine than the webserver. With the + mod_auth_msql, mod_auth_mysql and other SQL modules connecting to + (R)DBMses this is quite well possible. Just configure an explicit host + to contact. + </p> + <p> + Be aware that with mSQL and Oracle, opening and closing these database + connections is very expensive and time consuming. You might want to + look at the code in the auth_modules and play with the compile time + flags to alleviate this somewhat; if your RDBMS licences alows for it. + </p> + <HR> + </LI> + + <LI><A NAME="msql-slow"> + <STRONG>Why is my mSQL authentification terribly slow?</STRONG> + </A> + <p> + You have probably configured the Host by specificing a FQHN, + and thus the libmsql will use a full blown tcp/ip socket to talk to + the database, rather than a fast internal device. Both the libmsql, + the mSQL faq and the mod_auth_msql documentation warn you about this. If + you have to use different hosts, check out the mod_auth_msql code for + some compile time flags which might, or might not suit you. + </p> + <HR> </LI> <!-- Don't forget to add HR tags at the end of each list item.. --> 1.7.2.2 +4 -0 apache/htdocs/manual/misc/compat_notes.html Index: compat_notes.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/compat_notes.html,v retrieving revision 1.7.2.1 retrieving revision 1.7.2.2 diff -C3 -r1.7.2.1 -r1.7.2.2 *** compat_notes.html 1997/06/09 14:42:12 1.7.2.1 --- compat_notes.html 1997/06/27 03:02:05 1.7.2.2 *************** *** 33,38 **** --- 33,39 ---- <LI>The basic mod_auth <CODE>AuthGroupFile</CODE>-specified group file format allows commas between user names - Apache does not.<BR> <I>- added 12/1/96</I> + <p> <LI><P>If you follow the NCSA guidelines for setting up access restrictions based on client domain, you may well have added entries for, *************** *** 99,104 **** --- 100,108 ---- files if the last line does not have a trailing newline. This affects configuration files (httpd.conf, access.conf and srm.conf), and htpasswd and htgroup files. + </LI> + + <LI>Apache does not permit commas delimiting the methods in <Limit>. </OL> 1.7.2.1 +57 -57 apache/htdocs/manual/misc/fin_wait_2.html Index: fin_wait_2.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/fin_wait_2.html,v retrieving revision 1.7 retrieving revision 1.7.2.1 diff -C3 -r1.7 -r1.7.2.1 *** fin_wait_2.html 1997/06/04 11:42:56 1.7 --- fin_wait_2.html 1997/06/27 03:02:05 1.7.2.1 *************** *** 57,69 **** connection stays in the FIN_WAIT_2 state until one of the following happens:<P> <UL> ! <LI>The client opens a new connection to the same or a different ! site, which causes it to fully close the older connection on that socket. ! <LI>The user exits the client, which on some (most?) clients ! causes the OS to fully shutdown the connection. ! <LI>The FIN_WAIT_2 times out, on servers that have a timeout ! for this state. </UL><P> If you are lucky, this means that the buggy client will fully close the connection and release the resources on your server. However, there --- 57,69 ---- connection stays in the FIN_WAIT_2 state until one of the following happens:<P> <UL> ! <LI>The client opens a new connection to the same or a different ! site, which causes it to fully close the older connection on that socket. ! <LI>The user exits the client, which on some (most?) clients ! causes the OS to fully shutdown the connection. ! <LI>The FIN_WAIT_2 times out, on servers that have a timeout ! for this state. </UL><P> If you are lucky, this means that the buggy client will fully close the connection and release the resources on your server. However, there *************** *** 77,92 **** The clients on which this problem has been verified to exist:<P> <UL> ! <LI>Mozilla/3.01 (X11; I; FreeBSD 2.1.5-RELEASE i386) ! <LI>Mozilla/2.02 (X11; I; FreeBSD 2.1.5-RELEASE i386) ! <LI>Mozilla/3.01Gold (X11; I; SunOS 5.5 sun4m) ! <LI>MSIE 3.01 on the Macintosh ! <LI>MSIE 3.01 on Windows 95 </UL><P> This does not appear to be a problem on: <UL> ! <LI>Mozilla/3.01 (Win95; I) </UL> <P> --- 77,92 ---- The clients on which this problem has been verified to exist:<P> <UL> ! <LI>Mozilla/3.01 (X11; I; FreeBSD 2.1.5-RELEASE i386) ! <LI>Mozilla/2.02 (X11; I; FreeBSD 2.1.5-RELEASE i386) ! <LI>Mozilla/3.01Gold (X11; I; SunOS 5.5 sun4m) ! <LI>MSIE 3.01 on the Macintosh ! <LI>MSIE 3.01 on Windows 95 </UL><P> This does not appear to be a problem on: <UL> ! <LI>Mozilla/3.01 (Win95; I) </UL> <P> *************** *** 155,210 **** The following systems are known to have a timeout: <P> <UL> ! <LI><A HREF="http://www.freebsd.org/">FreeBSD</A> versions starting at 2.0 or possibly earlier. ! <LI><A HREF="http://www.netbsd.org/">NetBSD</A> version 1.2(?) ! <LI><A HREF="http://www.openbsd.org/">OpenBSD</A> all versions(?) ! <LI><A HREF="http://www.bsdi.com/">BSD/OS</A> 2.1, with the ! <A HREF="ftp://ftp.bsdi.com/bsdi/patches/patches-2.1/K210-027"> ! K210-027</A> patch installed. ! <LI><A HREF="http://www.sun.com/">Solaris</A> as of around version ! 2.2. The timeout can be tuned by using <CODE>ndd</CODE> to ! modify <CODE>tcp_fin_wait_2_flush_interval</CODE>, but the ! default should be appropriate for most servers and improper ! tuning can have negative impacts. ! <LI><A HREF="http://www.sco.com/">SCO TCP/IP Release 1.2.1</A> ! can be modified to have a timeout by following ! <A HREF="http://www.sco.com/cgi-bin/waisgate?WAISdocID=2242622956+0+0+0&WAISaction=retrieve"> SCO's instructions</A>. ! <LI><A HREF="http://www.linux.org/">Linux</A> 2.0.x and ! earlier(?) ! <LI><A HREF="http://www.hp.com/">HP-UX</A> 10.x defaults to ! terminating connections in the FIN_WAIT_2 state after the ! normal keepalive timeouts. This does not ! refer to the persistent connection or HTTP keepalive ! timeouts, but the <CODE>SO_LINGER</CODE> socket option ! which is enabled by Apache. This parameter can be adjusted ! by using <CODE>nettune</CODE> to modify parameters such as ! <CODE>tcp_keepstart</CODE> and <CODE>tcp_keepstop</CODE>. ! In later revisions, there is an explicit timer for ! connections in FIN_WAIT_2 that can be modified; contact HP ! support for details. ! <LI><A HREF="http://www.sgi.com/">SGI IRIX</A> can be patched to ! support a timeout. For IRIX 5.3, 6.2, and 6.3, ! use patches 1654, 1703 and 1778 respectively. If you ! have trouble locating these patches, please contact your ! SGI support channel for help. ! <LI><A HREF="http://www.ncr.com/">NCR's MP RAS Unix</A> 2.xx and ! 3.xx both have FIN_WAIT_2 timeouts. In 2.xx it is non-tunable ! at 600 seconds, while in 3.xx it defaults to 600 seconds and ! is calculated based on the tunable "max keep alive probes" ! (default of 8) multiplied by the "keep alive interval" (default ! 75 seconds). ! <LI><A HREF="http://www.sequent.com">Squent's ptx/TCP/IP for ! DYNIX/ptx</A> has had a FIN_WAIT_2 timeout since around ! release 4.1 in mid-1994. </UL> <P> The following systems are known to not have a timeout: <P> <UL> ! <LI><A HREF="http://www.sun.com/">SunOS 4.x</A> does not and ! almost certainly never will have one because it as at the ! very end of its development cycle for Sun. If you have kernel ! source should be easy to patch. </UL> <P> There is a --- 155,210 ---- The following systems are known to have a timeout: <P> <UL> ! <LI><A HREF="http://www.freebsd.org/">FreeBSD</A> versions starting at 2.0 or possibly earlier. ! <LI><A HREF="http://www.netbsd.org/">NetBSD</A> version 1.2(?) ! <LI><A HREF="http://www.openbsd.org/">OpenBSD</A> all versions(?) ! <LI><A HREF="http://www.bsdi.com/">BSD/OS</A> 2.1, with the ! <A HREF="ftp://ftp.bsdi.com/bsdi/patches/patches-2.1/K210-027"> ! K210-027</A> patch installed. ! <LI><A HREF="http://www.sun.com/">Solaris</A> as of around version ! 2.2. The timeout can be tuned by using <CODE>ndd</CODE> to ! modify <CODE>tcp_fin_wait_2_flush_interval</CODE>, but the ! default should be appropriate for most servers and improper ! tuning can have negative impacts. ! <LI><A HREF="http://www.sco.com/">SCO TCP/IP Release 1.2.1</A> ! can be modified to have a timeout by following ! <A HREF="http://www.sco.com/cgi-bin/waisgate?WAISdocID=2242622956+0+0+0&WAISaction=retrieve"> SCO's instructions</A>. ! <LI><A HREF="http://www.linux.org/">Linux</A> 2.0.x and ! earlier(?) ! <LI><A HREF="http://www.hp.com/">HP-UX</A> 10.x defaults to ! terminating connections in the FIN_WAIT_2 state after the ! normal keepalive timeouts. This does not ! refer to the persistent connection or HTTP keepalive ! timeouts, but the <CODE>SO_LINGER</CODE> socket option ! which is enabled by Apache. This parameter can be adjusted ! by using <CODE>nettune</CODE> to modify parameters such as ! <CODE>tcp_keepstart</CODE> and <CODE>tcp_keepstop</CODE>. ! In later revisions, there is an explicit timer for ! connections in FIN_WAIT_2 that can be modified; contact HP ! support for details. ! <LI><A HREF="http://www.sgi.com/">SGI IRIX</A> can be patched to ! support a timeout. For IRIX 5.3, 6.2, and 6.3, ! use patches 1654, 1703 and 1778 respectively. If you ! have trouble locating these patches, please contact your ! SGI support channel for help. ! <LI><A HREF="http://www.ncr.com/">NCR's MP RAS Unix</A> 2.xx and ! 3.xx both have FIN_WAIT_2 timeouts. In 2.xx it is non-tunable ! at 600 seconds, while in 3.xx it defaults to 600 seconds and ! is calculated based on the tunable "max keep alive probes" ! (default of 8) multiplied by the "keep alive interval" (default ! 75 seconds). ! <LI><A HREF="http://www.sequent.com">Squent's ptx/TCP/IP for ! DYNIX/ptx</A> has had a FIN_WAIT_2 timeout since around ! release 4.1 in mid-1994. </UL> <P> The following systems are known to not have a timeout: <P> <UL> ! <LI><A HREF="http://www.sun.com/">SunOS 4.x</A> does not and ! almost certainly never will have one because it as at the ! very end of its development cycle for Sun. If you have kernel ! source should be easy to patch. </UL> <P> There is a 1.4.2.1 +14 -14 apache/htdocs/manual/misc/index.html Index: index.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/index.html,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C3 -r1.4 -r1.4.2.1 *** index.html 1997/06/04 11:42:57 1.4 --- index.html 1997/06/27 03:02:06 1.4.2.1 *************** *** 21,112 **** </P> <DL> <DT><A ! HREF="API.html" >API</A> </DT> <DD>Description of Apache's Application Programming Interface. </DD> <DT><A ! HREF="FAQ.html" >FAQ</A> </DT> <DD>Frequently-Asked Questions concerning the Apache project and server </DD> <DT><A ! HREF="client_block_api.html" >Reading Client Input in Apache 1.2</A> </DT> <DD>Describes differences between Apache 1.1 and 1.2 in how modules read information from the client </DD> <DT><A ! HREF="compat_notes.html" >Compatibility with NCSA</A> </DT> <DD>Notes about Apache's compatibility with the NCSA server </DD> <DT><A ! HREF="fin_wait_2.html" ><SAMP>FIN_WAIT_2</SAMP></A> </DT> <DD>A description of the causes of Apache processes going into the <SAMP>FIN_WAIT_2</SAMP> state, and what you can do about it </DD> <DT><A ! HREF="howto.html" >"How-To"</A> </DT> <DD>Instructions about how to accomplish some commonly-desired server functionality changes </DD> <DT><A ! HREF="known_bugs.html" >Known Bugs</A> </DT> <DD>Just what it says - a list of known bugs in each of the Apache releases </DD> <DT><A ! HREF="nopgp.html" >No PGP</A> </DT> <DD>Why we took PEM and PGP support out of the base Apache distribution </DD> <DT><A ! HREF="perf-bsd44.html" >Performance Notes (BSD 4.4)</A> </DT> <DD>Some notes about ways to improve/optimize Apache performance on BSD 4.4 systems </DD> <DT><A ! HREF="perf-dec.html" >Performance Notes (Digital UNIX)</A> </DT> <DD>Extracts of USENET postings describing how to optimize Apache performance on Digital UNIX systems </DD> <DT><A ! HREF="perf.html" >Performance Notes (General)</A> </DT> <DD>Some generic notes about how to improve Apache performance </DD> <DT><A ! HREF="security_tips.html" >Security Tips</A> </DT> <DD>Some "do"s - and "don't"s - for keeping your Apache web site secure </DD> <DT><A ! HREF="vif-info.html" >Virtual Hosts (IP-based)</A> </DT> <DD>Excerpts and notes about configuring and using Apache IP-based virtual hosts </DD> <DT><A ! HREF="windoz_keepalive.html" >Windows Bug with Web Keepalive</A> </DT> <DD>A brief description of a known problem with Microsoft Windows and --- 21,112 ---- </P> <DL> <DT><A ! HREF="API.html" >API</A> </DT> <DD>Description of Apache's Application Programming Interface. </DD> <DT><A ! HREF="FAQ.html" >FAQ</A> </DT> <DD>Frequently-Asked Questions concerning the Apache project and server </DD> <DT><A ! HREF="client_block_api.html" >Reading Client Input in Apache 1.2</A> </DT> <DD>Describes differences between Apache 1.1 and 1.2 in how modules read information from the client </DD> <DT><A ! HREF="compat_notes.html" >Compatibility with NCSA</A> </DT> <DD>Notes about Apache's compatibility with the NCSA server </DD> <DT><A ! HREF="fin_wait_2.html" ><SAMP>FIN_WAIT_2</SAMP></A> </DT> <DD>A description of the causes of Apache processes going into the <SAMP>FIN_WAIT_2</SAMP> state, and what you can do about it </DD> <DT><A ! HREF="howto.html" >"How-To"</A> </DT> <DD>Instructions about how to accomplish some commonly-desired server functionality changes </DD> <DT><A ! HREF="known_bugs.html" >Known Bugs</A> </DT> <DD>Just what it says - a list of known bugs in each of the Apache releases </DD> <DT><A ! HREF="nopgp.html" >No PGP</A> </DT> <DD>Why we took PEM and PGP support out of the base Apache distribution </DD> <DT><A ! HREF="perf-bsd44.html" >Performance Notes (BSD 4.4)</A> </DT> <DD>Some notes about ways to improve/optimize Apache performance on BSD 4.4 systems </DD> <DT><A ! HREF="perf-dec.html" >Performance Notes (Digital UNIX)</A> </DT> <DD>Extracts of USENET postings describing how to optimize Apache performance on Digital UNIX systems </DD> <DT><A ! HREF="perf.html" >Performance Notes (General)</A> </DT> <DD>Some generic notes about how to improve Apache performance </DD> <DT><A ! HREF="security_tips.html" >Security Tips</A> </DT> <DD>Some "do"s - and "don't"s - for keeping your Apache web site secure </DD> <DT><A ! HREF="vif-info.html" >Virtual Hosts (IP-based)</A> </DT> <DD>Excerpts and notes about configuring and using Apache IP-based virtual hosts </DD> <DT><A ! HREF="windoz_keepalive.html" >Windows Bug with Web Keepalive</A> </DT> <DD>A brief description of a known problem with Microsoft Windows and 1.14.2.2 +59 -258 apache/htdocs/manual/misc/known_bugs.html Index: known_bugs.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/known_bugs.html,v retrieving revision 1.14.2.1 retrieving revision 1.14.2.2 diff -C3 -r1.14.2.1 -r1.14.2.2 *** known_bugs.html 1997/06/09 14:17:28 1.14.2.1 --- known_bugs.html 1997/06/27 03:02:06 1.14.2.2 *************** *** 17,31 **** The most up-to-date resource for bug tracking and information is the <A HREF="http://www.apache.org/bugdb.cgi">Apache bug database</A>. ! All existing bugs will be noted there. Below is a synopsis of ! significant outstanding bugs at release time. In fact you really ! shouldn't trust anything this page says other than the 1.2 ! information. <P>See Also: <A HREF="compat_notes.html">Compatibility notes</A></P> <HR> ! <H2>Version 1.2 (all)</H2> <OL><a name="listenbug"></a> <LI>On some architectures if your configuration uses multiple --- 17,31 ---- The most up-to-date resource for bug tracking and information is the <A HREF="http://www.apache.org/bugdb.cgi">Apache bug database</A>. ! Significant bugs at release time will also be noted there. ! If you are running a 1.2 beta release or version 1.1.3 or earlier ! and thing you have found a bug, please upgrade to 1.2. Many bugs ! in early versions have been fixed in 1.2. <P>See Also: <A HREF="compat_notes.html">Compatibility notes</A></P> <HR> ! <H2>Apache 1.2 Bugs</H2> <OL><a name="listenbug"></a> <LI>On some architectures if your configuration uses multiple *************** *** 39,45 **** This affects any architecture that doesn't use one of the <code>USE_xxxxx_SERIALIZED_ACCEPT</code> definitions, see the source file <code>conf.h</code> for your architecture. ! <p>This will be tracked as <a href="http://www.apache.org/bugdb.cgi/full/467">PR#467</a>. </LI> --- 39,45 ---- This affects any architecture that doesn't use one of the <code>USE_xxxxx_SERIALIZED_ACCEPT</code> definitions, see the source file <code>conf.h</code> for your architecture. ! This will be tracked as <a href="http://www.apache.org/bugdb.cgi/full/467">PR#467</a>. </LI> *************** *** 51,318 **** This <A HREF="../../dist/contrib/patches/1.2/conneg-bug.patch">patch</A> fixes this problem. It also fixes the problem which makes Apache pick the last equally acceptable variant instead of the first. ! <p>This will be tracked as <a href="http://www.apache.org/bugdb.cgi/full/94">PR#94</a>. </LI> - </OL> - - <H2>Version 1.2b8</H2> - - There are several known bugs in 1.2b8. See the - <A HREF="http://www.apache.org/dist/patches/apply_to_1.2b8/">1.2b8 patches - directory</A> for patches for some of the ones that have been fixed since - the release of 1.2b8.<P> - - <H2>Version 1.2b1</H2> - - <OL> - - <LI>users have reported problems with many connections stuck in the - FIN_WAIT_2 state due to server timeouts. This is a quite complicated - problem; see our <A HREF="fin_wait_2.html">FIN_WAIT_2</A> page for - details. - - <LI>hard_timeout() for request reads uses incorrect logic, and - ends up waiting for an initial request read for the default "timeout" - number of seconds, 1200, yet only the "KeepAliveTimeout" number of - seconds on keepalive connections. - - <LI>mod_info output is not displaying current configuration as - it should. - - <LI>Invalid commands in .htaccess files may cause segmentation faults. - - </OL> - - <H2>Version 1.1.1</H2> - - <OL> - - <LI>Hostnames such as "123.hotwired.com" are valid, yet - find_allowdeny does not properly handle them. This should be put on - Known Bugs. Be careful when fixing this because just removing the - isalpha() check creates a security hole, consider the DNS map - "1.1.1.1.in-addr.arpa IN PTR 2.2.2." if the user has a config line - "allow from 2.2.2" it will allow 1.1.1.1 in (unless -DMAXIMUM_DNS). - -- which is bad because it breaks people who understand double reverse - lookup and are trying to avoid it by using only IP addresses on - allow/deny statements. - reported by Dean Gaudet, fixed in 1.2. - - </OL> - - - <H2>Version 1.1.0</H2> - - <OL> - <LI>mod_auth_msql misbehaviors. Grab a newer version from - <A HREF="http://www.apache.org/dist/contrib/modules/">the modules distribution - directory</A>. -fixed in 1.1 - - <LI>Hanging on Netscape 2.0-3.0b4 on MSWindows (3.1 and 95) - - we investigated pretty seriously, and as best we can tell - this is a Netscape bug, and was fixed in 3.0b5. Please read our - <A HREF="windoz_keepalive.html">lab report</A>. - - </OL> - - <H2>Version 1.1b2 (beta)</h2> - <OL> - <LI>SunOS has trouble compiling mod_status.c . It'll be fixed - before 1.1 is released.</LI> - - <LI>CGI which spawn background processes may fail to return immediately. - No fix exists yet.</LI> - - <LI>mod_dir appears to have problems when the DocumentRoot has a - trailing slash.</LI> - - </OL> - <H2>Version 1.1b1 (beta)</h2> - <OL> - <LI>The logfile can sometimes contain only part of a host - address. This occurs if the Cookie module is compiled in - and enabled. - </OL> - - <H2>Version 0.8.16 (beta)</H2> - <OL> - <LI>(Feature) You cannot use relative pathnames for the -f or -d flags - to httpd.<p> - <LI><code>.asis</code> files cannot be used for content-negotiation. - </OL> - - <H2>Version 0.8.13 (beta)</H2> - - <OL> - <LI><CODE>AddDescription</CODE> doesn't seem to work (a fix is imminent)</LI> - </OL> - - <H2>Version 0.8.11 (beta)</H2> - <OL> - <LI><CODE>http_main.c</CODE> function <CODE>accept_mutex_init()</CODE> - horrible bug, <CODE>lock_fname</CODE> should be defined larger, e.g. - <CODE><BR> - char lock_fname[30]; - </CODE> - <BR><B>Ooops.</B> - - <P> - - <LI>There's a bug with <B>NeXT</B>. Restarting the server causes an - infinite loop. A fix has been provided by a user and should be included - in a future update. - - <P> - - </OL> - - - <H2>Version 0.8.10 (beta)</H2> - - <OL> - <LI>Server side includes which include CGI output can have unbearable - delays on some platforms. We're looking into a fix. - - <P> - - <LI>NCSA 1.3 and beyond allow wildcards in <Directory> tags; e.g. - <Directory /home/*/public_html> - Apache doesn't (yet), - but we have a patch coming real soon now - - <P> - - <LI>Buggy scripts can cause server misbehavior on Solaris at least. - - <P> - - <LI>Some of the default directives in srm.conf-dist are outdated - - <P> - - <LI>Descriptions of args to AddIcon and AddAlt are wrong - in command table. - - <P> - - <LI>DirectoryIndex sometimes gets spuriously reset to the default value. - - <P> - - <LI>ErrorDocument is a little shaky, <CODE>" Some text %s</CODE> doesn't - agree with the documentation. - - <P> - - <LI>All Aliases are checked before any ScriptAliases --- the fully - compatible behavior would be to check both in one pass, in the order - in which they occur in srm.conf. - - <P> - </OL> - - <H2>Version 0.8.8 (beta)</H2> - - <OL> - <LI>There's a known compilation problem with <B>NeXT</B>. Knock out the - 2nd argument to <CODE>setjmp</CODE> when your compiler complains.<BR><BR> - </LI> - - <LI><CODE>exec cgi=""</CODE> produces reasonable <B>malformed header</B> - responses when used to invoke non-CGI scripts.<BR> - The NCSA code ignores the missing header. (bad idea)<BR> - Solution: write CGI to the CGI spec or use <CODE>exec cmd=""</CODE> instead. - <P>We might add <CODE>virtual</CODE> support to <CODE>exec cmd</CODE> to - make up for this difference.</P> - - <LI>A <I>scoreboard</I> file for process management is currently - created in <B>/tmp</B>. We now find this to be a bad idea, and have plans - to move it into the <CODE>/logs</CODE> directory along with other - files created by Apache. - <P>If you have any <B>/tmp</B> cleaning scripts (e.g. from crontab), you - should have them ignore the scoreboard file, which is named - <B>/tmp/htstatus.XXXXXXX</B>. If the scoreboard file is damaged, Apache - can become very confused (a SIGHUP repairs the damage). Furthermore, not - having a /tmp at all can cause disastrous results, as there's no error - checking yet.<P> - - <LI>Putting authorization information (like AuthName and AuthType) into a - <Directory> directive without a "requires" field in the <Limit> - directive can result in a core dump.<P> - - <LI>AddIcon is broken. The fix is to change<BR> - <CODE> - { "AddIcon", add_icon, BY_<B>TYPE</B>, DIR_CMD_PERMS, ITERATE2, - </CODE> - <BR>to<BR> - <CODE> - { "AddIcon", add_icon, BY_<B>PATH</B>, DIR_CMD_PERMS, ITERATE2, - </CODE> - <P>in <CODE>mod_dir.c</CODE></P></LI> - - <LI>Under IRIX, the "Group" directive in httpd.conf needs to be a valid group name - (i.e. "nogroup") not the numeric group ID. The distribution httpd.conf, and earlier - ones, had the default Group be "#-1", which was causing silent exits at startup. - - <P> ! <LI>Server push as regular CGI's don't work - actually, any normal CGI script ! that outputs additional attributes to the Content-type line (separated by a ! semicolon) gets that extra information chopped off, which means that the line ! <code>Content-type: multipart/x-mixed-replace; boundary=ThisRandomString</code> ! gets munged to just <code>Content-type: multipart/x-mixed-replace</code>, which ! means it doesn't know what the boundary is, and fails. You can get around this ! until 0.8.9 by making the CGI script a "No Parsed Header" script by prefixing the ! name of the script with a "nph-", but then you have to be responsible for correct ! HTTP headers. If the server-push animation is a constant, unchanging stream that ! terminates at some point, you could also put that stream into a whole file and ! use the .asis file extension functionality. ! <P> ! <LI>ErrorDocument is a little shaky, <CODE>" Some text %s</CODE> doesn't ! agree with the documentation. ! <P> ! </OL> ! <HR> ! <H2>Version 0.6.4 </H2> ! <OL> ! <LI>As with NCSA 1.3 (and 1.4 ?), some <B>HEAD</B> requests on ! directories without an <CODE>index.html</CODE> fail to be logged... harmless.</LI> ! <LI>Typo in Virtual Host #defines (accidentally defined #VIRUAL_HOST"). 0.6.4b fixes this. ! </OL> ! <H2>Version 0.6.2 (first beta)</H2> ! <OL> ! ! <LI><P>Apache error_log might show <CODE>httpd: caught SIGBUS, dumping core</CODE> after a successful redirect. We hope to fix this in 0.6.3</P></LI> ! ! <LI><P>If you see a lot of messages such as, ! <PRE>access to /something: failed for foo.bar.com, reason: no multi in this directory</PRE> ! in your error log, don't panic !. It means "File not found", and we will ! fix it sooner or later. ! ! </P> ! ! <LI><P><B>WARNING</B>: Apache logs all URLs redirected <B>from</B> and ! <B>to</B>. This isn't bug, it's deliberate, but you should be aware ! of it. It's a recognition of the fact that the Common Log File format ! doesn't have any place to log the real object that was returned for ! the internally redirected request. This will be changed soon. ! ! </P> ! ! <LI><P>BSDI problems: One of the test machines (<a ! href="http://www.hyperreal.com/">Hyperreal</a>) has noticed "flocks" of ! child processes sucking up large amounts of resources when moderately ! hit (on a Pentium 90 running 1.1 serving ~2 hits/second). Killing and ! restarting the daemon helps this disappear - it's being investigated, ! it might be a kernel bug, but then every server developer likes to say ! that. Let us know how well it works for you if you are using BSDI and ! have a high number of hits.</P></LI> </OL> --- 51,119 ---- This <A HREF="../../dist/contrib/patches/1.2/conneg-bug.patch">patch</A> fixes this problem. It also fixes the problem which makes Apache pick the last equally acceptable variant instead of the first. ! This will be tracked as <a href="http://www.apache.org/bugdb.cgi/full/94">PR#94</a>. </LI> + <LI> + The PATH_INFO part of a request URI cannot include the sequence + <CODE>%2f</CODE>. This will be tracked as + <A HREF="http://www.apache.org/bugdb.cgi/full/543">PR#543</A>. + </LI> ! <LI>Users of early 1.2 betas reported problems with many ! connections stuck in the FIN_WAIT_2 state due to server ! timeouts. Several changes were made during the beta testing of 1.2 ! to reduce this problem as much as possible, although you may still ! see sockets in FIN_WAIT_2 state due to network or operating system ! issues outside the control of Apache. See our <A ! HREF="fin_wait_2.html">FIN_WAIT_2</A> page for more details. ! </LI> ! <LI>Compilation fails on SCO3 when using gcc instead of cc, complaining ! with "<CODE>gcc: noinline: No such file or directory</CODE>". Fix ! is given in <a href="http://www.apache.org/bugdb.cgi/full/695">PR#695</A>. ! </LI> ! <LI>If compilation fails complaining about "unknown symbol __inet_ntoa()" ! then you have probably installed version 8 of bind. You will need to ! explicitly link with the bind library by adding <CODE>-lbind</CODE> ! to <CODE>EXTRA_LFLAGS</CODE> in <CODE>Configuration</CODE>. See ! <A HREF="http://www.apache.org/bugdb.cgi/full/616">PR#616</A> ! and the ! <A HREF="http://192.168.2.4:8080/htdocs/manual/misc/FAQ.html#bind8.1">Apache FAQ</A>. ! </LI> ! <LI>The message "<CODE>created shared memory segment #730499</CODE>" ! in error_log is not an error and should be ignored. See ! <a href="http://www.apache.org/bugdb.cgi/full/696">PR#696</A>. ! </LI> ! <LI> ! Compiling on Solaris 2 with SunSoft's C compiler gives the warning ! <CODE>"mod_include.c", line 1123: warning: end-of-loop code not ! reached</CODE>. This is a bogus warning and can be ignored. ! See <A HREF="http://www.apache.org/bugdb.cgi/full/681">PR#681</A>. ! </LI> ! <LI> ! There appears to be a problem on BSDI 2.1 with large numbers of ! virtual hosts. This appears similar to a file-descriptor limit ! but BSDI should not have this problem. This will be tracked as ! <A HREF="http://www.apache.org/bugdb.cgi/full/611">PR#611</A>. ! See also the ! <A HREF="http://192.168.2.4:8080/htdocs/manual/misc/FAQ.html#fdlim">Apache ! FAQ</A>. ! </LI> ! <LI> ! Solaris 2 has problems with large numbers of virtual hosts. This is ! because of an operating system limit of 256 file pointers, not due ! to Apache. ! See also the ! <A HREF="http://192.168.2.4:8080/htdocs/manual/misc/FAQ.html#fdlim">Apache ! FAQ</A>. ! </LI> </OL> 1.3.2.1 +2 -2 apache/htdocs/manual/misc/nopgp.html Index: nopgp.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/nopgp.html,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -C3 -r1.3 -r1.3.2.1 *** nopgp.html 1997/06/04 11:42:58 1.3 --- nopgp.html 1997/06/27 03:02:06 1.3.2.1 *************** *** 69,75 **** Thanks. <UL> ! <LI><A HREF="http://www.yahoo.com/Science/Mathematics/Security_and_Encryption/"> Yahoo - Science: Mathematics: Security and Encryption</A> <LI><A HREF="http://www.eff.org/pub/EFF/Policy/Crypto/"> EFF Crypto/Privacy/Security Archive</A> --- 69,75 ---- Thanks. <UL> ! <LI><A HREF="http://www.yahoo.com/Computers_and_Internet/Security_and_Encryption/"> Yahoo - Science: Mathematics: Security and Encryption</A> <LI><A HREF="http://www.eff.org/pub/EFF/Policy/Crypto/"> EFF Crypto/Privacy/Security Archive</A> *************** *** 81,87 **** ICLU - Your Rights in Cyberspace</A> </UL> ! <a href="http://bong.com/~brian">Brian</a>, <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> <!--#include virtual="footer.html" --> </BODY> --- 81,87 ---- ICLU - Your Rights in Cyberspace</A> </UL> ! <a href="http://www.behlendorf.com/~brian/">Brian</a>, <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a> <!--#include virtual="footer.html" --> </BODY> 1.6.2.1 +1 -1 apache/htdocs/manual/misc/perf-bsd44.html Index: perf-bsd44.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/perf-bsd44.html,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -C3 -r1.6 -r1.6.2.1 *** perf-bsd44.html 1997/06/04 11:42:58 1.6 --- perf-bsd44.html 1997/06/27 03:02:06 1.6.2.1 *************** *** 219,225 **** <blockquote>It really does help if your kernel and frequently used utilities are fully optimized. Rebuilding the FreeBSD kernel on an AMD-133 (486-class CPU) web-server with<BR> ! <code> -m486 -fexpensive-optimizations -fomit-frame-ponter -O2</code><BR> helped reduce the number of "unable" errors, because the CPU was often maxed out.</blockquote> <P> --- 219,225 ---- <blockquote>It really does help if your kernel and frequently used utilities are fully optimized. Rebuilding the FreeBSD kernel on an AMD-133 (486-class CPU) web-server with<BR> ! <code> -m486 -fexpensive-optimizations -fomit-frame-pointer -O2</code><BR> helped reduce the number of "unable" errors, because the CPU was often maxed out.</blockquote> <P> 1.8.2.1 +2 -12 apache/htdocs/manual/misc/perf.html Index: perf.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/perf.html,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C3 -r1.8 -r1.8.2.1 *** perf.html 1997/06/04 11:42:58 1.8 --- perf.html 1997/06/27 03:02:07 1.8.2.1 *************** *** 26,32 **** <LI><A HREF="#AUX">A/UX (Apple's UNIX)</A> <LI><A HREF="#BSD">BSD-based (BSDI, FreeBSD, etc)</A> <LI><A HREF="#DEC">Digital UNIX</A> - <LI><A HREF="#HP">Hewlett-Packard</A> <LI><A HREF="#Linux">Linux</A> <LI><A HREF="#SGI">SGI</A> <LI><A HREF="#Solaris">Solaris</A> --- 26,31 ---- *************** *** 62,80 **** <UL> <LI><A HREF="http://www.digital.com/info/internet/document/ias/tuning.html">DIGITAL ! UNIX Tuning Parameters for Web Servers</A> <LI>We have some <A HREF="perf-dec.html">newsgroup postings</A> on how to tune ! Digital UNIX 3.2 and 4.0. </UL> - - <P><HR> - - <H3><A NAME="HP"> - Hewlett-Packard - </A></H3> - - Some documentation on tuning HP machines can be found at <A - HREF="http://www.software.hp.com/internet/perf/tuning.html">http://www.software.hp.com/internet/perf/tuning.html</A>. <P><HR> --- 61,70 ---- <UL> <LI><A HREF="http://www.digital.com/info/internet/document/ias/tuning.html">DIGITAL ! UNIX Tuning Parameters for Web Servers</A> <LI>We have some <A HREF="perf-dec.html">newsgroup postings</A> on how to tune ! Digital UNIX 3.2 and 4.0. </UL> <P><HR> 1.6.2.1 +137 -137 apache/htdocs/manual/misc/vif-info.html Index: vif-info.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/vif-info.html,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -C3 -r1.6 -r1.6.2.1 *** vif-info.html 1997/06/04 11:42:59 1.6 --- vif-info.html 1997/06/27 03:02:07 1.6.2.1 *************** *** 49,63 **** that these are three distinct class C addresses in three distinct class C nets). Here are the ifconfigs: ! ifconfig le0 198.3.2.1 up -trailers # config primary interface ! ifconfig vif0 198.4.3.2 up # config first virtual interface ! route delete net 198.4.3 198.4.3.2 # delete spurious route ! route add host 198.4.3.2 198.4.3.2 0 # add route for this i/f ! ! ifconfig vif1 198.5.4.3 up # config second virtual interface ! route delete net 198.5.4 198.5.4.3 # delete spurious route ! route add host 198.5.4.3 198.5.4.3 0 # add route for this i/f The route deletes are needed because the ifconfig creates a default route to the interface's network, which can cause problems; all that's --- 49,63 ---- that these are three distinct class C addresses in three distinct class C nets). Here are the ifconfigs: ! ifconfig le0 198.3.2.1 up -trailers # config primary interface ! ifconfig vif0 198.4.3.2 up # config first virtual interface ! route delete net 198.4.3 198.4.3.2 # delete spurious route ! route add host 198.4.3.2 198.4.3.2 0 # add route for this i/f ! ! ifconfig vif1 198.5.4.3 up # config second virtual interface ! route delete net 198.5.4 198.5.4.3 # delete spurious route ! route add host 198.5.4.3 198.5.4.3 0 # add route for this i/f The route deletes are needed because the ifconfig creates a default route to the interface's network, which can cause problems; all that's *************** *** 91,101 **** and netinet/if_vif.h, configure your kernel with the number of virtual interfaces you want using a line like: ! pseudo-device vif4 # Virtual IP interface in your configuration file, and the line ! netinet/if_vif.c optional vif device-driver in the "files" file. Also, add the appropriate entries in conf.c, so that you can access the if_attach() routine when you open the device: --- 91,101 ---- and netinet/if_vif.h, configure your kernel with the number of virtual interfaces you want using a line like: ! pseudo-device vif4 # Virtual IP interface in your configuration file, and the line ! netinet/if_vif.c optional vif device-driver in the "files" file. Also, add the appropriate entries in conf.c, so that you can access the if_attach() routine when you open the device: *************** *** 122,130 **** then, way down in the definition for cdevsw[]: -------------------- ! vifopen, vifclose, vifread, vifwrite, /*14*/ ! vifioctl, nodev, nodev, 0, ! 0, nodev, -------------------- Make sure you remember the correct major device number, 14 in this case! --- 122,130 ---- then, way down in the definition for cdevsw[]: -------------------- ! vifopen, vifclose, vifread, vifwrite, /*14*/ ! vifioctl, nodev, nodev, 0, ! 0, nodev, -------------------- Make sure you remember the correct major device number, 14 in this case! *************** *** 139,150 **** ---------------------netinet/if_vif.h-------------------------------------- typedef struct { ! struct ifnet vif_if; ! struct ifnet *vif_sif; /* slave interface */ ! int vif_flags; } vif_softc_t; ! #define VIFMTU (1024+512) --------------------------------------------------------------------------- and --- 139,150 ---- ---------------------netinet/if_vif.h-------------------------------------- typedef struct { ! struct ifnet vif_if; ! struct ifnet *vif_sif; /* slave interface */ ! int vif_flags; } vif_softc_t; ! #define VIFMTU (1024+512) --------------------------------------------------------------------------- and *************** *** 165,171 **** #include "../net/netisr.h" #include "../net/route.h" ! #ifdef INET #include "../netinet/in.h" #include "../netinet/in_systm.h" #include "../netinet/in_var.h" --- 165,171 ---- #include "../net/netisr.h" #include "../net/route.h" ! #ifdef INET #include "../netinet/in.h" #include "../netinet/in_systm.h" #include "../netinet/in_var.h" *************** *** 191,315 **** vifattach() { ! register int i; ! register struct ifnet *ifp; ! int vifoutput(), vififioctl(); ! ! for (i=0; i<NVIF; i++) ! { ! ifp = &vif_softc[i].vif_if; ! ifp->if_name = "vif"; ! ifp->if_unit = i; ! ifp->if_mtu = VIFMTU; ! ifp->if_flags = IFF_LOOPBACK | IFF_NOARP; ! ifp->if_ioctl = vififioctl; ! ifp->if_output = vifoutput; ! if_attach(ifp); ! } } vifopen(dev, flag) int dev, flag; { ! int unit; ! ! if (!vifs_inited) ! { ! vifattach(); ! vifs_inited = 1; ! printf("vif initialized\n"); ! } ! ! unit = minor(dev); ! if ((unit < 0) || (unit >= NVIF)) ! { ! return ENXIO; ! } ! ! return 0; } vifclose(dev, flag) int dev, flag; { ! return 0; } vifread() { ! return ENXIO; } vifwrite() { ! return ENXIO; } vifselect() { ! return ENXIO; } vifoutput(ifp, m0, dst) ! struct ifnet *ifp; ! register struct mbuf *m0; ! struct sockaddr *dst; ! { ! int s; ! register struct ifqueue *ifq; ! struct mbuf *m; ! struct sockaddr_in *din; ! ! if (dst->sa_family != AF_INET) ! { ! printf("%s%d: can't handle af%d\n", ! ifp->if_name, ifp->if_unit, ! dst->sa_family); ! m_freem(m0); ! return (EAFNOSUPPORT); ! } ! ! din = (struct sockaddr_in *)dst; ! ! if (din->sin_addr.s_addr == IA_SIN(ifp->if_addrlist)->sin_addr.s_addr) ! { ! /* printf("%s%d: looping\n", ifp->if_name, ifp->if_unit); */ ! ! /* ! * Place interface pointer before the data ! * for the receiving protocol. ! */ ! if (m0->m_off <= MMAXOFF && ! m0->m_off >= MMINOFF + sizeof(struct ifnet *)) { ! m0->m_off -= sizeof(struct ifnet *); ! m0->m_len += sizeof(struct ifnet *); ! } else { ! MGET(m, M_DONTWAIT, MT_HEADER); ! if (m == (struct mbuf *)0) ! return (ENOBUFS); ! m->m_off = MMINOFF; ! m->m_len = sizeof(struct ifnet *); ! m->m_next = m0; ! m0 = m; ! } ! *(mtod(m0, struct ifnet **)) = ifp; ! s = splimp(); ! ifp->if_opackets++; ! ifq = &ipintrq; ! if (IF_QFULL(ifq)) { ! IF_DROP(ifq); ! m_freem(m0); ! splx(s); ! return (ENOBUFS); ! } ! IF_ENQUEUE(ifq, m0); ! schednetisr(NETISR_IP); ! ifp->if_ipackets++; ! splx(s); ! return (0); ! } ! return EHOSTUNREACH; } /* --- 191,315 ---- vifattach() { ! register int i; ! register struct ifnet *ifp; ! int vifoutput(), vififioctl(); ! ! for (i=0; i<NVIF; i++) ! { ! ifp = &vif_softc[i].vif_if; ! ifp->if_name = "vif"; ! ifp->if_unit = i; ! ifp->if_mtu = VIFMTU; ! ifp->if_flags = IFF_LOOPBACK | IFF_NOARP; ! ifp->if_ioctl = vififioctl; ! ifp->if_output = vifoutput; ! if_attach(ifp); ! } } vifopen(dev, flag) int dev, flag; { ! int unit; ! ! if (!vifs_inited) ! { ! vifattach(); ! vifs_inited = 1; ! printf("vif initialized\n"); ! } ! ! unit = minor(dev); ! if ((unit < 0) || (unit >= NVIF)) ! { ! return ENXIO; ! } ! ! return 0; } vifclose(dev, flag) int dev, flag; { ! return 0; } vifread() { ! return ENXIO; } vifwrite() { ! return ENXIO; } vifselect() { ! return ENXIO; } vifoutput(ifp, m0, dst) ! struct ifnet *ifp; ! register struct mbuf *m0; ! struct sockaddr *dst; ! { ! int s; ! register struct ifqueue *ifq; ! struct mbuf *m; ! struct sockaddr_in *din; ! ! if (dst->sa_family != AF_INET) ! { ! printf("%s%d: can't handle af%d\n", ! ifp->if_name, ifp->if_unit, ! dst->sa_family); ! m_freem(m0); ! return (EAFNOSUPPORT); ! } ! ! din = (struct sockaddr_in *)dst; ! ! if (din->sin_addr.s_addr == IA_SIN(ifp->if_addrlist)->sin_addr.s_addr) ! { ! /* printf("%s%d: looping\n", ifp->if_name, ifp->if_unit); */ ! ! /* ! * Place interface pointer before the data ! * for the receiving protocol. ! */ ! if (m0->m_off <= MMAXOFF && ! m0->m_off >= MMINOFF + sizeof(struct ifnet *)) { ! m0->m_off -= sizeof(struct ifnet *); ! m0->m_len += sizeof(struct ifnet *); ! } else { ! MGET(m, M_DONTWAIT, MT_HEADER); ! if (m == (struct mbuf *)0) ! return (ENOBUFS); ! m->m_off = MMINOFF; ! m->m_len = sizeof(struct ifnet *); ! m->m_next = m0; ! m0 = m; ! } ! *(mtod(m0, struct ifnet **)) = ifp; ! s = splimp(); ! ifp->if_opackets++; ! ifq = &ipintrq; ! if (IF_QFULL(ifq)) { ! IF_DROP(ifq); ! m_freem(m0); ! splx(s); ! return (ENOBUFS); ! } ! IF_ENQUEUE(ifq, m0); ! schednetisr(NETISR_IP); ! ifp->if_ipackets++; ! splx(s); ! return (0); ! } ! return EHOSTUNREACH; } /* *************** *** 317,341 **** */ /* ARGSUSED */ vififioctl(ifp, cmd, data) ! register struct ifnet *ifp; ! int cmd; ! caddr_t data; ! { ! int error = 0; ! ! switch (cmd) { ! ! case SIOCSIFADDR: ! ifp->if_flags |= IFF_UP; ! /* ! * Everything else is done at a higher level. ! */ ! break; ! ! default: ! error = EINVAL; ! } ! return (error); } vifioctl(dev, cmd, arg, mode) --- 317,341 ---- */ /* ARGSUSED */ vififioctl(ifp, cmd, data) ! register struct ifnet *ifp; ! int cmd; ! caddr_t data; ! { ! int error = 0; ! ! switch (cmd) { ! ! case SIOCSIFADDR: ! ifp->if_flags |= IFF_UP; ! /* ! * Everything else is done at a higher level. ! */ ! break; ! ! default: ! error = EINVAL; ! } ! return (error); } vifioctl(dev, cmd, arg, mode) *************** *** 344,356 **** caddr_t arg; int mode; { ! int unit; ! ! unit = minor(dev); ! if ((unit < 0) || (unit >= NVIF)) ! return ENXIO; ! ! return EINVAL; } ---------------------------------------------------------------------------- --- 344,356 ---- caddr_t arg; int mode; { ! int unit; ! ! unit = minor(dev); ! if ((unit < 0) || (unit >= NVIF)) ! return ENXIO; ! ! return EINVAL; } ---------------------------------------------------------------------------- No revision No revision 1.1.2.1 +0 -0 apache/htdocs/manual/misc/descriptors.html Index: descriptors.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/descriptors.html,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -C3 -r1.1 -r1.1.2.1 No revision No revision 1.56.2.1 +4 -1 apache/htdocs/manual/mod/core.html Index: core.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.56 retrieving revision 1.56.2.1 diff -C3 -r1.56 -r1.56.2.1 *** core.html 1997/06/04 16:14:13 1.56 --- core.html 1997/06/27 03:02:11 1.56.2.1 *************** *** 836,841 **** --- 836,844 ---- <dd> <!--%plaintext <?INDEX {\tt FollowSymLinks} option> --> The server will follow symbolic links in this directory. + <b>Note</b>: even though the server follows the symlink it does <i>not</i> + change the pathname used to match against <code><Directory></code> + sections. <dt>Includes <dd> <!--%plaintext <?INDEX {\tt Includes} option> --> *************** *** 1158,1164 **** <A name="sendbuffersize"><h2>SendBufferSize directive</h2></A> <!--%plaintext <?INDEX {\tt SendBufferSize} directive> --> <strong>Syntax:</strong> SendBufferSize <em>bytes</em><br> ! <strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> core<p> The server will set the TCP buffer size to the number of bytes --- 1161,1167 ---- <A name="sendbuffersize"><h2>SendBufferSize directive</h2></A> <!--%plaintext <?INDEX {\tt SendBufferSize} directive> --> <strong>Syntax:</strong> SendBufferSize <em>bytes</em><br> ! <strong>Context:</strong> server config<br> <strong>Status:</strong> core<p> The server will set the TCP buffer size to the number of bytes 1.8.2.1 +40 -40 apache/htdocs/manual/mod/mod_auth_anon.html Index: mod_auth_anon.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_auth_anon.html,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C3 -r1.8 -r1.8.2.1 *** mod_auth_anon.html 1997/06/04 16:14:15 1.8 --- mod_auth_anon.html 1997/06/27 03:02:12 1.8.2.1 *************** *** 61,83 **** <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! A list of one or more 'magic' userIDs which are allowed access ! without password verification. The userIDs are space separated. ! It is possible to use the ' and " quotes to allow a space in ! a userID as well as the \ escape character. ! <p> ! Please note that the comparison is <b>case-IN-sensitive</b>. ! <br> ! I strongly suggest that the magic username '<code>anonymous</code>' ! is always one of the allowed userIDs. ! <p> ! Example:<br> ! <code> ! Anonymous: anonymous "Not Registered" 'I don\'t know' ! </code><p> ! This would allow the user to enter without password verification ! by using the userId's 'anonymous', 'AnonyMous','Not Registered' and ! 'I Don't Know'. <HR> <A name="Authoritative"><h2>Anonymous_Authoritative</h2></A> --- 61,83 ---- <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! A list of one or more 'magic' userIDs which are allowed access ! without password verification. The userIDs are space separated. ! It is possible to use the ' and " quotes to allow a space in ! a userID as well as the \ escape character. ! <p> ! Please note that the comparison is <b>case-IN-sensitive</b>. ! <br> ! I strongly suggest that the magic username '<code>anonymous</code>' ! is always one of the allowed userIDs. ! <p> ! Example:<br> ! <code> ! Anonymous: anonymous "Not Registered" 'I don\'t know' ! </code><p> ! This would allow the user to enter without password verification ! by using the userId's 'anonymous', 'AnonyMous','Not Registered' and ! 'I Don't Know'. <HR> <A name="Authoritative"><h2>Anonymous_Authoritative</h2></A> *************** *** 91,102 **** When set 'on', there is no fall-through to other authorization methods. So if a userID does not match the values specified in the ! <code>Anonymous</code> directive, access is denied. ! <p> ! Be sure you know what you are doing when you decide to switch ! it on. And remember that it is the linking order of the modules ! (in the Configuration / Make file) which details the order ! in which the Authorization modules are queried. <hr> <A name="LogEmail"><h2>Anonymous_LogEmail</h2></A> --- 91,102 ---- When set 'on', there is no fall-through to other authorization methods. So if a userID does not match the values specified in the ! <code>Anonymous</code> directive, access is denied. ! <p> ! Be sure you know what you are doing when you decide to switch ! it on. And remember that it is the linking order of the modules ! (in the Configuration / Make file) which details the order ! in which the Authorization modules are queried. <hr> <A name="LogEmail"><h2>Anonymous_LogEmail</h2></A> *************** *** 107,114 **** <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! When set 'on', the default, the 'password' entered (which hopefully ! contains a sensible email address) is logged in the httpd-log file. <hr> <A name="MustGiveEmail"><h2>Anonymous_MustGiveEmail</h2></a> --- 107,114 ---- <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! When set 'on', the default, the 'password' entered (which hopefully ! contains a sensible email address) is logged in the httpd-log file. <hr> <A name="MustGiveEmail"><h2>Anonymous_MustGiveEmail</h2></a> *************** *** 120,127 **** <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! Specifies whether the user must specify an email ! address as the password. This prohibits blank passwords. <HR> <A name="NoUserID"><h2>Anonymous_NoUserID</h2></A> --- 120,127 ---- <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! Specifies whether the user must specify an email ! address as the password. This prohibits blank passwords. <HR> <A name="NoUserID"><h2>Anonymous_NoUserID</h2></A> *************** *** 132,142 **** <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! When set 'on', users can leave ! the userID (and perhaps the password field) empty. This ! can be very convenient for MS-Explorer users who can ! just hit return or click directly on the OK button; which ! seems a natural reaction. <hr> --- 132,142 ---- <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! When set 'on', users can leave ! the userID (and perhaps the password field) empty. This ! can be very convenient for MS-Explorer users who can ! just hit return or click directly on the OK button; which ! seems a natural reaction. <hr> *************** *** 148,156 **** <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! When set 'on' the 'password' entered is ! checked for at least one '@' and a '.' to encourage users to enter ! valid email addresses (see the above <code>Auth_LogEmail</code>). <hr><a name="Example"><h2>Example</h2></a> --- 148,156 ---- <strong>Status:</strong> Extension<br> <strong>Module:</strong> mod_auth_anon<p> ! When set 'on' the 'password' entered is ! checked for at least one '@' and a '.' to encourage users to enter ! valid email addresses (see the above <code>Auth_LogEmail</code>). <hr><a name="Example"><h2>Example</h2></a> *************** *** 180,189 **** <dl> <dt><code> Anonymous anonymous guest www test welcome<p> ! Anonymous_MustGiveEmail on<br> Anonymous_VerifyEmail on<br> ! Anonymous_NoUserId off<br> ! Anonymous_LogEmail on<br> <p> AuthName Use 'anonymous' & Email address for guest entry<br> AuthType basic<p> --- 180,189 ---- <dl> <dt><code> Anonymous anonymous guest www test welcome<p> ! Anonymous_MustGiveEmail on<br> Anonymous_VerifyEmail on<br> ! Anonymous_NoUserId off<br> ! Anonymous_LogEmail on<br> <p> AuthName Use 'anonymous' & Email address for guest entry<br> AuthType basic<p> *************** *** 217,224 **** </dd> <dt>Version 0.5<br></dt> <dd>Added 'VerifyEmail' and 'LogEmail' options. Multiple ! 'anonymous' tokens allowed. more docs. Added Authoritative ! functionality. </dd> </dl> --- 217,224 ---- </dd> <dt>Version 0.5<br></dt> <dd>Added 'VerifyEmail' and 'LogEmail' options. Multiple ! 'anonymous' tokens allowed. more docs. Added Authoritative ! functionality. </dd> </dl> 1.6.2.1 +20 -0 apache/htdocs/manual/mod/mod_dir.html Index: mod_dir.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_dir.html,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -C3 -r1.6 -r1.6.2.1 *** mod_dir.html 1997/06/04 16:14:19 1.6 --- mod_dir.html 1997/06/27 03:02:12 1.6.2.1 *************** *** 324,329 **** --- 324,349 ---- <dd> <!--%plaintext <?INDEX {\tt SuppressDescription} index option> --> This will suppress the file description in fancy indexing listings. + <dt>IconHeight[=pixels] (<EM>Apache 1.3 and later</EM>) + <dd> + <!--%plaintext <?INDEX {\tt IconHeight} index option> --> + Presence of this option, when used with IconWidth, will cause the server + to include <SAMP>HEIGHT</SAMP> and <SAMP>WIDTH</SAMP> attributes in the + <SAMP>IMG</SAMP> tag for the file icon. This allows browser to + precalculate the page layout without having to wait until all the + images have been loaded. If no value is given for the option, it + defaults to the standard height of the icons supplied with the Apache + software. + <dt>IconWidth[=pixels] (<EM>Apache 1.3 and later</EM>) + <dd> + <!--%plaintext <?INDEX {\tt IconWidth} index option> --> + Presence of this option, when used with IconHeight, will cause the server + to include <SAMP>HEIGHT</SAMP> and <SAMP>WIDTH</SAMP> attributes in the + <SAMP>IMG</SAMP> tag for the file icon. This allows browser to + precalculate the page layout without having to wait until all the + images have been loaded. If no value is given for the option, it + defaults to the standard width of the icons supplied with the Apache + software. </dl> This default is that no options are enabled. If multiple IndexOptions could apply to a directory, then the most specific one is taken complete; 1.13.2.1 +6 -6 apache/htdocs/manual/mod/mod_include.html Index: mod_include.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_include.html,v retrieving revision 1.13 retrieving revision 1.13.2.1 diff -C3 -r1.13 -r1.13.2.1 *** mod_include.html 1997/06/04 16:14:21 1.13 --- mod_include.html 1997/06/27 03:02:13 1.13.2.1 *************** *** 309,323 **** Unix egrep command. <DT>( <I>test_condition</I> ) ! <DD>true if <I>test_condition</I> is true <DT>! <I>test_condition</I> ! <DD>true if <I>test_condition</I> is false <DT><I>test_condition1</I> && <I>test_condition2</I> ! <DD>true if both <I>test_condition1</I> and ! <I>test_condition2</I> are true <DT><I>test_condition1</I> || <I>test_condition2</I> ! <DD>true if either <I>test_condition1</I> or ! <I>test_condition2</I> is true </DL> <P> "<I>=</I>" and "<I>!=</I>" bind more tightly than "<I>&&</I>" and --- 309,323 ---- Unix egrep command. <DT>( <I>test_condition</I> ) ! <DD>true if <I>test_condition</I> is true <DT>! <I>test_condition</I> ! <DD>true if <I>test_condition</I> is false <DT><I>test_condition1</I> && <I>test_condition2</I> ! <DD>true if both <I>test_condition1</I> and ! <I>test_condition2</I> are true <DT><I>test_condition1</I> || <I>test_condition2</I> ! <DD>true if either <I>test_condition1</I> or ! <I>test_condition2</I> is true </DL> <P> "<I>=</I>" and "<I>!=</I>" bind more tightly than "<I>&&</I>" and 1.22.2.1 +2 -2 apache/htdocs/manual/mod/mod_proxy.html Index: mod_proxy.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_proxy.html,v retrieving revision 1.22 retrieving revision 1.22.2.1 diff -C3 -r1.22 -r1.22.2.1 *** mod_proxy.html 1997/06/04 16:14:23 1.22 --- mod_proxy.html 1997/06/27 03:02:13 1.22.2.1 *************** *** 297,303 **** <li><a href="#shortname">Using Netscape hostname shortcuts</a> <li><a href="#mimetypes">Why doesn't file type <i>xxx</i> download via FTP?</a> <li><a href="#startup">Why does Apache start more slowly when using the ! proxy module?</a> <li><a href="#socks">Can I use the Apache proxy module with my SOCKS proxy?</a> </ul> --- 297,303 ---- <li><a href="#shortname">Using Netscape hostname shortcuts</a> <li><a href="#mimetypes">Why doesn't file type <i>xxx</i> download via FTP?</a> <li><a href="#startup">Why does Apache start more slowly when using the ! proxy module?</a> <li><a href="#socks">Can I use the Apache proxy module with my SOCKS proxy?</a> </ul> *************** *** 337,343 **** </pre> <h2><a name="startup">Why does Apache start more slowly when using the ! proxy module?</a></h2> If you're using the <code>ProxyBlock</code> or <code>NoCache</code> directives, hostnames' IP addresses are looked up and cached during --- 337,343 ---- </pre> <h2><a name="startup">Why does Apache start more slowly when using the ! proxy module?</a></h2> If you're using the <code>ProxyBlock</code> or <code>NoCache</code> directives, hostnames' IP addresses are looked up and cached during 1.9.2.1 +4 -4 apache/htdocs/manual/mod/mod_rewrite.html Index: mod_rewrite.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_rewrite.html,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -C3 -r1.9 -r1.9.2.1 *** mod_rewrite.html 1997/06/04 16:14:23 1.9 --- mod_rewrite.html 1997/06/27 03:02:13 1.9.2.1 *************** *** 988,997 **** which will be expanded. You can use this flag more than once to set more than one variable. The variables can be later dereferenced at a lot of situations, but the usual location will be from within XSSI (via ! <tt><!--#echo var="VAR"--></tt>) or CGI (e.g. <tt>$ENV{'VAR'}</tt>). ! But additionally you can also dereference it in a following RewriteCond ! pattern via <tt>%{ENV:VAR}</tt>. Use this to strip but remember ! information from URLs. </ul> <p> --- 988,997 ---- which will be expanded. You can use this flag more than once to set more than one variable. The variables can be later dereferenced at a lot of situations, but the usual location will be from within XSSI (via ! <tt><!--#echo var="VAR"--></tt>) or CGI (e.g. <tt>$ENV{'VAR'}</tt>). ! But additionally you can also dereference it in a following RewriteCond ! pattern via <tt>%{ENV:VAR}</tt>. Use this to strip but remember ! information from URLs. </ul> <p> 1.6.2.1 +1 -1 apache/htdocs/manual/mod/mod_status.html Index: mod_status.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_status.html,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -C3 -r1.6 -r1.6.2.1 *** mod_status.html 1997/06/04 16:14:24 1.6 --- mod_status.html 1997/06/27 03:02:14 1.6.2.1 *************** *** 90,96 **** Do this by adding the following to the AUX_CFLAGS line in the "Configuration" file and then recompiling as usual. <pre> ! AUX_CFLAGS= (something) -DSTATUS </pre> <BLOCKQUOTE> --- 90,96 ---- Do this by adding the following to the AUX_CFLAGS line in the "Configuration" file and then recompiling as usual. <pre> ! AUX_CFLAGS= (something) -DSTATUS </pre> <BLOCKQUOTE>