stas        01/11/15 01:04:58

  Modified:    guide    CHANGES advocacy.html browserbugs.html config.html
                        control.html correct_headers.html databases.html
                        dbm.html debug.html download.html frequent.html
                        hardware.html help.html index.html index_long.html
                        install.html intro.html mod_perl_guide.pdf.gz
                        modules.html multiuser.html performance.html
                        perl.html porting.html scenario.html security.html
                        snippets.html start.html strategy.html
                        troubleshooting.html
               guide/code lwp-bench.pl
  Log:
  Nov 15 2001 ver 1.31
  
  * intro.pod:
  
    o updated the long due credits section (~200 contributors! in total)
  
  * install.pod:
  
    o add "When DSO can be Used" (Doug)
  
  * modules.pod:
  
    o add Module::Use
  
    o add Apache::ConfigFile
  
  * debug.pod:
  
    o noted the fact that the technique of detecting aborted connections
      doesn't work with mod_proxy.
  
  * performance.pod:
  
    o removed from the last section a dead link of
      http://members.nbci.com/Alex_Maranda/gnuintel/GNUintel.htm
  
  * snippets.pod:
  
    o detecting SSL connection (Vivek Khera, Geoff Young, Issac
  Goldstand)
  
    o Note the Apache::Request->instance class method in addition to the
      POST2GET example (Robin Bjorn)
  
  * porting.pod:
  
    o s/headers_out/header_out/ where it was incorrectly used,
      (Issac Goldstand)
  
    o fix the potential bug when using -r $file followed by -M _ and 'do
      $filename' inbetween, which may call stat() and _ won't include the
      right stat struct. (Randy Kobes)
  
  * troubleshooting.pod:
  
    o SegFaults During Startup
  
  * help.pod:
  
    o add a reference to http://lists.perl.org/
  
    o add references to the new mailing lists
  
  * code:
  
    o the results in lwp-bench.pl are correctly based on the number of
      @urls used (Boris Zentner)
  
  * strategy.pod:
  
    o new section: "Closing Lingering Connections with Lingerd"
  
  Revision  Changes    Path
  1.31      +63 -0     modperl-site/guide/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/CHANGES,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- CHANGES   2001/09/02 14:26:57     1.30
  +++ CHANGES   2001/11/15 09:04:50     1.31
  @@ -2,6 +2,69 @@
                ### mod_perl Guide CHANGES file ###
                ###################################
   
  +Nov 15 2001 ver 1.31
  +
  +* intro.pod: 
  +
  +  o updated the long due credits section (~200 contributors! in total)
  +
  +* install.pod:
  +
  +  o add "When DSO can be Used" (Doug)
  +
  +* modules.pod:
  +
  +  o add Module::Use
  +
  +  o add Apache::ConfigFile
  +
  +* debug.pod:
  +
  +  o noted the fact that the technique of detecting aborted connections
  +    doesn't work with mod_proxy.
  +
  +* performance.pod:
  +
  +  o removed from the last section a dead link of
  +    http://members.nbci.com/Alex_Maranda/gnuintel/GNUintel.htm
  +
  +* snippets.pod:
  + 
  +  o detecting SSL connection (Vivek Khera, Geoff Young, Issac Goldstand)
  +
  +  o Note the Apache::Request->instance class method in addition to the
  +    POST2GET example (Robin Bjorn)
  +
  +* porting.pod:
  +
  +  o s/headers_out/header_out/ where it was incorrectly used, 
  +    (Issac Goldstand)
  +
  +  o fix the potential bug when using -r $file followed by -M _ and 'do
  +    $filename' inbetween, which may call stat() and _ won't include the
  +    right stat struct. (Randy Kobes)
  +
  +* troubleshooting.pod:
  +
  +  o SegFaults During Startup
  +
  +* help.pod:
  +
  +  o add a reference to http://lists.perl.org/
  +
  +  o add references to the new mailing lists
  +
  +* code:
  +
  +  o the results in lwp-bench.pl are correctly based on the number of
  +    @urls used (Boris Zentner)
  +
  +* strategy.pod:
  +
  +  o new section: "Closing Lingering Connections with Lingerd"
  +
  +
  +
   09.02.2001 ver 1.30
   
   * snippets.pod
  
  
  
  1.13      +1 -1      modperl-site/guide/advocacy.html
  
  Index: advocacy.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/advocacy.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- advocacy.html     2001/09/02 14:26:57     1.12
  +++ advocacy.html     2001/11/15 09:04:50     1.13
  @@ -272,7 +272,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/05/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.15      +1 -1      modperl-site/guide/browserbugs.html
  
  Index: browserbugs.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/browserbugs.html,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- browserbugs.html  2001/04/27 16:57:09     1.14
  +++ browserbugs.html  2001/11/15 09:04:50     1.15
  @@ -157,7 +157,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 06/22/2000
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.33      +4 -1      modperl-site/guide/config.html
  
  Index: config.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/config.html,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- config.html       2001/09/02 14:26:57     1.32
  +++ config.html       2001/11/15 09:04:50     1.33
  @@ -596,6 +596,9 @@
   virtual host configurations to override the main server configuration.
   
   <P>
  +Later sections override earlier ones.
  +
  +<P>
   [ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
   <HR>
   <CENTER><H2><A NAME="Sub_Grouping_of_Location_Dir">Sub-Grouping of 
&lt;Location&gt;, &lt;Directory&gt; and &lt;Files&gt; Sections</A></H2></CENTER>
  @@ -4293,7 +4296,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 07/10/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 10/28/2001
   </font></b>
   <br>
   
  
  
  
  1.33      +1 -1      modperl-site/guide/control.html
  
  Index: control.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/control.html,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- control.html      2001/09/02 14:26:57     1.32
  +++ control.html      2001/11/15 09:04:50     1.33
  @@ -2837,7 +2837,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/05/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.16      +1 -1      modperl-site/guide/correct_headers.html
  
  Index: correct_headers.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/correct_headers.html,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- correct_headers.html      2001/09/02 14:26:57     1.15
  +++ correct_headers.html      2001/11/15 09:04:50     1.16
  @@ -292,7 +292,7 @@
     use Date::Parse;
     # Date::Parse parses RCS format, Apache::Util::parsedate doesn't
     $Mtime ||=
  -    Date::Parse::str2time(substr q$Date: 2001/09/02 14:26:57 $, 6);
  +    Date::Parse::str2time(substr q$Date: 2001/11/15 09:04:50 $, 6);
     $r-&gt;set_last_modified($Mtime);</pre>
           </td>
            
  @@ -1290,7 +1290,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 07/03/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.20      +1 -1      modperl-site/guide/databases.html
  
  Index: databases.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/databases.html,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- databases.html    2001/09/02 14:26:57     1.19
  +++ databases.html    2001/11/15 09:04:50     1.20
  @@ -1025,7 +1025,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/05/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.20      +1 -1      modperl-site/guide/dbm.html
  
  Index: dbm.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/dbm.html,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- dbm.html  2001/09/02 14:26:58     1.19
  +++ dbm.html  2001/11/15 09:04:50     1.20
  @@ -753,7 +753,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/05/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.30      +7 -1      modperl-site/guide/debug.html
  
  Index: debug.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/debug.html,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- debug.html        2001/09/02 14:26:58     1.29
  +++ debug.html        2001/11/15 09:04:50     1.30
  @@ -945,6 +945,12 @@
   attempt to read from or write to connection is made.
   
   <P>
  +Unfortunately the detection technique we are going to present doesn't work
  +if the connection to the back-end mod_perl server is coming from the
  +front-end mod_proxy, as the latter doesn't break the connection to the
  +back-end when user has aborted the connection.
  +
  +<P>
   If the reading of the request's data is completed and the code does
   processing without writing anything back to the client the broken
   connection won't be noticed. When an attempt is made to send at least one
  @@ -7196,7 +7202,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 04/28/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 11/06/2001
   </font></b>
   <br>
   
  
  
  
  1.20      +1 -1      modperl-site/guide/download.html
  
  Index: download.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/download.html,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- download.html     2001/09/02 14:26:58     1.19
  +++ download.html     2001/11/15 09:04:50     1.20
  @@ -450,7 +450,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 07/18/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.17      +1 -1      modperl-site/guide/frequent.html
  
  Index: frequent.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/frequent.html,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- frequent.html     2001/01/11 13:48:16     1.16
  +++ frequent.html     2001/11/15 09:04:50     1.17
  @@ -154,7 +154,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/27/2000
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.14      +1 -1      modperl-site/guide/hardware.html
  
  Index: hardware.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/hardware.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- hardware.html     2001/09/02 14:26:58     1.13
  +++ hardware.html     2001/11/15 09:04:50     1.14
  @@ -734,7 +734,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/05/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.32      +100 -6    modperl-site/guide/help.html
  
  Index: help.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/help.html,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- help.html 2001/10/16 16:08:35     1.31
  +++ help.html 2001/11/15 09:04:50     1.32
  @@ -272,14 +272,15 @@
   .
   
   <P>
  -A <EM>searchable</EM> mod_perl mailing list archive is available at <A
  -HREF="http://mathforum.org/epigone/modperl";>http://mathforum.org/epigone/modperl</A>
  -. Thanks to Ken Williams for this.
  +Searchable mailing list archives are available:
   
  +<UL>
  +<P><LI>
   <P>
  -More archives available:
  +<A
  +HREF="http://mathforum.org/epigone/modperl";>http://mathforum.org/epigone/modperl</A>
   
  -<UL>
  +
   <P><LI>
   <P>
   <A
  @@ -311,6 +312,94 @@
   
   
   </UL>
  +<P><LI><STRONG><A NAME="item_The">The mod_perl development mailing list</A></STRONG>
  +<P>
  +This list is for discussions about the development of the core mod_perl.
  +
  +<P>
  +Subscription information.
  +
  +<P>
  +To subscribe to this list send an empty email to <A
  +HREF="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</A>
  +To unsubscribe from the list send an empty email to <A
  +HREF="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</A>
  +To get help with the list send an empty email to <A
  +HREF="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</A>
  +
  +<P>
  +List's searchable archives:
  +
  +<UL>
  +<P><LI>
  +<P>
  +<A
  
+HREF="http://marc.theaimsgroup.com/?l=apache-modperl-dev&r=1&w=2#apache-modperl-dev";>http://marc.theaimsgroup.com/?l=apache-modperl-dev&r=1&w=2#apache-modperl-dev</A>
  +
  +
  +<P><LI>
  +<P>
  +<A
  
+HREF="http://www.mail-archive.com/dev%40perl.apache.org/";>http://www.mail-archive.com/dev%40perl.apache.org/</A>
  +
  +
  +</UL>
  +<P><LI><STRONG><A NAME="item_The">The mod_perl documentation mailing 
list</A></STRONG>
  +<P>
  +This mailing list is for discussing mod_perl documentation.
  +
  +<P>
  +Subscription information
  +
  +<P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre>  Subscribe to the list: [EMAIL PROTECTED]
  +  Unsubscribe from the list: [EMAIL PROTECTED]
  +  Get help with the list: [EMAIL PROTECTED]</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P><LI><STRONG><A NAME="item_The">The Apache test framework development mailing 
list</A></STRONG>
  +<P>
  +The test-dev list is the list where Apache HTTP Test project is discussed.
  +
  +<P>
  +Subscription information:
  +
  +<P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre>  Subscribe to the list: [EMAIL PROTECTED]
  +  Unsubscribe from the list: [EMAIL PROTECTED]
  +  Get help with the list: [EMAIL PROTECTED]</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +List's searchable archive:
  +
  +<P>
  +<A
  +HREF="http://www.apachelabs.org/test-dev/";>http://www.apachelabs.org/test-dev/</A>
  +
  +
   <P><LI><STRONG><A NAME="item_The">The advocacy mailing list</A></STRONG>
   <P>
   The list for mod_perl advocacy issues, discussions about sites, etc.
  @@ -416,6 +505,11 @@
   <P>
   Take a look also at Inline.pm (CPAN) and SWIG (http://www.swig.org/)
   
  +<P><LI><STRONG><A NAME="item_Perl">Perl mailing lists</A></STRONG>
  +<P>
  +A huge number of diverse Perl mailing lists is listed at <A
  +HREF="http://lists.perl.org/.";>http://lists.perl.org/.</A>
  +
   <P><LI><STRONG><A NAME="item_perl5">perl5-porters mailing list</A></STRONG>
   <P>
   Send an email:
  @@ -804,7 +898,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 08/22/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 10/20/2001
   </font></b>
   <br>
   
  
  
  
  1.35      +3 -3      modperl-site/guide/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/index.html,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- index.html        2001/09/02 14:26:58     1.34
  +++ index.html        2001/11/15 09:04:50     1.35
  @@ -22,7 +22,7 @@
         </p>
       </center>
   
  -    <center><p><b>Version 1.30 Sep 2, 2001</b></p></center>
  +    <center><p><b>Version 1.31 Nov 15, 2001</b></p></center>
    
   
       <table align=center width="70%">
  @@ -223,7 +223,7 @@
                   To read PDF files you can
                use: <code>ghostview</code> (<code>gv</code>),
              <code>xpdf</code> or <code>acroread</code> (with
  -           <code>acroread</code> you can search the text and us the
  +           <code>acroread</code> you can search the text and use the
              hyperlinks).  You can use the
              <code>pdf2ps</code> utility to convert PDF to
              PostSscript format.
  @@ -333,7 +333,7 @@
            <b><font size=-1>
                Written by <a
                  href="help.html#Contacting_me">Stas
  -               Bekman</a>.<br> Last Modified at 09/02/2001
  +               Bekman</a>.<br> Last Modified at 11/15/2001
              </font></b>
            <br>
            
  
  
  
  1.9       +9 -3      modperl-site/guide/index_long.html
  
  Index: index_long.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/index_long.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- index_long.html   2001/09/02 14:26:58     1.8
  +++ index_long.html   2001/11/15 09:04:50     1.9
  @@ -22,7 +22,7 @@
         </p>
       </center>
   
  -    <center><p><b>Version 1.30 Sep 2, 2001</b></p></center>
  +    <center><p><b>Version 1.31 Nov 15, 2001</b></p></center>
    
   
       <table align=center width="70%">
  @@ -251,6 +251,7 @@
   
                <LI><A HREF="install.html#The_All_In_One_Way">The All-In-One Way</A>
                <LI><A HREF="install.html#The_Flexible_Way">The Flexible Way</A>
  +             <LI><A HREF="install.html#When_DSO_can_be_Used">When DSO can be 
Used</A>
                <LI><A HREF="install.html#Build_mod_perl_as_a_DSO_inside_t">Build 
mod_perl as a DSO inside the Apache Source Tree via APACI</A>
                <UL>
   
  @@ -474,6 +475,7 @@
   
                <LI><A HREF="strategy.html#The_Squid_Server">The Squid Server</A>
                <LI><A HREF="strategy.html#Apache_s_mod_proxy">Apache's mod_proxy</A>
  +             <LI><A HREF="strategy.html#Closing_Lingering_Connections_wi">Closing 
Lingering Connections with Lingerd</A>
        </UL>
   
        <LI><A HREF="strategy.html#When_One_Machine_is_not_Enough_f">When One Machine 
is not Enough for RDBMS Database and mod_perl</A>
  @@ -868,6 +870,7 @@
        <LI><A HREF="troubleshooting.html#Configuration_and_Startup">Configuration and 
Startup</A>
        <UL>
   
  +             <LI><A HREF="troubleshooting.html#SegFaults_During_Startup">SegFaults 
During Startup</A>
                <LI><A 
HREF="troubleshooting.html#libexec_libperl_so_open_failed_">libexec/libperl.so: open 
failed: No such file or directory</A>
                <LI><A 
HREF="troubleshooting.html#install_driver_Oracle_failed_C">install_driver(Oracle) 
failed: Can't load '.../DBD/Oracle/Oracle.so' for module DBD::Oracle</A>
                <LI><A 
HREF="troubleshooting.html#Invalid_command_PerlHandler_">Invalid command 
'PerlHandler'...</A>
  @@ -1182,6 +1185,8 @@
        <LI><A HREF="modules.html#Apache_LogSTDERR">Apache::LogSTDERR</A>
        <LI><A HREF="modules.html#Apache_RedirectLogFix">Apache::RedirectLogFix</A>
        <LI><A HREF="modules.html#Apache_SubProcess">Apache::SubProcess</A>
  +     <LI><A HREF="modules.html#Module_Use_Log_and_Load_used_">Module::Use - Log and 
Load used Perl modules</A>
  +     <LI><A HREF="modules.html#Apache_ConfigFile_Parse_an_Ap">Apache::ConfigFile - 
Parse an Apache style httpd.conf config file</A>
   </UL>
   <P>
   <LI><A HREF="snippets.html"><B><FONT SIZE=+1>Code Snippets </FONT></B></A></LI><P>
  @@ -1202,6 +1207,7 @@
        <LI><A HREF="snippets.html#Passing_and_Preserving_Custom_Da">Passing and 
Preserving Custom Data Structures Between Handlers</A>
        <LI><A HREF="snippets.html#Passing_Notes_Between_mod_perl_a">Passing Notes 
Between mod_perl and other (non-Perl) Apache Modules</A>
        <LI><A HREF="snippets.html#Passing_Environment_Variables_Be">Passing 
Environment Variables Between Handlers</A>
  +     <LI><A HREF="snippets.html#Verifying_Whether_A_Request_Was_">Verifying Whether 
A Request Was Received Over An SSL Connection</A>
        <LI><A HREF="snippets.html#CGI_params_in_the_mod_perl_ish_">CGI::params in the 
mod_perl-ish Way</A>
        <LI><A HREF="snippets.html#Subclassing_Apache_Request">Subclassing 
Apache::Request</A>
        <LI><A HREF="snippets.html#Sending_Email_from_mod_perl">Sending Email from 
mod_perl</A>
  @@ -1402,7 +1408,7 @@
                   To read PDF files you can
                use: <code>ghostview</code> (<code>gv</code>),
              <code>xpdf</code> or <code>acroread</code> (with
  -           <code>acroread</code> you can search the text and us the
  +           <code>acroread</code> you can search the text and use the
              hyperlinks).  You can use the
              <code>pdf2ps</code> utility to convert PDF to
              PostSscript format.
  @@ -1512,7 +1518,7 @@
            <b><font size=-1>
                Written by <a
                  href="help.html#Contacting_me">Stas
  -               Bekman</a>.<br> Last Modified at 09/02/2001
  +               Bekman</a>.<br> Last Modified at 11/15/2001
              </font></b>
            <br>
            
  
  
  
  1.22      +67 -7     modperl-site/guide/install.html
  
  Index: install.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/install.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- install.html      2001/09/02 14:26:58     1.21
  +++ install.html      2001/11/15 09:04:50     1.22
  @@ -111,6 +111,7 @@
   
                <LI><A HREF="#The_All_In_One_Way">The All-In-One Way</A>
                <LI><A HREF="#The_Flexible_Way">The Flexible Way</A>
  +             <LI><A HREF="#When_DSO_can_be_Used">When DSO can be Used</A>
                <LI><A HREF="#Build_mod_perl_as_a_DSO_inside_t">Build mod_perl as a 
DSO inside the Apache Source Tree via APACI</A>
                <UL>
   
  @@ -2312,18 +2313,77 @@
   <P>
   [ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
   <HR>
  -<CENTER><H2><A NAME="Build_mod_perl_as_a_DSO_inside_t">Build mod_perl as a DSO 
inside the Apache Source Tree via APACI</A></H2></CENTER>
  +<CENTER><H2><A NAME="When_DSO_can_be_Used">When DSO can be Used</A></H2></CENTER>
  +<P>
  +If you want to build <A HREF="#item_mod_perl">mod_perl</A> as DSO you must make 
sure that Perl was built with system's native
  +<CODE>malloc().</CODE> If Perl was built with its own <CODE>malloc()</CODE>
  +and <CODE>-Dbincompat5005</CODE>, it pollutes the main <CODE>httpd</CODE>
  +program with <EM>free</EM> and <EM>malloc</EM> symbols. When <CODE>httpd</CODE> 
restarts (happens at startup too), any references in the main program to
  +<EM>free</EM> and <EM>malloc</EM> become invalid, and this causes memory leaks and 
segfaults.
  +
   <P>
  -<STRONG>Warning</STRONG>:  <EM>This is still experimental, so be warned!</EM>
  +Notice that mod_perl's build system warns about this problem.
  +
  +<P>
  +With Perl 5.6.0+ this pollution can be prevented with
  +<CODE>-Ubincompat5005</CODE>. or <CODE>-Uusemymalloc</CODE> for any version of 
Perl, but there's a chance that might hurt performance
  +depending on platform, so
  +<CODE>-Ubincompat5005</CODE> is likely a better choice.
  +
  +<P>
  +If you get the following reports with Perl version 5.6.0+:
  +
  +<P>
  +
  +    <table>
  +      <tr>
   
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
   
  +     <td>
  +       <pre>  % perl -V:usemymalloc
  +  usemymalloc='y';
  +  % perl -V:bincompat5005
  +  bincompat5005='define';</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +rebuild Perl with <CODE>-Ubincompat5005</CODE>.
   
   <P>
  -With Apache 1.3 there is support for building modules as Dynamic Shared
  -Objects (DSO). So there is support for DSO in mod_perl now, too. Your
  -mileage may vary. Almost certainly it will.
  +For Perl versions pre-5.6.x, if you get:
   
   <P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre>  % perl -V:usemymalloc
  +  usemymalloc='y';</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +rebuild Perl with <CODE>-Uusemymalloc</CODE>.
  +
  +<P>
  +Now rebuild mod_perl.
  +
  +<P>
  +[ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
  +<HR>
  +<CENTER><H2><A NAME="Build_mod_perl_as_a_DSO_inside_t">Build mod_perl as a DSO 
inside the Apache Source Tree via APACI</A></H2></CENTER>
  +<P>
   We have already said that the new mod_perl build environment 
(<CODE>USE_APACI</CODE>) is a hybrid. What does it mean? It means for instance that 
the same <CODE>src/modules/perl/</CODE> stuff can be used to build mod_perl as a DSO 
or not, without having to edit
   anything especially for this. When you want to build <CODE>libperl.so</CODE> all 
you have to do is to add one single option to the above steps.
   
  @@ -3995,7 +4055,7 @@
   <P><LI>
   <P>
   Installs mod_perl as an ``add in'' to the RedHat Apache package, but does
  -not install mod_perl as a DSO and all the problems that brings.
  +not install mod_perl as a DSO.
   
   <P><LI>
   <P>
  @@ -6470,7 +6530,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/02/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 11/15/2001
   </font></b>
   <br>
   
  
  
  
  1.30      +25 -3     modperl-site/guide/intro.html
  
  Index: intro.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/intro.html,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- intro.html        2001/10/16 16:08:35     1.29
  +++ intro.html        2001/11/15 09:04:51     1.30
  @@ -695,15 +695,19 @@
   Credits of course go to ( alphabetically sorted ):
   
   <UL>
  +<P><LI><STRONG><A NAME="item_Aaron">Aaron Johnson</A></STRONG>
   <P><LI><STRONG><A NAME="item_Ajay">Ajay Shah</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Alexander">Alexander Farber</A></STRONG>
   <P><LI><STRONG><A NAME="item_Andreas">Andreas J. Koenig</A></STRONG>
   <P><LI><STRONG><A NAME="item_Andreas">Andreas Piesk</A></STRONG>
   <P><LI><STRONG><A NAME="item_Andrei">Andrei A. Voropaev</A></STRONG>
   <P><LI><STRONG><A NAME="item_Andrew">Andrew Ford</A></STRONG>
   <P><LI><STRONG><A NAME="item_Anthony">Anthony D. Ettinger</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Artur">Artur Zambrzycki</A></STRONG>
   <P><LI><STRONG><A NAME="item_Ask">Ask Bjoern Hansen</A></STRONG>
   <P><LI><STRONG><A NAME="item_Barrie">Barrie Slaymaker</A></STRONG>
   <P><LI><STRONG><A NAME="item_Bill">Bill Moseley</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Boris">Boris Zentner</A></STRONG>
   <P><LI><STRONG><A NAME="item_Brian">Brian Moseley</A></STRONG>
   <P><LI><STRONG><A NAME="item_Carl">Carl Hansen</A></STRONG>
   <P><LI><STRONG><A NAME="item_Chad">Chad K. Lewis</A></STRONG>
  @@ -713,6 +717,7 @@
   <P><LI><STRONG><A NAME="item_Christophe">Christophe Dupre</A></STRONG>
   <P><LI><STRONG><A NAME="item_Cliff">Cliff Rayman</A></STRONG>
   <P><LI><STRONG><A NAME="item_Craig">Craig</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Daniel">Daniel Bohling</A></STRONG>
   <P><LI><STRONG><A NAME="item_Daniel">Daniel Koch</A></STRONG>
   <P><LI><STRONG><A NAME="item_Daniel">Daniel W. Burke</A></STRONG>
   <P><LI><STRONG><A NAME="item_Darren">Darren Chamberlain</A></STRONG>
  @@ -738,11 +743,11 @@
   <P><LI><STRONG><A NAME="item_Frank">Frank Schoeters</A></STRONG>
   <P><LI><STRONG><A NAME="item_Garr">Garr Updegraff</A></STRONG>
   <P><LI><STRONG><A NAME="item_Ged">Ged Haywood</A></STRONG>
  -<P><LI><STRONG><A NAME="item_Ged">Ged W. Haywood</A></STRONG>
   <P><LI><STRONG><A NAME="item_Geoff">Geoff Crawshaw</A></STRONG>
   <P><LI><STRONG><A NAME="item_Geoffrey">Geoffrey Young</A></STRONG>
   <P><LI><STRONG><A NAME="item_Gerald">Gerald Richter</A></STRONG>
   <P><LI><STRONG><A NAME="item_Gerd">Gerd Knops</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Glenn">Glenn</A></STRONG>
   <P><LI><STRONG><A NAME="item_Greg">Greg Cope</A></STRONG>
   <P><LI><STRONG><A NAME="item_Greg">Greg Stark</A></STRONG>
   <P><LI><STRONG><A NAME="item_Gunther">Gunther Birznieks</A></STRONG>
  @@ -752,13 +757,17 @@
   <P><LI><STRONG><A NAME="item_Howard">Howard Jones</A></STRONG>
   <P><LI><STRONG><A NAME="item_Hunter">Hunter Monroe</A></STRONG>
   <P><LI><STRONG><A NAME="item_Ilya">Ilya Obshadko</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Ime">Ime Smits</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Issac">Issac Goldstand</A></STRONG>
   <P><LI><STRONG><A NAME="item_James">James Furness</A></STRONG>
   <P><LI><STRONG><A NAME="item_James">James G Smith</A></STRONG>
  +<P><LI><STRONG><A NAME="item_James">James W Walden</A></STRONG>
   <P><LI><STRONG><A NAME="item_Jan">Jan Peter Hecking</A></STRONG>
   <P><LI><STRONG><A NAME="item_Jason">Jason Bodnar</A></STRONG>
   <P><LI><STRONG><A NAME="item_Jason">Jason Rhinelander</A></STRONG>
   <P><LI><STRONG><A NAME="item_Jauder">Jauder Ho</A></STRONG>
   <P><LI><STRONG><A NAME="item_Jay">Jay J</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Jean">Jean-Louis Guenego</A></STRONG>
   <P><LI><STRONG><A NAME="item_Jeff">Jeff Chan</A></STRONG>
   <P><LI><STRONG><A NAME="item_Jeff">Jeff Rowe</A></STRONG>
   <P><LI><STRONG><A NAME="item_Jeffrey">Jeffrey W. Baker</A></STRONG>
  @@ -775,14 +784,18 @@
   <P><LI><STRONG><A NAME="item_Jonathan">Jonathan Peterson</A></STRONG>
   <P><LI><STRONG><A NAME="item_Joshua">Joshua Chamas</A></STRONG>
   <P><LI><STRONG><A NAME="item_Kavitha">Kavitha</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Kees">Kees Vonk</A></STRONG>
   <P><LI><STRONG><A NAME="item_Ken">Ken Williams</A></STRONG>
   <P><LI><STRONG><A NAME="item_Kenny">Kenny Gatdula</A></STRONG>
   <P><LI><STRONG><A NAME="item_Kevin">Kevin Murphy</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Kevin">Kevin Swope</A></STRONG>
   <P><LI><STRONG><A NAME="item_Lance">Lance Cleveland</A></STRONG>
   <P><LI><STRONG><A NAME="item_Larry">Larry Leszczynski</A></STRONG>
   <P><LI><STRONG><A NAME="item_Leslie">Leslie Mikesell</A></STRONG>
   <P><LI><STRONG><A NAME="item_Lincoln">Lincoln Stein</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Lupe">Lupe Christoph</A></STRONG>
   <P><LI><STRONG><A NAME="item_Mads">Mads Toftum</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Marc">Marc Lehmann</A></STRONG>
   <P><LI><STRONG><A NAME="item_Marcel">Marcel Grunauer</A></STRONG>
   <P><LI><STRONG><A NAME="item_Mark">Mark Mills</A></STRONG>
   <P><LI><STRONG><A NAME="item_Mark">Mark Summerfield</A></STRONG>
  @@ -795,8 +808,10 @@
   <P><LI><STRONG><A NAME="item_Michael">Michael Hall</A></STRONG>
   <P><LI><STRONG><A NAME="item_Michael">Michael Rendell</A></STRONG>
   <P><LI><STRONG><A NAME="item_Michael">Michael Schout</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Michele">Michele Beltrame</A></STRONG>
   <P><LI><STRONG><A NAME="item_Mike">Mike Depot</A></STRONG>
   <P><LI><STRONG><A NAME="item_Mike">Mike Fletcher</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Mike">Mike MacKenzie</A></STRONG>
   <P><LI><STRONG><A NAME="item_Mike">Mike Miller</A></STRONG>
   <P><LI><STRONG><A NAME="item_Nancy">Nancy Lin</A></STRONG>
   <P><LI><STRONG><A NAME="item_Nathan">Nathan Torkington</A></STRONG>
  @@ -804,8 +819,10 @@
   <P><LI><STRONG><A NAME="item_Neil">Neil Conway</A></STRONG>
   <P><LI><STRONG><A NAME="item_Nick">Nick Tonkin</A></STRONG>
   <P><LI><STRONG><A NAME="item_Oleg">Oleg Bartunov</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Owen">Owen Williams</A></STRONG>
   <P><LI><STRONG><A NAME="item_Pascal">Pascal Eeftinck</A></STRONG>
   <P><LI><STRONG><A NAME="item_Patrick">Patrick</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Paul">Paul Cotter</A></STRONG>
   <P><LI><STRONG><A NAME="item_Pavel">Pavel Shmidt</A></STRONG>
   <P><LI><STRONG><A NAME="item_Perrin">Perrin Harkins</A></STRONG>
   <P><LI><STRONG><A NAME="item_Peter">Peter Galbavy</A></STRONG>
  @@ -827,7 +844,7 @@
   <P><LI><STRONG><A NAME="item_Richard">Richard More</A></STRONG>
   <P><LI><STRONG><A NAME="item_Rick">Rick Myers</A></STRONG>
   <P><LI><STRONG><A NAME="item_Robert">Robert Mathews</A></STRONG>
  -<P><LI><STRONG><A NAME="item_Robin">Robin Berjon</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Robin">Robin Bjorn</A></STRONG>
   <P><LI><STRONG><A NAME="item_Rodger">Rodger Donaldson</A></STRONG>
   <P><LI><STRONG><A NAME="item_Ron">Ron Pero</A></STRONG>
   <P><LI><STRONG><A NAME="item_Roy">Roy Nasser</A></STRONG>
  @@ -838,16 +855,20 @@
   <P><LI><STRONG><A NAME="item_Shane">Shane Nay</A></STRONG>
   <P><LI><STRONG><A NAME="item_Stephane">Stephane Benoit</A></STRONG>
   <P><LI><STRONG><A NAME="item_Stephen">Stephen Judd</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Steve">Steve Fink</A></STRONG>
   <P><LI><STRONG><A NAME="item_Steve">Steve Reppucci</A></STRONG>
   <P><LI><STRONG><A NAME="item_Steve">Steve Willer</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Surat">Surat Singh Bhati</A></STRONG>
   <P><LI><STRONG><A NAME="item_Terry">Terry West</A></STRONG>
   <P><LI><STRONG><A NAME="item_Tim">Tim Bunce</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Todd">Todd Finney</A></STRONG>
   <P><LI><STRONG><A NAME="item_Tom">Tom Brown</A></STRONG>
   <P><LI><STRONG><A NAME="item_Tom">Tom Christiansen</A></STRONG>
   <P><LI><STRONG><A NAME="item_Tom">Tom Hughes</A></STRONG>
   <P><LI><STRONG><A NAME="item_Tom">Tom Mornini</A></STRONG>
   <P><LI><STRONG><A NAME="item_Tuomas">Tuomas Salo</A></STRONG>
   <P><LI><STRONG><A NAME="item_Tzvetan">Tzvetan Stoyanov</A></STRONG>
  +<P><LI><STRONG><A NAME="item_Ulrich">Ulrich Neumerkel</A></STRONG>
   <P><LI><STRONG><A NAME="item_Ulrich">Ulrich Pfeifer</A></STRONG>
   <P><LI><STRONG><A NAME="item_Vivek">Vivek Khera</A></STRONG>
   <P><LI><STRONG><A NAME="item_Ward">Ward Vandewege</A></STRONG>
  @@ -855,6 +876,7 @@
   <P><LI><STRONG><A NAME="item_Will">Will Trillich</A></STRONG>
   <P><LI><STRONG><A NAME="item_Yann">Yann Kerhervé</A></STRONG>
   <P><LI><STRONG><A NAME="item_Yann">Yann Ramin</A></STRONG>
  +<P><LI>
   <P><LI><STRONG><A NAME="item_Did">Did I miss your name? Tell me!</A></STRONG>
   </UL>
   <P>
  @@ -917,7 +939,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/05/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 11/15/2001
   </font></b>
   <br>
   
  
  
  
  1.12      +5125 -5149modperl-site/guide/mod_perl_guide.pdf.gz
  
        <<Binary file>>
  
  
  1.24      +62 -1     modperl-site/guide/modules.html
  
  Index: modules.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/modules.html,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- modules.html      2001/10/16 16:08:35     1.23
  +++ modules.html      2001/11/15 09:04:54     1.24
  @@ -52,6 +52,8 @@
        <LI><A HREF="#Apache_LogSTDERR">Apache::LogSTDERR</A>
        <LI><A HREF="#Apache_RedirectLogFix">Apache::RedirectLogFix</A>
        <LI><A HREF="#Apache_SubProcess">Apache::SubProcess</A>
  +     <LI><A HREF="#Module_Use_Log_and_Load_used_">Module::Use - Log and Load used 
Perl modules</A>
  +     <LI><A HREF="#Apache_ConfigFile_Parse_an_Ap">Apache::ConfigFile - Parse an 
Apache style httpd.conf config file</A>
   </UL>
   
       </div>
  @@ -1199,6 +1201,65 @@
   external program prints the data that it read to STDOUT, the main program
   intercepts it and sends to the client's socket (browser in most cases).
   
  +<P>
  +[ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
  +<HR>
  +<CENTER><H1><A NAME="Module_Use_Log_and_Load_used_">Module::Use - Log and Load used 
Perl modules</A></H1></CENTER>
  +<P>
  +<CODE>Module::Use</CODE> records the modules used over the course of the Perl 
interpreter's
  +lifetime. If the logging module is able, the old logs are read and
  +frequently used modules are automatically loaded.
  +
  +<P>
  +For example if configured as:
  +
  +<P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre>  &lt;Perl&gt;
  +      use Module::Use (Counting, Logger =&gt; &quot;Debug&quot;);
  +  &lt;/Perl&gt;</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre>  PerlChildExitHandler Module::Use</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +it will only record the used modules when the child exists, logging
  +everything (debug level).
  +
  +<P>
  +[ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
  +<HR>
  +<CENTER><H1><A NAME="Apache_ConfigFile_Parse_an_Ap">Apache::ConfigFile - Parse an 
Apache style httpd.conf config file</A></H1></CENTER>
  +<P>
  +This module parses <EM>httpd.conf</EM>, or any compatible config file, and provides 
methods for accessing the
  +values from the parsed file.
  +
  +<P>
  +See the module manpage for more information.
  +
   [ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
   <HR>
   
  @@ -1252,7 +1313,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/22/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 11/06/2001
   </font></b>
   <br>
   
  
  
  
  1.18      +1 -1      modperl-site/guide/multiuser.html
  
  Index: multiuser.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/multiuser.html,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- multiuser.html    2001/04/27 16:57:19     1.17
  +++ multiuser.html    2001/11/15 09:04:54     1.18
  @@ -512,7 +512,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 03/11/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.34      +1 -6      modperl-site/guide/performance.html
  
  Index: performance.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/performance.html,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- performance.html  2001/09/02 14:27:00     1.33
  +++ performance.html  2001/11/15 09:04:54     1.34
  @@ -10736,11 +10736,6 @@
   See your preferred compiler's man page for detailed information about
   optimization.
   
  -<P>
  -Also see: <A
  
-HREF="http://members.nbci.com/Alex_Maranda/gnuintel/GNUintel.htm";>http://members.nbci.com/Alex_Maranda/gnuintel/GNUintel.htm</A>
  -
  -
   [ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
   <HR>
   
  @@ -10794,7 +10789,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 06/19/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 10/26/2001
   </font></b>
   <br>
   
  
  
  
  1.20      +1 -1      modperl-site/guide/perl.html
  
  Index: perl.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/perl.html,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- perl.html 2001/09/02 14:27:00     1.19
  +++ perl.html 2001/11/15 09:04:54     1.20
  @@ -4686,7 +4686,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 06/09/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.35      +35 -32    modperl-site/guide/porting.html
  
  Index: porting.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/porting.html,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- porting.html      2001/09/02 14:27:00     1.34
  +++ porting.html      2001/11/15 09:04:54     1.35
  @@ -2044,8 +2044,8 @@
     my $q = CGI-&gt;new;
     
     print $q-&gt;header(-type=&gt;'text/html');
  -  print $q-&gt;p(qq{$fname $lname holds the patch pumpkin
  -               for this Perl release.});</pre>
  +  print $q-&gt;p(&quot;$fname $lname holds the patch pumpkin&quot; .
  +               &quot;for this Perl release.&quot;);</pre>
           </td>
            
         </tr>
  @@ -2117,18 +2117,19 @@
        <td>
          <pre>  use vars qw(%MODIFIED);
     sub reread_conf{
  -    my $file = shift;
  -    return unless $file;
  -    return unless -e $file and -r _;
  -    unless ($MODIFIED{$file} and $MODIFIED{$file} == -M _){
  -      my $result;
  -      unless ($result = do $file) {
  -        warn &quot;couldn't parse $file: $@&quot; if $@;
  -        warn &quot;couldn't do $file: $!&quot;    unless defined $result;
  -        warn &quot;couldn't run $file&quot;       unless         $result;
  +      my $file = shift;
  +      return unless defined $file;
  +      return unless -e $file and -r _;
  +      my $mod = -M _;
  +      unless (exists $MODIFIED{$file} and $MODIFIED{$file} == $mod) {
  +          my $result;
  +          unless ($result = do $file) {
  +              warn &quot;couldn't parse $file: $@&quot; if $@;
  +              warn &quot;couldn't do $file: $!&quot;    unless defined $result;
  +              warn &quot;couldn't run $file&quot;       unless         $result;
  +          }
  +          $MODIFIED{$file} = $mod; # Update the MODIFICATION times
         }
  -      $MODIFIED{$file} =  -M _; # Update the MODIFICATION times
  -    }
     } # end of reread_conf</pre>
           </td>
            
  @@ -2218,22 +2219,23 @@
     print $q-&gt;header(-type=&gt;'text/plain');
     my $config_file = &quot;./config.pl&quot;;
     reread_conf($config_file);
  -  print $q-&gt;p(qq{$fname $lname holds the patch pumpkin
  -               for this Perl release.});
  +  print $q-&gt;p(&quot;$fname $lname holds the patch pumpkin&quot; .
  +               &quot;for this Perl release.&quot;);
     
     sub reread_conf{
  -    my $file = shift;
  -    return unless $file;
  -    return unless -e $file and -r _;
  -    unless ($MODIFIED{$file} and $MODIFIED{$file} == -M _){
  -      my $result;
  -      unless ($result = do $file) {
  -        warn &quot;couldn't parse $file: $@&quot; if $@;
  -        warn &quot;couldn't do $file: $!&quot;    unless defined $result;
  -        warn &quot;couldn't run $file&quot;       unless $result;
  +      my $file = shift;
  +      return unless defined $file;
  +      return unless -e $file and -r _;
  +      my $mod = -M _;
  +      unless ($MODIFIED{$file} and $MODIFIED{$file} == $mod) {
  +          my $result;
  +          unless ($result = do $file) {
  +              warn &quot;couldn't parse $file: $@&quot; if $@;
  +              warn &quot;couldn't do $file: $!&quot;    unless defined $result;
  +              warn &quot;couldn't run $file&quot;       unless $result;
  +          }
  +          $MODIFIED{$file} = $mod; # Update the MODIFICATION times
         }
  -      $MODIFIED{$file} =  -M _; # Update the MODIFICATION times
  -    }
     } # end of reread_conf</pre>
           </td>
            
  @@ -2406,7 +2408,8 @@
     
       # push to hash if was changed
       $updates{$_} = $new_val
  -      if defined $q-&gt;param(&quot;prev_&quot;.$_) and $new_val ne 
$q-&gt;param(&quot;prev_&quot;.$_);
  +      if defined $q-&gt;param(&quot;prev_&quot;.$_) 
  +         and $new_val ne $q-&gt;param(&quot;prev_&quot;.$_);
     }
     
     # Note that we cannot trust the previous values of the variables
  @@ -4039,7 +4042,7 @@
   When writing your own handlers and scripts with the Perl Apache API the
   proper way to send the HTTP header is with the
   <CODE>send_http_header()</CODE> method. If you need to add or override
  -methods you can use the <CODE>headers_out()</CODE> method:
  +methods you can use the <CODE>header_out()</CODE> method:
   
   <P>
   
  @@ -4051,8 +4054,8 @@
           </td>
   
        <td>
  -       <pre>  $r-&gt;headers_out(&quot;Server&quot; =&gt; &quot;Apache Next 
Generation 10.0&quot;);
  -  $r-&gt;headers_out(&quot;Date&quot; =&gt; &quot;Tue, 28 Dec 1999 18:49:41 
GMT&quot;);</pre>
  +       <pre>  $r-&gt;header_out(&quot;Server&quot; =&gt; &quot;Apache Next 
Generation 10.0&quot;);
  +  $r-&gt;header_out(&quot;Date&quot; =&gt; &quot;Tue, 28 Dec 1999 18:49:41 
GMT&quot;);</pre>
           </td>
            
         </tr>
  @@ -4106,7 +4109,7 @@
           </td>
   
        <td>
  -       <pre> headers_out(&quot;Content-type&quot; =&gt; 
&quot;text/plain&quot;);</pre>
  +       <pre>  $r-&gt;header_out(&quot;Content-type&quot; =&gt; 
&quot;text/plain&quot;);</pre>
           </td>
            
         </tr>
  @@ -6414,7 +6417,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 08/01/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 10/08/2001
   </font></b>
   <br>
   
  
  
  
  1.33      +1 -1      modperl-site/guide/scenario.html
  
  Index: scenario.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/scenario.html,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- scenario.html     2001/09/02 14:27:01     1.32
  +++ scenario.html     2001/11/15 09:04:54     1.33
  @@ -3343,7 +3343,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/05/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.17      +1 -1      modperl-site/guide/security.html
  
  Index: security.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/security.html,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- security.html     2001/01/11 13:48:23     1.16
  +++ security.html     2001/11/15 09:04:54     1.17
  @@ -545,7 +545,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 08/20/2000
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.31      +77 -5     modperl-site/guide/snippets.html
  
  Index: snippets.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/snippets.html,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- snippets.html     2001/09/02 14:27:01     1.30
  +++ snippets.html     2001/11/15 09:04:54     1.31
  @@ -49,6 +49,7 @@
        <LI><A HREF="#Passing_and_Preserving_Custom_Da">Passing and Preserving Custom 
Data Structures Between Handlers</A>
        <LI><A HREF="#Passing_Notes_Between_mod_perl_a">Passing Notes Between mod_perl 
and other (non-Perl) Apache Modules</A>
        <LI><A HREF="#Passing_Environment_Variables_Be">Passing Environment Variables 
Between Handlers</A>
  +     <LI><A HREF="#Verifying_Whether_A_Request_Was_">Verifying Whether A Request 
Was Received Over An SSL Connection</A>
        <LI><A HREF="#CGI_params_in_the_mod_perl_ish_">CGI::params in the mod_perl-ish 
Way</A>
        <LI><A HREF="#Subclassing_Apache_Request">Subclassing Apache::Request</A>
        <LI><A HREF="#Sending_Email_from_mod_perl">Sending Email from mod_perl</A>
  @@ -393,9 +394,9 @@
   <CENTER><H1><A NAME="Reusing_Data_from_POST_request">Reusing Data from POST 
request</A></H1></CENTER>
   <P>
   What happens if you need to access the POSTed data more than once, say to
  -reuse it on subsequent requests? POSTed data comes directly from the
  -socket, and at the low level data can only be read from a socket once. So
  -you have to store it to make it available for reuse.  
  +reuse it in subsequent handlers of the same request? POSTed data comes
  +directly from the socket, and at the low level data can only be read from a
  +socket once. So you have to store it to make it available for reuse.
   
   <P>
   There is an experimental option for <CODE>Makefile.PL</CODE> called
  @@ -488,6 +489,11 @@
   <CODE>$r-&gt;args</CODE> doesn't go away (unless you make it go away by resetting 
it).
   
   <P>
  +If you are using <CODE>Apache::Request</CODE>, it solves this problem for you with 
its <CODE>instance()</CODE> class
  +method, which allows <CODE>Apache::Request</CODE> to be a singleton. This means 
that whenever you call
  +<CODE>Apache::Request</CODE>-&gt;<CODE>instance()</CODE> within a single request 
you always get the same <CODE>Apache::Request</CODE> object back.
  +
  +<P>
   [ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
   <HR>
   <CENTER><H1><A NAME="Redirecting_POST_Requests">Redirecting POST 
Requests</A></H1></CENTER>
  @@ -918,7 +924,7 @@
     my $r = shift;
     # prepare the cookie in $cookie
     $r-&gt;err_headers_out-&gt;add('Set-Cookie' =&gt; $cookie);
  -  $r-&gt;headers_out(Location =&gt; $location);
  +  $r-&gt;headers_out-&gt;set(Location =&gt; $location);
     $r-&gt;status(REDIRECT);
     $r-&gt;send_http_header;
     return OK;</pre>
  @@ -1169,6 +1175,72 @@
   <P>
   [ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
   <HR>
  +<CENTER><H1><A NAME="Verifying_Whether_A_Request_Was_">Verifying Whether A Request 
Was Received Over An SSL Connection</A></H1></CENTER>
  +<P>
  +Just like <CODE>$ENV{MODPERL}</CODE> is checked to see whether the code is run 
under mod_perl, <CODE>$ENV{HTTPS}</CODE> is set by ssl modules and therefore can be 
used to check whether a request
  +is running over SSL connection. For example:
  +
  +<P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre>  print &quot;SSL&quot; if $ENV{HTTPS};</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +If <CODE>PerlSetupEnv Off</CODE> setting is in effect, <CODE>$ENV{HTTPS}</CODE> 
won't be available, and then:
  +
  +<P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre>  print &quot;SSL&quot; if $r-&gt;subprocess_env('https');</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +should be used instead.
  +
  +<P>
  +Note that it's also possible to check the scheme:
  +
  +<P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre>  print &quot;SSL&quot; if Apache::URI-&gt;parse($r)-&gt;scheme =~ 
m/^https/;</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +but it's not one hundred percent certain unless you control the server and
  +you know that you run a secure server on the port 443.
  +
  +<P>
  +[ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
  +<HR>
   <CENTER><H1><A NAME="CGI_params_in_the_mod_perl_ish_">CGI::params in the 
mod_perl-ish Way</A></H1></CENTER>
   <P>
   You can retrieve the request parameters in a similar to <CODE>CGI::params</CODE>
  @@ -2362,7 +2434,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 08/01/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 11/06/2001
   </font></b>
   <br>
   
  
  
  
  1.28      +1 -1      modperl-site/guide/start.html
  
  Index: start.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/start.html,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- start.html        2001/09/02 14:27:01     1.27
  +++ start.html        2001/11/15 09:04:54     1.28
  @@ -257,7 +257,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/05/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/14/2001
   </font></b>
   <br>
   
  
  
  
  1.21      +63 -1     modperl-site/guide/strategy.html
  
  Index: strategy.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/strategy.html,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- strategy.html     2001/09/02 14:27:01     1.20
  +++ strategy.html     2001/11/15 09:04:54     1.21
  @@ -50,6 +50,7 @@
   
                <LI><A HREF="#The_Squid_Server">The Squid Server</A>
                <LI><A HREF="#Apache_s_mod_proxy">Apache's mod_proxy</A>
  +             <LI><A HREF="#Closing_Lingering_Connections_wi">Closing Lingering 
Connections with Lingerd</A>
        </UL>
   
        <LI><A HREF="#When_One_Machine_is_not_Enough_f">When One Machine is not Enough 
for RDBMS Database and mod_perl</A>
  @@ -885,6 +886,67 @@
   <P>
   [ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
   <HR>
  +<CENTER><H2><A NAME="Closing_Lingering_Connections_wi">Closing Lingering 
Connections with Lingerd</A></H2></CENTER>
  +<P>
  +Because of some technical complications in TCP/IP, at the end of each
  +client connection, it is not enough for Apache to close the socket and
  +forget about it; instead, it needs to spend about one second
  +<EM>lingering</EM> on the client. (More details can be found at <A
  
+HREF="http://httpd.apache.org/docs/misc/fin_wait_2.html";>http://httpd.apache.org/docs/misc/fin_wait_2.html</A>)
  +
  +
  +<P>
  +Lingerd is a daemon (service) designed to take over the job of properly
  +closing network connections from an http server like Apache and immediately
  +freeing it to handle a new connection.
  +
  +<P>
  +<CODE>lingerd</CODE> can only do an effective job if HTTP <CODE>Keep-Alive</CODE>s 
are turned off; since <CODE>Keep-Alive</CODE>s are useful for images, the recommended 
setup is to have <CODE>lingerd</CODE> serving mod_perl enabled Apache and plain Apache 
for images and other
  +static objects.
  +
  +<P>
  +With a <CODE>lingerd</CODE> setup, you don't have the proxy, so the buffering chain 
we have presented
  +before for the proxy setup is much shorter here:
  +
  +<P>
  +FIGURE:
  +
  +<P>
  +
  +    <table>
  +      <tr>
  +
  +     <td bgcolor="#eeeeee" width="1">
  +       &nbsp;
  +        </td>
  +
  +     <td>
  +       <pre> |   Apache     Kernel   |TCP/IP  `o'
  + | [mod_perl]=&gt;[sendbuf] |======&gt; /|\
  + |                       |        / \</pre>
  +        </td>
  +         
  +      </tr>
  +    </table>
  +    <P>
  +Hence in this setup it becomes more important to have a big enough kernel
  +send buffer.
  +
  +<P>
  +With lingerd, a big enough kernel send buffer, and keep-alives off, the job
  +of spoonfeeding the data to a slow client is done by the OS kernel in the
  +background. As a result, <CODE>lingerd</CODE> makes it possible to serve the same 
load using considerably fewer Apache
  +processes. This translates into a reduced load on the server. It can be
  +used as an alternative to the proxy setups we have seen so far.
  +
  +<P>
  +For more information about <CODE>lingerd</CODE> see: <A
  
+HREF="http://www.iagora.com/about/software/lingerd/";>http://www.iagora.com/about/software/lingerd/</A>
  +
  +
  +<P>
  +[ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
  +<HR>
   <CENTER><H1><A NAME="When_One_Machine_is_not_Enough_f">When One Machine is not 
Enough for RDBMS Database and mod_perl</A></H1></CENTER>
   <P>
   Imagine a scenario where you start your business as a small service
  @@ -1550,7 +1612,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 07/25/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 09/19/2001
   </font></b>
   <br>
   
  
  
  
  1.13      +15 -1     modperl-site/guide/troubleshooting.html
  
  Index: troubleshooting.html
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/troubleshooting.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- troubleshooting.html      2001/09/02 14:27:01     1.12
  +++ troubleshooting.html      2001/11/15 09:04:55     1.13
  @@ -39,6 +39,7 @@
        <LI><A HREF="#Configuration_and_Startup">Configuration and Startup</A>
        <UL>
   
  +             <LI><A HREF="#SegFaults_During_Startup">SegFaults During Startup</A>
                <LI><A HREF="#libexec_libperl_so_open_failed_">libexec/libperl.so: 
open failed: No such file or directory</A>
                <LI><A HREF="#install_driver_Oracle_failed_C">install_driver(Oracle) 
failed: Can't load '.../DBD/Oracle/Oracle.so' for module DBD::Oracle</A>
                <LI><A HREF="#Invalid_command_PerlHandler_">Invalid command 
'PerlHandler'...</A>
  @@ -169,6 +170,19 @@
   <P>
   [ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
   <HR>
  +<CENTER><H2><A NAME="SegFaults_During_Startup">SegFaults During 
Startup</A></H2></CENTER>
  +<P>
  +You have to build mod_perl with the same compiler as Perl was built with.
  +Otherwise you may see segmentation faults and other weird things happen.
  +
  +<P>
  +However if this is not the situation and you still experience segmentation
  +faults, please refer to the <EM>SUPPORT</EM> file in the mod_perl source 
distribution and post the trace from the core
  +file as explained there.
  +
  +<P>
  +[ <B><FONT SIZE=-1><A HREF="#toc">TOC</A></FONT></B> ]
  +<HR>
   <CENTER><H2><A NAME="libexec_libperl_so_open_failed_">libexec/libperl.so: open 
failed: No such file or directory</A></H2></CENTER>
   <P>
   If when you run the server you get the following error:
  @@ -1387,7 +1401,7 @@
   <td align=center valign=center>
   
   <b><font size=-1>Written by <a
  -href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 05/07/2001
  +href="help.html#Contacting_me">Stas Bekman</a>.<br> Last Modified at 10/05/2001
   </font></b>
   <br>
   
  
  
  
  1.3       +10 -10    modperl-site/guide/code/lwp-bench.pl
  
  Index: lwp-bench.pl
  ===================================================================
  RCS file: /home/cvs/modperl-site/guide/code/lwp-bench.pl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- lwp-bench.pl      2001/09/02 14:27:03     1.2
  +++ lwp-bench.pl      2001/11/15 09:04:57     1.3
  @@ -8,8 +8,8 @@
   # Configuration
   ###
   
  -my $nof_parallel_connections = 10; 
  -my $nof_requests_total = 100; 
  +my $nof_parallel_connections = 10;
  +my $nof_requests_total = 100;
   my $timeout = 10;
   my @urls = (
            'http://www.example.com:81/perl/faq_manager/faq_manager.pl',
  @@ -100,7 +100,7 @@
   }
   
   ###
  -# Format errors if any from %errors 
  +# Format errors if any from %errors
   ###
   my $errors = join(',', map "$_ ($errors{$_})", keys %errors);
   $errors = "NONE" unless $errors;
  @@ -112,17 +112,17 @@
   #@urls = map {($_,".")} @urls;
   my @P = (
         "URL(s)"          => join("\n\t\t ", @urls),
  -      "Total Requests"  => "$nof_requests_total",
  +      "Total Requests"  => $nof_requests_total * @urls,
         "Parallel Agents" => $nof_parallel_connections,
         "Succeeded"       => sprintf("$succeeded (%.2f%%)\n",
  -                                $succeeded * 100 / ($nof_requests_total * @urls) ),
  +                                $succeeded * 100 / ( $nof_requests_total * @urls ) 
),
         "Errors"          => $errors,
         "Total Time"      => sprintf("%.2f secs\n", $total_time),
  -      "Throughput"      => sprintf("%.2f Requests/sec\n", 
  -                                $nof_requests_total / $total_time),
  -      "Latency"         => sprintf("%.2f secs/Request", 
  -                                ($ua->get_latency_total() || 0) / 
  -                                $nof_requests_total),
  +      "Throughput"      => sprintf("%.2f Requests/sec\n",
  +                                ( $nof_requests_total * @urls ) / $total_time),
  +      "Latency"         => sprintf("%.2f secs/Request",
  +                                ($ua->get_latency_total() || 0) /
  +                                ( $nof_requests_total * @urls ) ),
        );
   
   my ($left, $right);
  
  
  


Reply via email to