You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by nd...@apache.org on 2005/09/24 13:22:59 UTC

svn commit: r291280 [1/2] - in /httpd/httpd/branches/mod_version_for_2.0.x: ./ docs/manual/mod/ docs/manual/programs/ docs/manual/rewrite/ include/ modules/arch/netware/ modules/experimental/ modules/generators/ modules/http/ modules/proxy/ server/ src...

Author: nd
Date: Sat Sep 24 04:22:21 2005
New Revision: 291280

URL: http://svn.apache.org/viewcvs?rev=291280&view=rev
Log:
mod_version_for_2.0.x branch:
* Merge 290201 to 291277 from branches/2.0.x

Modified:
    httpd/httpd/branches/mod_version_for_2.0.x/CHANGES
    httpd/httpd/branches/mod_version_for_2.0.x/STATUS
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.de
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.en
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.de
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.es
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.ja
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.de
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.en
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ko.euc-kr
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ru.koi8-r
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/mod_dumpio.xml   (contents, props changed)
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.de
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.en
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ko.euc-kr
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ru.koi8-r
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/programs/htdbm.xml   (contents, props changed)
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/index.xml   (props changed)
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide.xml   (contents, props changed)
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide_advanced.xml   (contents, props changed)
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_intro.xml   (props changed)
    httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_tech.xml   (props changed)
    httpd/httpd/branches/mod_version_for_2.0.x/include/ap_mmn.h
    httpd/httpd/branches/mod_version_for_2.0.x/include/http_core.h
    httpd/httpd/branches/mod_version_for_2.0.x/modules/arch/netware/mod_netware.c
    httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap.c
    httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.c
    httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.h
    httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.c
    httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.h
    httpd/httpd/branches/mod_version_for_2.0.x/modules/http/http_protocol.c
    httpd/httpd/branches/mod_version_for_2.0.x/modules/proxy/mod_proxy.c
    httpd/httpd/branches/mod_version_for_2.0.x/modules/proxy/proxy_http.c
    httpd/httpd/branches/mod_version_for_2.0.x/server/core.c
    httpd/httpd/branches/mod_version_for_2.0.x/srclib/pcre/pcre.c

Modified: httpd/httpd/branches/mod_version_for_2.0.x/CHANGES
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/CHANGES?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/CHANGES [utf-8] Sat Sep 24 04:22:21 2005
@@ -8,6 +8,29 @@
      accompanying ap_version_t structure (minor MMN bump).
      [André Malo]
 
+  *) mod_ldap: Fix PR 36563. Keep track of the number of attributes
+     retrieved from LDAP so that all of the values can be properly 
+     cached even if the value is NULL. 
+     [Brad Nicholes, Ondrej Sury <ondrej sury.org>]
+       
+  *) SECURITY: CAN-2005-2491 (cve.mitre.org): 
+     Fix integer overflows in PCRE in quantifier parsing which could
+     be triggered by a local user through use of a carefully-crafted 
+     regex in an .htaccess file.  [Philip Hazel]
+
+  *) SECURITY: CAN-2005-2088 (cve.mitre.org)
+     proxy: Correctly handle the Transfer-Encoding and Content-Length
+     headers.  Discard the request Content-Length whenever T-E: chunked
+     is used, always passing one of either C-L or T-E: chunked whenever 
+     the request includes a request body.  Resolves an entire class of
+     proxy HTTP Request Splitting/Spoofing attacks.  [William Rowe]
+
+  *) Added TraceEnable [on|off|extended] per-server directive to alter
+     the behavior of the TRACE method.  This addresses a flaw in proxy
+     conformance to RFC 2616 - previously the proxy server would accept
+     a TRACE request body although the RFC prohibited it.  The default
+     remains 'TraceEnable on'.  [William Rowe]
+
   *) Add ap_log_cerror() for logging messages associated with particular
      client connections.  [Jeff Trawick]
 

Modified: httpd/httpd/branches/mod_version_for_2.0.x/STATUS
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/STATUS?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/STATUS (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/STATUS Sat Sep 24 04:22:21 2005
@@ -104,54 +104,10 @@
 
 RELEASE SHOWSTOPPERS:
 
-    * Copy the backport branch of all of the mod_proxy_http.c's request body 
-      handling security, protocol and bug fixes; by svn copy'ing the file
-      httpd/httpd/branches/proxy-reqbody-2.0.x/modules/proxy/proxy_http.c back to
-      httpd/branches/2.0.x/... preserving the detail of all of the individually
-      backported changes.
-
-       +1: wrowe, jim, minfrin
-       -1:
-
-      For a complete history of individual unit changes, see r230703 - r230744 in
-      http://svn.apache.org/viewcvs.cgi/httpd/httpd/branches/proxy-reqbody-2.0.x/
-      [...]  modules/proxy/proxy_http.c?&view=log
-      Cite the specific patch with justification for each specific objection.
-
-      Suggested; revert r219061 to thoroughly test this patch, as r219061 masks 
-      some underlying bugs (although it is a -good- patch in and of itself and
-      provides additional protection to other content-handling modules).      
-
-    * TRACE must not have a request body per RFC2616; see the -trace.patch
-      below for one of two alternatives.  The other alternative; simply
-      hack mod_proxy.c to reject TRACE when a body is seen, again see that
-      -trace.patch for an illustration.
-
 
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-    *) mod_cgi: Added API call and overload of detached field in
-       cgi_exec_info_t structure to support loading in current or new address
-       space for CGIs.  The patch change how NetWare use cmdtype for
-       processes. It was made necessary by changes done to log.c r1.145.
-       The HTTP and the APR patches are available at:
-       <http://www.apache.org/~clar/detach-addrspace_HTTP_2_0.patch>
-       <http://www.apache.org/~clar/detach-addrspace_APR_0_9.patch>
-       +1: jjclar, bnicholes, trawick
-       jerenkrantz: I'm confused as to the status of this backport.
-       trawick: Somebody commits the APR 0.9 patch, then:
-         do we have to wait for later APR 0.x release before putting
-         calls to apr_procattr_addrspace_set() into httpd-2.0.x, or
-         do we go ahead and introduce the prerequisite?
-       clar replies: I am ready to commit the apr 0.9.x patch, but then will need 
-         the changes in the httpd-2.0.x to be done in order for NetWare to work
-         as expected when calling apr_proc_create. Should I do both, APR and Http,
-         at the same time?
-       wrowe: commit to APR.  Use an APR version test *in httpd* to determine 
-         if the old or new behavior should be used in httpd.  In future versions
-         you could remove the test altogether.
-
     *) mod_actions: Regression from 1.3: the file referred to must exist.
        Solve this by introducing the "virtual" modifier to the Action
        directive. PR 28553.
@@ -194,12 +150,6 @@
        +1: pquerna, nd, wrowe
        Votes from before the integration branch: +1: jerenkrantz
 
-    *) Fix CAN-2005-2491, integer overflow in pcre.
-         http://svn.apache.org/viewcvs?rev=233493&view=rev
-       rediff for 2.0: http://people.apache.org/~jorton/CAN-2005-2491.patch
-       test case: perl-framework/t/security/CAN-2005-2491.t
-       +1: jorton, nd, wrowe
-
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ please place SVN revisions from trunk here, so it is easy to
     identify exactly what the proposed changes are!  Add all new
@@ -211,18 +161,6 @@
        +1: jorton, wrowe
        wrowe cautions to backport to 2.2.x branch as well.
 
-    *) Correct RFC 2616 non-compliance by refusing to proxy a request body 
-       in a TRACE request, unless TraceEnable extended is configured.
-       Introduces TraceEnable [on|off|extended] to give the administrator
-       full control of TRACE request handling.  RFC 2616 does NOT require
-       TRACE (although to disable remains silly).  Current patch at;
-          http://people.apache.org/~wrowe/httpd-2.0-trace.patch
-       +1 wrowe, jimjag, colm
-         colm notes: There are some \n's in apr_table_setn calls that are
-                     not consistent with other calls to apr_table_setn.
-                     There is no documentation for TraceEnable in trunk to 
-                     backport, shouldn't release while still undocumented.
-
     *) mod_headers: Support {...}s tag for SSL variable lookup.
        http://www.apache.org/~jorton/mod_headers-2.0-ssl.diff
        +1: jorton, trawick
@@ -252,9 +190,9 @@
 
     *) Provide TLS/SSL upgrade functionality in mod_ssl allowing an unsecure
        connection to be upgraded to a secure connection upon request by the
-       client.  The full patch file is available at http://www.apache.org/~bnicholes/
-       as well as a test client tlsupgrade.c. This functionality is mainly used by
-       IPP clients today.
+       client.  The full patch is available at http://www.apache.org/~bnicholes/
+       as well as a test client tlsupgrade.c. This functionality is mainly used
+       by IPP clients today.
           modules/ssl/mod_ssl.c: r1.75, r1.97, r1.100
           modules/ssl/mod_ssl.h: r1.123
           modules/ssl/ssl_engine_config.c: r1.71, r1.90
@@ -328,51 +266,8 @@
                  algorithims can be pretty "interesting", probably more
                  2.2. 
 
-    *) mod_ldap: Fix PR 36563. Keep track of the number of attributes
-       retrieved from LDAP so that all of the values can be properly 
-       cached even if the value is NULL.
-         http://issues.apache.org/bugzilla/attachment.cgi?id=16429
-	 or 
-	 http://svn.apache.org/viewcvs.cgi?rev=156587&view=rev
-       +1: bnicholes
-
 PATCHES TO BACKPORT THAT ARE ON HOLD OR NOT GOING ANYWHERE SOON:
 
-    *) Remove LDAP toolkit specific code from util_ldap and mod_auth_ldap.
-         modules/experimental/mod_auth_ldap.c: 1.28
-         modules/experimental/util_ldap.c: 1.36
-       +0: minfrin (this requires the apr-util LDAP overhaul to be ported to
-                    apr-util v0.9 first)
-       -0: jerenkrantz
-           jerenkrantz: I don't think we can change the APR 0.9 interfaces.
-                        They are supposed to be set in stone.
-       -1:  wrowe: agrees with jerenkrantz, further realized that this major
-                   change in APR 1.0 caused -every- apr-util linked app to have
-                   the ldap sdk (openldap etc) linked in, and our --static-support
-                   stuff is horribly broken by this change.  Not that it's wrong,
-                   we need to look at making it slightly more dynamic for those
-                   apps that don't touch ldap.
-
-    *) Add load balancer support to the scoreboard in preparation for
-       load balancing support in mod_proxy.
-         include/scoreboard.h: 1.52
-         server/scoreboard.c: 1.75
-       +0: minfrin: it makes sense for v2.1 or v2.2
-       -0: nd, jerenkrantz
-           nd: -0 as in "it should be considered as a 2.1 feature".
-              If the modified structures are public (are they?), I'm just -1.
-           jerenkrantz: Sounds like a good 2.1 feature...
-       -1: wrowe (make this a private score to the module and you would be fine;
-                  we don't need to keep overloading a single scoreboard.)
-
-    *) mod_ssl: Remove some unused functions (after CAN-2004-0488 fix is applied)
-       http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/ssl/ssl_util.c?r1=1.46&r2=1.47
-       +1: jorton
-       trawick: need changes to mod_ssl.h to remove prototypes for those removed functions
-       0: nd: IMHO that's a public API change then and not applicable for
-              2.0, just let 'em in
-       -1: wrowe (as nd suggests, leave the dead horse in peace.)
-
     *) Replace some of the mutex locking in the worker MPM with
        atomic operations for higher concurrency.
          server/mpm/worker/fdqueue.c 1.24, 1.25
@@ -467,30 +362,31 @@
        http://svn.apache.org/viewcvs?view=rev&rev=158798
        http://svn.apache.org/viewcvs?view=rev&rev=159410
        http://svn.apache.org/viewcvs?view=rev&rev=160573
-       +1: gregames
+       +1: gregames, wrowe (provided this is applied to ALL subreq types!)
        -1: jerenkrantz (read_length isn't a sufficient check to see if a body
                        is present in the request; presence of T-E and C-L in
                        the headers is the correct flag.)
-           gregames: done in rev 160573
-       ±0: wrowe (this has a negative impact on modules who wish to 'inspect'
+           gregames: addressed jerenkrantz' objection in rev 160573
+           wrowe: this has a negative impact on modules who wish to 'inspect'
              the headers, e.g. an xml transformation affected by the query
              string or request POST args.  The right solution is adopt apreq,
-             providing an API for filters to participate in POST bodies.)
+             providing an API for filters to participate in POST bodies.
            gregames: this does not affect POSTs.  the affected function helps
              create a GET subrequest with no body and is unprepared to deal with
              subrequest bodies.  any modules or applications wishing to
              inspect headers will in fact work better because the headers will
              reflect reality.
-
+           wrowe: I've reconsidered - the simple fact is that subrequests
+             don't have a good mechanism to 'share' the input body with the
+             main request, and it's gotta be up to the main request to handle
+             the input body.  If the module wants to use apreq-provided data,
+             then it's going to have to ask apreq for the data instead of
+             looking at the headers.  For that matter, why are subreq's even
+             propogating POST or other non-GET types?  It seems that almost
+             any subreq should be handled as a GET in 2.0.
 
 CURRENT VOTES:
 
-    *) Promote mod_ldap and mod_auth_ldap from experimental to
-       non experimental status.
-       +1: bnicholes, wrowe
-       +0: minfrin (wait till the last cache bugs are ironed out)
-       -1: jerenkrantz
-
     *) httpd-std.conf and friends;
 
       a) httpd-std.conf should be tailored by install (from src or
@@ -502,27 +398,9 @@
                    (.default.conf rather than .conf.default so that win32
                     can recognize .conf files as text configuration files.)
 
-      b) tailored httpd-std.conf should be copied by install to
-         sysconfdir/examples
-         -0:   striker
-
       c) tailored httpd-std.conf should be installed to
          sysconfdir/examples or manualdir/exampleconf/
          +1:   slive, trawick, Ken, nd (prefer the latter), erikabele
-
-      d) tailored httpd-std.conf should be installed as httpd-std-<version>.conf.
-         +1:   striker
-
-      e) Installing a set of default config files when upgrading a server
-         doesn't make ANY sense at all.
-         +1:   ianh - medium/big sites don't use 'standard config' anyway, as it
-                      usually needs major customizations
-         -1:   Ken, wrowe, jwoolley, jim, nd, erikabele
-           wrowe - diff is wonderful when comparing old/new default configs,
-                   even for customized sites that ianh mentions
-           jim - it makes sense assuming that the default configs
-                 include the updated directives and inline comments
-                 that explain the changes and make the 'diff' more useful.
 
     *) If the parent process dies, should the remaining child processes
        "gracefully" self-terminate. Or maybe we should make it a runtime

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.de
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.de?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.de (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.de Sat Sep 24 04:22:21 2005
@@ -92,6 +92,7 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#setinputfilter">SetInputFilter</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#setoutputfilter">SetOutputFilter</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#timeout">TimeOut</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#traceenable">TraceEnable</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalname">UseCanonicalName</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
 </ul>
@@ -3171,6 +3172,39 @@
     weiter herabgesetzt, da gelegentlich noch Stellen im Code existieren
     können, wo der Zeitgeber nicht zurückgesetzt wird, wenn ein
     Paket verschickt wird.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="TraceEnable" id="TraceEnable">TraceEnable</a>-<a name="traceenable" id="traceenable">Direktive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Beschreibung:</a></th><td>Legt das Serververhalten bei <code>TRACE</code>-Anfragen
+fest</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>TraceEnable <var>[on|off|extended]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Voreinstellung:</a></th><td><code>TraceEnable on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Kontext:</a></th><td>Serverkonfiguration</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modul:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Kompatibilität:</a></th><td>Seit den Versionen 1.3.34 und 2.0.55</td></tr>
+</table>
+    <p>Diese Direktive überschreibt das Verhalten bei <code>TRACE</code>
+    sowohl für den Hauptserver als auch für
+    <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>. Die Voreinstellung <code>TraceEnable on</code>
+    erlaubt <code>TRACE</code>-Anfragen gemäß RFC 2616, welcher
+    das Mitschicken von Request-Bodies verbietet. <code>TraceEnable off</code>
+    veranlasst den Hauptserver und <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, dem
+    Client mit dem Fehler <code>405</code> (Methode nicht erlaubt)
+    antworten.</p>
+
+    <p>Mit Hilfe der nicht konformen Direktive <code>TraceEnable
+    extended</code> können Request-Bodies zugelassen werden. Das ist
+    allerdings ausschließlich für Test- und Diagnosezwecke gedacht.
+    Der Hauptserver (als Ursprungsserver) <span class="transnote">(<em>Anm.d.Ü.:</em> damit ist der
+    Normalbetrieb und nicht der Einsatz als Proxy-Server gemeint)</span>
+    limitiert den Request-Body auf 64K (plus 8K für die Chunk-Header,
+    wenn <code>Transfer-Encoding: chunked</code> verwendet wird) und
+    reflektiert den vollen Headersatz sowie alle Chunk-Header in seiner
+    Antwort. Im Betrieb als Proxyserver wird der Request-Body nicht auf
+    64K begrenzt.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.en
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.en?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.en (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.html.en Sat Sep 24 04:22:21 2005
@@ -92,6 +92,7 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#setinputfilter">SetInputFilter</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#setoutputfilter">SetOutputFilter</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#timeout">TimeOut</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#traceenable">TraceEnable</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#usecanonicalname">UseCanonicalName</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
 </ul>
@@ -3022,6 +3023,35 @@
     necessary in most situations. It is not set any lower by
     default because there may still be odd places in the code where
     the timer is not reset when a packet is sent. </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="TraceEnable" id="TraceEnable">TraceEnable</a> <a name="traceenable" id="traceenable">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines the behaviour on <code>TRACE</code>
+requests</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>TraceEnable <var>[on|off|extended]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>TraceEnable on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Core</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>core</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 1.3.34, 2.0.55 and later</td></tr>
+</table>
+    <p>This directive overrides the behavior of <code>TRACE</code> for both
+    the core server and <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>.  The default
+    <code>TraceEnable on</code> permits <code>TRACE</code> requests per
+    RFC 2616, which disallows any request body to accompany the request.
+    <code>TraceEnable off</code> causes the core server and
+    <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> to return a <code>405</code> (Method not
+    allowed) error to the client.</p>
+
+    <p>Finally, for testing and diagnostic purposes only, request
+    bodies may be allowed using the non-compliant <code>TraceEnable 
+    extended</code> directive.  The core (as an origin server) will
+    restrict the request body to 64k (plus 8k for chunk headers if
+    <code>Transfer-Encoding: chunked</code> is used).  The core will
+    reflect the full headers and all chunk headers with the response
+    body.  As a proxy server, the request body is not restricted to 64k.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml Sat Sep 24 04:22:21 2005
@@ -2980,6 +2980,34 @@
 </directivesynopsis>
 
 <directivesynopsis>
+<name>TraceEnable</name>
+<description>Determines the behaviour on <code>TRACE</code>
+requests</description>
+<syntax>TraceEnable <var>[on|off|extended]</var></syntax>
+<default>TraceEnable on</default>
+<contextlist><context>server config</context></contextlist>
+<compatibility>Available in Apache 1.3.34, 2.0.55 and later</compatibility>
+
+<usage>
+    <p>This directive overrides the behavior of <code>TRACE</code> for both
+    the core server and <module>mod_proxy</module>.  The default
+    <code>TraceEnable on</code> permits <code>TRACE</code> requests per
+    RFC 2616, which disallows any request body to accompany the request.
+    <code>TraceEnable off</code> causes the core server and
+    <module>mod_proxy</module> to return a <code>405</code> (Method not
+    allowed) error to the client.</p>
+
+    <p>Finally, for testing and diagnostic purposes only, request
+    bodies may be allowed using the non-compliant <code>TraceEnable 
+    extended</code> directive.  The core (as an origin server) will
+    restrict the request body to 64k (plus 8k for chunk headers if
+    <code>Transfer-Encoding: chunked</code> is used).  The core will
+    reflect the full headers and all chunk headers with the response
+    body.  As a proxy server, the request body is not restricted to 64k.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
 <name>UseCanonicalName</name>
 <description>Configures how the server determines its own name and
 port</description>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.de
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.de?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.de (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.de Sat Sep 24 04:22:21 2005
@@ -1,10 +1,11 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 279024 -->
+<!-- English Revision: 290733 -->
 
 <!--
- Copyright 2003-2004 The Apache Software Foundation
+ Copyright 2003-2005 The Apache Software Foundation or its licensors,
+ as applicable
 
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
@@ -3118,6 +3119,38 @@
     weiter herabgesetzt, da gelegentlich noch Stellen im Code existieren
     k&ouml;nnen, wo der Zeitgeber nicht zur&uuml;ckgesetzt wird, wenn ein
     Paket verschickt wird.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>TraceEnable</name>
+<description>Legt das Serververhalten bei <code>TRACE</code>-Anfragen
+fest</description>
+<syntax>TraceEnable <var>[on|off|extended]</var></syntax>
+<default>TraceEnable on</default>
+<contextlist><context>server config</context></contextlist>
+<compatibility>Seit den Versionen 1.3.34 und 2.0.55</compatibility>
+
+<usage>
+    <p>Diese Direktive &uuml;berschreibt das Verhalten bei <code>TRACE</code>
+    sowohl f&uuml;r den Hauptserver als auch f&uuml;r
+    <module>mod_proxy</module>. Die Voreinstellung <code>TraceEnable on</code>
+    erlaubt <code>TRACE</code>-Anfragen gem&auml;&szlig; RFC 2616, welcher
+    das Mitschicken von Request-Bodies verbietet. <code>TraceEnable off</code>
+    veranlasst den Hauptserver und <module>mod_proxy</module>, dem
+    Client mit dem Fehler <code>405</code> (Methode nicht erlaubt)
+    antworten.</p>
+
+    <p>Mit Hilfe der nicht konformen Direktive <code>TraceEnable
+    extended</code> k&ouml;nnen Request-Bodies zugelassen werden. Das ist
+    allerdings ausschlie&szlig;lich f&uuml;r Test- und Diagnosezwecke gedacht.
+    Der Hauptserver (als Ursprungsserver) <transnote>damit ist der
+    Normalbetrieb und nicht der Einsatz als Proxy-Server gemeint</transnote>
+    limitiert den Request-Body auf 64K (plus 8K f&uuml;r die Chunk-Header,
+    wenn <code>Transfer-Encoding: chunked</code> verwendet wird) und
+    reflektiert den vollen Headersatz sowie alle Chunk-Header in seiner
+    Antwort. Im Betrieb als Proxyserver wird der Request-Body nicht auf
+    64K begrenzt.</p>
 </usage>
 </directivesynopsis>
 

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.es
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.es?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.es (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.es Sat Sep 24 04:22:21 2005
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.es.xsl"?>
-<!-- English Revision: 151420:279024 (outdated) -->
+<!-- English Revision: 151420:290733 (outdated) -->
 
 <!-- 
  Copyright 2005 The Apache Software Foundation or it licensors,

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.ja
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.ja?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.ja [iso-2022-jp] (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/core.xml.ja [iso-2022-jp] Sat Sep 24 04:22:21 2005
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-2022-jp"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 106090:279024 (outdated) -->
+<!-- English Revision: 106090:290733 (outdated) -->
 
 <!--
  Copyright 2003-2004 The Apache Software Foundation

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.de
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.de?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.de (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.de Sat Sep 24 04:22:21 2005
@@ -383,6 +383,7 @@
 <li><a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
 <li><a href="mpm_netware.html#threadstacksize">ThreadStackSize</a></li>
 <li><a href="core.html#timeout">TimeOut</a></li>
+<li><a href="core.html#traceenable">TraceEnable</a></li>
 <li><a href="mod_log_config.html#transferlog">TransferLog</a></li>
 <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li>
 <li><a href="mod_env.html#unsetenv" id="U" name="U">UnsetEnv</a></li>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.en
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.en?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.en (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.en Sat Sep 24 04:22:21 2005
@@ -384,6 +384,7 @@
 <li><a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
 <li><a href="mpm_netware.html#threadstacksize">ThreadStackSize</a></li>
 <li><a href="core.html#timeout">TimeOut</a></li>
+<li><a href="core.html#traceenable">TraceEnable</a></li>
 <li><a href="mod_log_config.html#transferlog">TransferLog</a></li>
 <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li>
 <li><a href="mod_env.html#unsetenv" id="U" name="U">UnsetEnv</a></li>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ko.euc-kr
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ko.euc-kr?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ko.euc-kr [euc-kr] Sat Sep 24 04:22:21 2005
@@ -379,6 +379,7 @@
 <li><a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
 <li><a href="mpm_netware.html#threadstacksize">ThreadStackSize</a></li>
 <li><a href="core.html#timeout">TimeOut</a></li>
+<li><a href="core.html#traceenable">TraceEnable</a></li>
 <li><a href="mod_log_config.html#transferlog">TransferLog</a></li>
 <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li>
 <li><a href="mod_env.html#unsetenv" id="U" name="U">UnsetEnv</a></li>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ru.koi8-r
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ru.koi8-r?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ru.koi8-r [koi8-r] (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/directives.html.ru.koi8-r [koi8-r] Sat Sep 24 04:22:21 2005
@@ -385,6 +385,7 @@
 <li><a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li>
 <li><a href="mpm_netware.html#threadstacksize">ThreadStackSize</a></li>
 <li><a href="core.html#timeout">TimeOut</a></li>
+<li><a href="core.html#traceenable">TraceEnable</a></li>
 <li><a href="mod_log_config.html#transferlog">TransferLog</a></li>
 <li><a href="mod_mime.html#typesconfig">TypesConfig</a></li>
 <li><a href="mod_env.html#unsetenv" id="U" name="U">UnsetEnv</a></li>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/mod_dumpio.xml
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/mod_dumpio.xml?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/mod_dumpio.xml (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/mod_dumpio.xml Sat Sep 24 04:22:21 2005
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $LastChangedRevision: 125277 $ -->
+<!-- $LastChangedRevision$ -->
 
 <!--
  Copyright 2004-2005 The Apache Software Foundation or its licensors, as

Propchange: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/mod_dumpio.xml
------------------------------------------------------------------------------
    svn:keywords = LastChangedRevision

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.de
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.de?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.de (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.de Sat Sep 24 04:22:21 2005
@@ -699,6 +699,8 @@
 <tr><td><a href="mpm_netware.html#threadstacksize">ThreadStackSize <var>number</var></a></td><td> 65536 </td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Determine the stack size for each thread</td></tr>
 <tr class="odd"><td><a href="core.html#timeout">TimeOut <var>Sekunden</var></a></td><td> 300 </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Zeitspanne, die der Server auf verschiedene Ereignisse wartet,
 bevor er die Anfrage abbricht</td></tr>
+<tr class="odd"><td><a href="core.html#traceenable">TraceEnable <var>[on|off|extended]</var></a></td><td> on </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Legt das Serververhalten bei <code>TRACE</code>-Anfragen
+fest</td></tr>
 <tr><td><a href="mod_log_config.html#transferlog">TransferLog <var>file</var>|<var>pipe</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Specify location of a log file</td></tr>
 <tr class="odd"><td><a href="mod_mime.html#typesconfig">TypesConfig <var>file-path</var></a></td><td> conf/mime.types </td><td>s</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">The location of the <code>mime.types</code> file</td></tr>
 <tr><td><a href="mod_env.html#unsetenv" id="U" name="U">UnsetEnv <var>env-variable</var> [<var>env-variable</var>]
@@ -734,4 +736,4 @@
 </div><div id="footer">
 <p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 <p class="menu"><a href="../mod/">Module</a> | <a href="../mod/directives.html">Direktiven</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a></p></div>
-</body></html>
\ No newline at end of file
+</body></html>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.en
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.en?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.en (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.en Sat Sep 24 04:22:21 2005
@@ -680,6 +680,8 @@
 <tr><td><a href="mpm_netware.html#threadstacksize">ThreadStackSize <var>number</var></a></td><td> 65536 </td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Determine the stack size for each thread</td></tr>
 <tr class="odd"><td><a href="core.html#timeout">TimeOut <var>seconds</var></a></td><td> 300 </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Amount of time the server will wait for
 certain events before failing a request</td></tr>
+<tr class="odd"><td><a href="core.html#traceenable">TraceEnable <var>[on|off|extended]</var></a></td><td> on </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Determines the behaviour on <code>TRACE</code>
+requests</td></tr>
 <tr><td><a href="mod_log_config.html#transferlog">TransferLog <var>file</var>|<var>pipe</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Specify location of a log file</td></tr>
 <tr class="odd"><td><a href="mod_mime.html#typesconfig">TypesConfig <var>file-path</var></a></td><td> conf/mime.types </td><td>s</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">The location of the <code>mime.types</code> file</td></tr>
 <tr><td><a href="mod_env.html#unsetenv" id="U" name="U">UnsetEnv <var>env-variable</var> [<var>env-variable</var>]
@@ -715,4 +717,4 @@
 </div><div id="footer">
 <p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
-</body></html>
\ No newline at end of file
+</body></html>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ko.euc-kr
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ko.euc-kr?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ko.euc-kr [euc-kr] (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ko.euc-kr [euc-kr] Sat Sep 24 04:22:21 2005
@@ -631,6 +631,8 @@
 <tr><td><a href="mpm_netware.html#threadstacksize">ThreadStackSize <var>number</var></a></td><td> 65536 </td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Determine the stack size for each thread</td></tr>
 <tr class="odd"><td><a href="core.html#timeout">TimeOut <var>seconds</var></a></td><td> 300 </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Amount of time the server will wait for
 certain events before failing a request</td></tr>
+<tr class="odd"><td><a href="core.html#traceenable">TraceEnable <var>[on|off|extended]</var></a></td><td> on </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Determines the behaviour on <code>TRACE</code>
+requests</td></tr>
 <tr><td><a href="mod_log_config.html#transferlog">TransferLog <var>file</var>|<var>pipe</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">로그파일 위치를 설정한다</td></tr>
 <tr class="odd"><td><a href="mod_mime.html#typesconfig">TypesConfig <var>file-path</var></a></td><td> conf/mime.types </td><td>s</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">The location of the <code>mime.types</code> file</td></tr>
 <tr><td><a href="mod_env.html#unsetenv" id="U" name="U">UnsetEnv <var>env-variable</var> [<var>env-variable</var>]
@@ -666,4 +668,4 @@
 </div><div id="footer">
 <p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 <p class="menu"><a href="../mod/">모듈</a> | <a href="../mod/directives.html">지시어들</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">용어</a> | <a href="../sitemap.html">사이트맵</a></p></div>
-</body></html>
\ No newline at end of file
+</body></html>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ru.koi8-r
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ru.koi8-r?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ru.koi8-r [koi8-r] (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/mod/quickreference.html.ru.koi8-r [koi8-r] Sat Sep 24 04:22:21 2005
@@ -682,6 +682,8 @@
 <tr><td><a href="mpm_netware.html#threadstacksize">ThreadStackSize <var>number</var></a></td><td> 65536 </td><td>s</td><td>M</td></tr><tr><td class="descr" colspan="4">Determine the stack size for each thread</td></tr>
 <tr class="odd"><td><a href="core.html#timeout">TimeOut <var>seconds</var></a></td><td> 300 </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Amount of time the server will wait for
 certain events before failing a request</td></tr>
+<tr class="odd"><td><a href="core.html#traceenable">TraceEnable <var>[on|off|extended]</var></a></td><td> on </td><td>s</td><td>C</td></tr><tr class="odd"><td class="descr" colspan="4">Determines the behaviour on <code>TRACE</code>
+requests</td></tr>
 <tr><td><a href="mod_log_config.html#transferlog">TransferLog <var>file</var>|<var>pipe</var></a></td><td></td><td>sv</td><td>B</td></tr><tr><td class="descr" colspan="4">Specify location of a log file</td></tr>
 <tr class="odd"><td><a href="mod_mime.html#typesconfig">TypesConfig <var>file-path</var></a></td><td> conf/mime.types </td><td>s</td><td>B</td></tr><tr class="odd"><td class="descr" colspan="4">The location of the <code>mime.types</code> file</td></tr>
 <tr><td><a href="mod_env.html#unsetenv" id="U" name="U">UnsetEnv <var>env-variable</var> [<var>env-variable</var>]
@@ -717,4 +719,4 @@
 </div><div id="footer">
 <p class="apache">Copyright 1995-2005 The Apache Software Foundation or its licensors, as applicable.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 <p class="menu"><a href="../mod/">Модули</a> | <a href="../mod/directives.html">Директивы</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Глоссарий</a> | <a href="../sitemap.html">Карта сайта</a></p></div>
-</body></html>
\ No newline at end of file
+</body></html>

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/programs/htdbm.xml
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/programs/htdbm.xml?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/programs/htdbm.xml (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/programs/htdbm.xml Sat Sep 24 04:22:21 2005
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $LastChangedRevision: 151405 $ -->
+<!-- $LastChangedRevision$ -->
 
 <!--
  Copyright 2003-2005 The Apache Software Foundation or its licensors, as

Propchange: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/programs/htdbm.xml
------------------------------------------------------------------------------
    svn:keywords = LastChangedRevision

Propchange: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/index.xml
------------------------------------------------------------------------------
    svn:keywords = LastChangedRevision

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide.xml
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide.xml?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide.xml (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide.xml Sat Sep 24 04:22:21 2005
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $LastChangedRevision: 123578 $ -->
+<!-- $LastChangedRevision$ -->
 
 <!--
  Copyright 2002-2005 The Apache Software Foundation or its licensors, as

Propchange: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide.xml
------------------------------------------------------------------------------
    svn:keywords = LastChangedRevision

Modified: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide_advanced.xml
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide_advanced.xml?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide_advanced.xml (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide_advanced.xml Sat Sep 24 04:22:21 2005
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $LastChangedRevision: 123578 $ -->
+<!-- $LastChangedRevision$ -->
 
 <!--
  Copyright 2002-2005 The Apache Software Foundation or its licensors, as

Propchange: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_guide_advanced.xml
------------------------------------------------------------------------------
    svn:keywords = LastChangedRevision

Propchange: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_intro.xml
------------------------------------------------------------------------------
    svn:keywords = LastChangedRevision

Propchange: httpd/httpd/branches/mod_version_for_2.0.x/docs/manual/rewrite/rewrite_tech.xml
------------------------------------------------------------------------------
    svn:keywords = LastChangedRevision

Modified: httpd/httpd/branches/mod_version_for_2.0.x/include/ap_mmn.h
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/include/ap_mmn.h?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/include/ap_mmn.h (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/include/ap_mmn.h Sat Sep 24 04:22:21 2005
@@ -83,8 +83,9 @@
  *                         ap_finalize_sub_req_protocol on Win32 and NetWare
  * 20020903.9 (2.0.51-dev) create pcommands and initialize arrays before
  *                         calling ap_setup_prelinked_modules
- * 20020903.10 (2.0.55-dev) added ap_get_server_revision / ap_version_t
- *                          add ap_log_cerror()
+ * 20020903.10 (2.0.55-dev) add ap_log_cerror()
+ * 20020903.11 (2.0.55-dev) added trace_enable to core_server_config
+ *                          added ap_get_server_revision / ap_version_t
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */
@@ -92,7 +93,7 @@
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20020903
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 10                     /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 11                    /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a

Modified: httpd/httpd/branches/mod_version_for_2.0.x/include/http_core.h
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/include/http_core.h?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/include/http_core.h (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/include/http_core.h Sat Sep 24 04:22:21 2005
@@ -549,6 +549,14 @@
     /* recursion backstopper */
     int redirect_limit; /* maximum number of internal redirects */
     int subreq_limit;   /* maximum nesting level of subrequests */
+
+    /* TRACE control */
+#define AP_TRACE_UNSET    -1
+#define AP_TRACE_DISABLE   0
+#define AP_TRACE_ENABLE    1
+#define AP_TRACE_EXTENDED  2
+    int trace_enable;
+
 } core_server_config;
 
 /* for AddOutputFiltersByType in core.c */

Modified: httpd/httpd/branches/mod_version_for_2.0.x/modules/arch/netware/mod_netware.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/modules/arch/netware/mod_netware.c?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/modules/arch/netware/mod_netware.c (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/modules/arch/netware/mod_netware.c Sat Sep 24 04:22:21 2005
@@ -100,7 +100,6 @@
     char *ext = NULL;
     char *cmd_only, *ptr;
     const char *new_cmd;
-    const char *detached = NULL;
     netware_dir_config *d;
     apr_file_t *fh;
     const char *args = "";
@@ -143,6 +142,7 @@
 
     /* check if we have a registered command for the extension*/
     new_cmd = apr_table_get(d->file_type_handlers, ext);
+    e_info->detached = AP_PROC_DETACHED;
     if (new_cmd == NULL) {
         ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
                   "Could not find a command associated with the %s extension", ext);
@@ -154,18 +154,12 @@
         *cmd = apr_pstrcat (p, new_cmd, " ", cmd_only, NULL);
 
         /* Run in its own address space if specified */
-        detached = apr_table_get(d->file_handler_mode, ext);
-        if (detached) {
-            e_info->cmd_type = APR_PROGRAM_ENV;
-        }
-        else {
-            e_info->cmd_type = APR_PROGRAM;
-        }
+        if(apr_table_get(d->file_handler_mode, ext))
+            e_info->detached |= AP_PROC_NEWADDRSPACE;
     }
 
     /* Tokenize the full command string into its arguments */
     apr_tokenize_to_argv(*cmd, (char***)argv, p);
-    e_info->detached = 1;
 
     /* The first argument should be the executible */
     *cmd = ap_server_root_relative(p, *argv[0]);

Modified: httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap.c?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap.c (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap.c Sat Sep 24 04:22:21 2005
@@ -769,6 +769,7 @@
                               const char ***retvals)
 {
     const char **vals = NULL;
+    int numvals = 0;
     int result = 0;
     LDAPMessage *res, *entry;
     char *dn;
@@ -932,6 +933,7 @@
         int i = 0;
         while (attrs[k++]);
         vals = apr_pcalloc(r->pool, sizeof(char *) * (k+1));
+        numvals = k;
         while (attrs[i]) {
             char **values;
             int j = 0;
@@ -959,6 +961,7 @@
         the_search_node.bindpw = bindpw;
         the_search_node.lastbind = apr_time_now();
         the_search_node.vals = vals;
+        the_search_node.numvals = numvals;
 
         /* Search again to make sure that another thread didn't ready insert this node
            into the cache before we got here. If it does exist then update the lastbind */
@@ -1001,6 +1004,7 @@
                               const char ***retvals)
 {
     const char **vals = NULL;
+    int numvals = 0;
     int result = 0;
     LDAPMessage *res, *entry;
     char *dn;
@@ -1115,6 +1119,7 @@
         int i = 0;
         while (attrs[k++]);
         vals = apr_pcalloc(r->pool, sizeof(char *) * (k+1));
+        numvals = k;
         while (attrs[i]) {
             char **values;
             int j = 0;
@@ -1142,6 +1147,7 @@
         the_search_node.bindpw = NULL;
         the_search_node.lastbind = apr_time_now();
         the_search_node.vals = vals;
+        the_search_node.numvals = numvals;
 
         /* Search again to make sure that another thread didn't ready insert this node
            into the cache before we got here. If it does exist then update the lastbind */

Modified: httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.c?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.c (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.c Sat Sep 24 04:22:21 2005
@@ -158,18 +158,22 @@
 
         /* copy vals */
         if (node->vals) {
-            int k = 0;
+            int k = node->numvals;
             int i = 0;
-            while (node->vals[k++]);
             if (!(newnode->vals = util_ald_alloc(cache, sizeof(char *) * (k+1)))) {
                 util_ldap_search_node_free(cache, newnode);
                 return NULL;
             }
-            while (node->vals[i]) {
-                if (!(newnode->vals[i] = util_ald_strdup(cache, node->vals[i]))) {
-                    util_ldap_search_node_free(cache, newnode);
-                    return NULL;
+            newnode->numvals = node->numvals;
+            for (;k;k--) {
+                if (node->vals[i]) {
+                    if (!(newnode->vals[i] = util_ald_strdup(cache, node->vals[i]))) {
+                        util_ldap_search_node_free(cache, newnode);
+                        return NULL;
+                    }
                 }
+                else
+                    newnode->vals[i] = NULL;
                 i++;
             }
         }
@@ -199,9 +203,13 @@
 {
     int i = 0;
     util_search_node_t *node = (util_search_node_t *)n;
+    int k = node->numvals;
+
     if (node->vals) {
-        while (node->vals[i]) {
-            util_ald_free(cache, node->vals[i++]);
+        for (;k;k--,i++) {
+            if (node->vals[i]) {
+                util_ald_free(cache, node->vals[i]);
+            }
         }
         util_ald_free(cache, node->vals);
     }

Modified: httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.h
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.h?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.h (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/modules/experimental/util_ldap_cache.h Sat Sep 24 04:22:21 2005
@@ -110,6 +110,7 @@
 					   NULL if the bind failed */
     apr_time_t lastbind;		/* Time of last successful bind */
     const char **vals;			/* Values of queried attributes */
+    int        numvals;			/* Number of queried attributes */
 } util_search_node_t;
 
 /*

Modified: httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.c?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.c (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.c Sat Sep 24 04:22:21 2005
@@ -436,7 +436,9 @@
                                         e_info->cmd_type)) != APR_SUCCESS) ||
 
         ((rc = apr_procattr_detach_set(procattr,
-                                        e_info->detached)) != APR_SUCCESS) ||
+                                        e_info->detached & AP_PROC_DETACHED)) != APR_SUCCESS) ||
+        ((rc = apr_procattr_addrspace_set(procattr,
+                                        (e_info->detached & AP_PROC_NEWADDRSPACE) ? 1 : 0)) != APR_SUCCESS) ||
         ((rc = apr_procattr_child_errfn_set(procattr, cgi_child_errfn)) != APR_SUCCESS)) {
         /* Something bad happened, tell the world. */
         ap_log_rerror(APLOG_MARK, APLOG_ERR, rc, r,

Modified: httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.h
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.h?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.h (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/modules/generators/mod_cgi.h Sat Sep 24 04:22:21 2005
@@ -19,6 +19,9 @@
 
 #include "mod_include.h"
 
+#define AP_PROC_DETACHED       1
+#define AP_PROC_NEWADDRSPACE   2
+
 typedef enum {RUN_AS_SSI, RUN_AS_CGI} prog_types;
 
 typedef struct {
@@ -27,7 +30,8 @@
     apr_int32_t          err_pipe;
     int                  process_cgi;
     apr_cmdtype_e        cmd_type;
-    apr_int32_t          detached;
+    apr_int32_t          detached; /* used as a bitfield for detached_ & addrspace_set, */
+                                   /* when initializing apr_proc_attr structure */
     prog_types           prog_type;
     apr_bucket_brigade **bb;
     include_ctx_t       *ctx;

Modified: httpd/httpd/branches/mod_version_for_2.0.x/modules/http/http_protocol.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/modules/http/http_protocol.c?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/modules/http/http_protocol.c (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/modules/http/http_protocol.c Sat Sep 24 04:22:21 2005
@@ -1321,6 +1321,9 @@
     apr_int64_t mask;
     apr_array_header_t *allow = apr_array_make(r->pool, 10, sizeof(char *));
     apr_hash_index_t *hi = apr_hash_first(r->pool, methods_registry);
+    /* For TRACE below */
+    core_server_config *conf =
+        ap_get_module_config(r->server->module_config, &core_module);
 
     mask = r->allowed_methods->method_mask;
 
@@ -1338,8 +1341,9 @@
         }
     }
 
-    /* TRACE is always allowed */
-    *(const char **)apr_array_push(allow) = "TRACE";
+    /* TRACE is tested on a per-server basis */
+    if (conf->trace_enable != AP_TRACE_DISABLE)
+        *(const char **)apr_array_push(allow) = "TRACE";
 
     list = apr_array_pstrcat(r->pool, allow, ',');
 
@@ -1364,9 +1368,16 @@
 
 AP_DECLARE_NONSTD(int) ap_send_http_trace(request_rec *r)
 {
+    core_server_config *conf;
     int rv;
-    apr_bucket_brigade *b;
+    apr_bucket_brigade *bb;
     header_struct h;
+    apr_bucket *b;
+    int body;
+    char *bodyread = NULL, *bodyoff;
+    apr_size_t bodylen = 0;
+    apr_size_t bodybuf;
+    long res;
 
     if (r->method_number != M_TRACE) {
         return DECLINED;
@@ -1376,23 +1387,87 @@
     while (r->prev) {
         r = r->prev;
     }
+    conf = (core_server_config *)ap_get_module_config(r->server->module_config,
+                                                      &core_module);
 
-    if ((rv = ap_setup_client_block(r, REQUEST_NO_BODY))) {
+    if (conf->trace_enable == AP_TRACE_DISABLE) {
+	apr_table_setn(r->notes, "error-notes",
+                      "TRACE denied by server configuration");
+        return HTTP_FORBIDDEN;
+    }
+
+    if (conf->trace_enable == AP_TRACE_EXTENDED)
+        /* XX should be = REQUEST_CHUNKED_PASS */
+        body = REQUEST_CHUNKED_DECHUNK;
+    else
+        body = REQUEST_NO_BODY;
+
+    if ((rv = ap_setup_client_block(r, body))) {
+        if (rv == HTTP_REQUEST_ENTITY_TOO_LARGE)
+    	    apr_table_setn(r->notes, "error-notes",
+                          "TRACE with a request body is not allowed");
         return rv;
     }
 
+    if (ap_should_client_block(r)) {
+
+        if (r->remaining > 0) {
+            if (r->remaining > 65536) {
+	        apr_table_setn(r->notes, "error-notes",
+                       "Extended TRACE request bodies cannot exceed 64k");
+                return HTTP_REQUEST_ENTITY_TOO_LARGE;
+            }
+            /* always 32 extra bytes to catch chunk header exceptions */
+            bodybuf = (apr_size_t)r->remaining + 32;
+        }
+        else {
+            /* Add an extra 8192 for chunk headers */
+            bodybuf = 73730;
+        }
+
+        bodyoff = bodyread = apr_palloc(r->pool, bodybuf);
+
+        /* only while we have enough for a chunked header */
+        while ((!bodylen || bodybuf >= 32) &&
+               (res = ap_get_client_block(r, bodyoff, bodybuf)) > 0) {
+            bodylen += res;
+            bodybuf -= res;
+            bodyoff += res;
+        }
+        if (res > 0 && bodybuf < 32) {
+            /* discard_rest_of_request_body into our buffer */
+            while (ap_get_client_block(r, bodyread, bodylen) > 0)
+                ;
+	    apr_table_setn(r->notes, "error-notes",
+                   "Extended TRACE request bodies cannot exceed 64k");
+            return HTTP_REQUEST_ENTITY_TOO_LARGE;
+        }
+
+        if (res < 0) {
+            return HTTP_BAD_REQUEST;
+        }
+    }
+
     ap_set_content_type(r, "message/http");
 
     /* Now we recreate the request, and echo it back */
 
-    b = apr_brigade_create(r->pool, r->connection->bucket_alloc);
-    apr_brigade_putstrs(b, NULL, NULL, r->the_request, CRLF, NULL);
+    bb = apr_brigade_create(r->pool, r->connection->bucket_alloc);
+    apr_brigade_putstrs(bb, NULL, NULL, r->the_request, CRLF, NULL);
     h.pool = r->pool;
-    h.bb = b;
+    h.bb = bb;
     apr_table_do((int (*) (void *, const char *, const char *))
                  form_header_field, (void *) &h, r->headers_in, NULL);
-    apr_brigade_puts(b, NULL, NULL, CRLF);
-    ap_pass_brigade(r->output_filters, b);
+    apr_brigade_puts(bb, NULL, NULL, CRLF);
+
+    /* If configured to accept a body, echo the body */
+    if (bodylen) {
+        b = apr_bucket_pool_create(bodyread, bodylen, 
+                                   r->pool, bb->bucket_alloc);
+        APR_BRIGADE_INSERT_TAIL(bb, b);
+    }
+    
+    ap_pass_brigade(r->output_filters,  bb);
 
     return DONE;
 }

Modified: httpd/httpd/branches/mod_version_for_2.0.x/modules/proxy/mod_proxy.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/mod_version_for_2.0.x/modules/proxy/mod_proxy.c?rev=291280&r1=291279&r2=291280&view=diff
==============================================================================
--- httpd/httpd/branches/mod_version_for_2.0.x/modules/proxy/mod_proxy.c (original)
+++ httpd/httpd/branches/mod_version_for_2.0.x/modules/proxy/mod_proxy.c Sat Sep 24 04:22:21 2005
@@ -350,6 +350,42 @@
     apr_table_set(r->headers_in, "Max-Forwards", 
                   apr_psprintf(r->pool, "%ld", (maxfwd > 0) ? maxfwd : 0));
 
+    if (r->method_number == M_TRACE) {
+        core_server_config *coreconf = (core_server_config *)
+                            ap_get_module_config(sconf, &core_module);
+
+        if (coreconf->trace_enable == AP_TRACE_DISABLE) 
+        {
+            /* Allow "error-notes" string to be printed by ap_send_error_response()
+             * Note; this goes nowhere, canned error response need an overhaul.
+             */
+            apr_table_setn(r->notes, "error-notes",
+                           "TRACE forbidden by server configuration");
+            apr_table_setn(r->notes, "verbose-error-to", "*");
+            ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+                          "proxy: TRACE forbidden by server configuration");
+            return HTTP_FORBIDDEN;
+        }
+
+        /* Can't test ap_should_client_block, we aren't ready to send
+         * the client a 100 Continue response till the connection has
+         * been established
+         */
+        if (coreconf->trace_enable != AP_TRACE_EXTENDED 
+            && (r->read_length || r->read_chunked || r->remaining))
+        {
+            /* Allow "error-notes" string to be printed by ap_send_error_response()
+             * Note; this goes nowhere, canned error response need an overhaul.
+             */
+            apr_table_setn(r->notes, "error-notes",
+                           "TRACE with request body is not allowed");
+            apr_table_setn(r->notes, "verbose-error-to", "*");
+            ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+                          "proxy: TRACE with request body is not allowed");
+            return HTTP_REQUEST_ENTITY_TOO_LARGE;
+        }
+    }
+
     url = r->filename + 6;
     p = strchr(url, ':');
     if (p == NULL)