]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
mod_version_for_2.0.x branch:
authorAndré Malo <nd@apache.org>
Mon, 19 Sep 2005 18:05:49 +0000 (18:05 +0000)
committerAndré Malo <nd@apache.org>
Mon, 19 Sep 2005 18:05:49 +0000 (18:05 +0000)
* Merge 239611 to 290201 from branches/2.0.x

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/mod_version_for_2.0.x@290223 13f79535-47bb-0310-9956-ffa450edef68

36 files changed:
CHANGES
STATUS
configure.in
docs/manual/env.html.en
docs/manual/env.html.es
docs/manual/env.html.fr
docs/manual/env.xml
docs/manual/env.xml.es
docs/manual/env.xml.fr
docs/manual/env.xml.ja
docs/manual/env.xml.ko
docs/manual/env.xml.meta
docs/manual/install.html.de
docs/manual/install.xml.de
docs/manual/install.xml.meta
docs/manual/mod/core.html.de
docs/manual/mod/core.html.en
docs/manual/mod/core.xml
docs/manual/mod/core.xml.de
docs/manual/mod/core.xml.es
docs/manual/mod/core.xml.ja
docs/manual/stopping.html.de
docs/manual/stopping.xml.de
docs/manual/stopping.xml.meta
include/ap_mmn.h
include/http_core.h
include/http_log.h
modules/aaa/mod_auth_digest.c
modules/experimental/mod_auth_ldap.c
modules/filters/mod_include.c
modules/generators/mod_cgid.c
modules/http/http_protocol.c
modules/proxy/proxy_ftp.c
server/core.c
server/log.c
server/protocol.c

diff --git a/CHANGES b/CHANGES
index 7a6977e56234fe8590d871f441837503d57d3f2e..22d2b8ddf12660a4d50e4cd8886284c07d5d6766 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -8,7 +8,33 @@ Changes with Apache 2.0.55
      accompanying ap_version_t structure (minor MMN bump).
      [André Malo]
 
-  *) Fix cases where the byterange filter would buffer responses
+  *) Add ap_log_cerror() for logging messages associated with particular
+     client connections.  [Jeff Trawick]
+
+  *) Correct mod_cgid's argv[0] so that the full path can be delved by the
+     invoked cgi application, to conform to the behavior of mod_cgi.
+     [Pradeep Kumar S <pradeep.smani gmail.com>]
+
+  *) mod_include: Fix possible environment variable corruption when 
+     using nested includes.  PR 12655.  [Joe Orton]
+
+  *) Support the suppress-error-charset setting, as with Apache 1.3.x.
+     PR 31274.  [Jeff Trawick]
+
+  *) EBCDIC: Handle chunked input from client or, with proxy, origin
+     server.  [Jeff Trawick]
+
+  *) Fix bad globbing comparison which could result in getting
+     a directory listing when a file was requested. PR 34512.
+     [sean <infamous41md hotmail.com>]
+
+  *) Fix core dump if mod_auth_ldap's mod_auth_ldap_auth_checker()
+     was called even if mod_auth_ldap_check_user_id() was not
+     (or if it didn't succeed) for non-authoritative cases.
+     [Jim Jagielski]
+
+  *) SECURITY: CAN-2005-2728 (cve.mitre.org)
+     Fix cases where the byterange filter would buffer responses
      into memory.  PR 29962.  [Joe Orton]
 
   *) mod_proxy: Fix over-eager handling of '%' for reverse proxies.
@@ -25,7 +51,7 @@ Changes with Apache 2.0.55
 
   *) mod_ssl: Fix build with OpenSSL 0.9.8.  PR 35757.  [William Rowe]
 
-  *) SECURITY: CAN-2005-2088
+  *) SECURITY: CAN-2005-2088 (cve.mitre.org)
      core: If a request contains both Transfer-Encoding and Content-Length
      headers, remove the Content-Length, mitigating some HTTP Request 
      Splitting/Spoofing attacks.  [Paul Querna, Joe Orton]
@@ -213,7 +239,8 @@ Changes with Apache 2.0.53
      is causing a potential problem with the LDAP shared memory cache.
      PR 31431 [Graham Leggett]
 
-  *) mod_disk_cache: Do not store hop-by-hop headers.  [Justin Erenkrantz]
+  *) SECURITY: CAN-2004-1834 (cve.mitre.org)
+     mod_disk_cache: Do not store hop-by-hop headers.  [Justin Erenkrantz]
 
   *) Fix the re-linking issue when purging elements from the LDAP cache
      PR 24801.  [Jess Holle <jessh ptc.com>]
@@ -1239,7 +1266,8 @@ Changes with Apache 2.0.46
      names faulted the running OS2 worker process.  The fix is
      actually in APR 0.9.4.  [Brian Havard]
 
-  *) Forward port: Escape special characters (especially control
+  *) SECURITY: CAN-2003-0083 (cve.mitre.org)
+     Forward port: Escape special characters (especially control
      characters) in mod_log_config to make a clear distinction between
      client-supplied strings (with special characters) and server-side
      strings. This was already introduced in version 1.3.25.
diff --git a/STATUS b/STATUS
index 38e4abcdc9b4236ea932f44834ee4407219579b0..9ea9aa75f680ae1b6ded119fe6ba2efc177dec65 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -110,7 +110,7 @@ RELEASE SHOWSTOPPERS:
       httpd/branches/2.0.x/... preserving the detail of all of the individually
       backported changes.
 
-       +1: wrowe, jim
+       +1: wrowe, jim, minfrin
        -1:
 
       For a complete history of individual unit changes, see r230703 - r230744 in
@@ -129,17 +129,7 @@ RELEASE SHOWSTOPPERS:
 
 
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
-  [ please append new backports at the end of this list not the top. ]
-
-    *) several changes to improve logging of connection-oriented errors, including
-       ap_log_cerror() API (needs minor bump in addition to changes below)
-         http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/core.c?r1=1.289&r2=1.291
-         http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/log.c?r1=1.150&r2=1.151
-         http://cvs.apache.org/viewcvs.cgi/httpd-2.0/include/http_log.h?r1=1.46&r2=1.48
-       +1: trawick, stoddard, wrowe 
-       [wrowe notes that his previous objection is moot, based on security fixes
-        applied between .44 and .54 - but -please- doxygen the version of Apache
-        required in the API header note, for users who adopt this alternative.]
+  [ 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
@@ -172,60 +162,54 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
           nd: I'm going to reverse the default
           jerenkrantz, striker: I'm confused as to the status of this backport.
 
-    * support/check_forensic: Fix tempfile usage
-      svn rev 125495, 126224
-      jerenkrantz says: r126224 fixes brokenness with r125495 on Solaris.
-      +1: thommay, jerenkrantz, trawick
-      trawick: "which" isn't portable; I've suggested a work-around on dev@
-        (not standing in way of backport)
-      jorton said: NetBSD's which isn't sufficient either.
-      jerenkrantz: Since it's not in the critical path (and depends on
-                   mod_log_forensic), I think it's still worth it to backport
-                   it as-is.  For the one or two platforms that don't like 
-                   which, they can write their own version of the script.
-
-    * Win32: Move call to mpm_service_install to the rewrite_args hook
-      from the post_config hook.
-      http://svn.apache.org/viewcvs?view=rev&rev=154319
-      +1: stoddard, striker, wrowe (as corrected in subsequent patches)
-
-    * mod_version: New Module, Backport from trunk. Requires Minor MMN Bump.
-      http://svn.apache.org/repos/asf/httpd/httpd/branches/mod_version_for_2.0.x
-      +1: pquerna, nd
-      Votes from before the integration branch:
-          +1: jerenkrantz, wrowe (trivial, would even be cool in 1.3)
-
-     *) proxy FTP: Fix confusion about globbing characters which could lead
-        to getting a directory listing when a file was requested.  PR 34512.
-        2.1 patch was http://svn.apache.org/viewcvs?rev=179704&view=rev
-        2.0 version: http://people.apache.org/~trawick/179704-20.txt
-        +1: trawick, jorton, wrowe
-
-    *) Prevent bad dereferencing of non-existent req struct in
-       mod_auth_ldap's mod_auth_ldap_auth_checker() if
-       mod_auth_ldap_check_user_id() was never (fully) called.
-       Similar behavior to that in 2.1/2.2.
-         http://people.apache.org/~jim/mod_auth_ldap-2.0.patch
-       +1: jim, minfrin, bnicholes
-
-     *) Add httxt2dbm for creating RewriteMap DBM Files.
-        http://svn.apache.org/viewcvs.cgi?rev=209539&view=rev
-        +1: pquerna, jorton, trawick
+    *) support/check_forensic: Fix tempfile usage
+       svn rev 125495, 126224
+       jerenkrantz says: r126224 fixes brokenness with r125495 on Solaris.
+       +1: thommay, jerenkrantz, trawick
+       trawick: "which" isn't portable; I've suggested a work-around on dev@
+         (not standing in way of backport)
+       jorton said: NetBSD's which isn't sufficient either.
+       jerenkrantz: Since it's not in the critical path (and depends on
+                    mod_log_forensic), I think it's still worth it to backport
+                    it as-is.  For the one or two platforms that don't like 
+                    which, they can write their own version of the script.
+       (jorton agrees)
+
+    *) Win32: Move call to mpm_service_install to the rewrite_args hook
+       from the post_config hook.
+         http://svn.apache.org/viewcvs?view=rev&rev=154319
+       +1: stoddard, striker, wrowe (as corrected in subsequent patches)
+
+    *) Add httxt2dbm for creating RewriteMap DBM Files.
+       http://svn.apache.org/viewcvs.cgi?rev=209539&view=rev
+       +1: pquerna, jorton, trawick
 
-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! ]
+    *) Remove the base href tag from mod_proxy_ftp, as it breaks relative
+       links for clients not using an Authorization header.
+         modules/proxy/mod_proxy_ftp.c: r231044
+       +1: minfrin, jim, nd
+
+    *) mod_version: New Module, Backport from trunk. Requires Minor MMN Bump.
+       http://svn.apache.org/repos/asf/httpd/httpd/branches/mod_version_for_2.0.x
+       +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
+       +1: jorton, nd, wrowe
 
-    *) Remove the base href tag from mod_proxy_ftp, as it breaks relative
-       links for clients not using an Authorization header.
-         modules/proxy/mod_proxy_ftp.c: r231044
-       +1: minfrin, jim, nd
+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
+    proposals to the end of this list. ]
+
+    *) Fix CAN-2005-2700, mod_ssl SSLVerifyClient bug
+         http://svn.apache.org/viewcvs?rev=264800&view=rev
+       test case: perl-framework/t/security/CAN-2005-2700.t
+       +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.
@@ -233,7 +217,11 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
        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
+       +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
@@ -287,50 +275,26 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
         rediffed for 2.0.x as:
         http://issues.apache.org/bugzilla/attachment.cgi?id=14804
         PR: 34452
-        +1: jorton
-
-     *) EBCDIC: Handle chunked input from client or, with proxy, origin
-        server.
-        http://svn.apache.org/viewcvs?rev=178262&view=rev
-        (With 2.0.x it is the same code in the same function, but in 
-        a different source file.)
-        +1: trawick, wrowe, nd
-
-     *) Support the suppress-error-charset setting, as with Apache 1.3.x.
-        PR 31274. (current docs say it works with Apache from 2.0.40 ;) )
-        http://svn.apache.org/viewcvs?rev=170354&view=rev
-        +1: trawick, jorton, nd
-
-     *) mod_mime_magic: Handle CRLF-format magic files so that it works with
-        the default installation on Windows. 
+        +1: jorton, trawick
+
+     *) mod_mime_magic: Handle CRLF-format^H^H^H^H^H^H^H magic files 
+        with any trailing whitespace so that it works with the
+        default installation on Windows.
         http://svn.apache.org/viewcvs?rev=179622&view=rev
+        http://svn.apache.org/viewcvs?rev=280114&view=rev
         +1: trawick, wrowe
-        wrowe asks: is it possible to simply strip trailing whitespace instead
-                    of special handling for the end of line characters?  
-                    Seems more portable.
-        trawick says: makes sense; searching for bandwidth
+         backported 280114 to 2.2.x branch already
 
      *) mod_cache: Fix handling of 'Vary: *". PR 16125.
         Trunk: r180341
         2.0.x Patch: http://issues.apache.org/bugzilla/attachment.cgi?id=15297
-        +1: pquerna
+        +1: pquerna, jerenkrantz, colm
+        jerenkrantz notes: I do prefer the version from r190033 (own if check).
 
      *) mod_ssl: Fix buffering in SSL output filter.
         http://svn.apache.org/viewcvs?rev=189971&view=rev
         PR: 35279
-        +1: jorton
-
-     *) mod_include: Fix possible variable corruption with nested
-        includes.
-        http://svn.apache.org/viewcvs?rev=179763&view=rev
-        2.0.x patch: http://people.apache.org/~jorton/ap_pr12655.patch
-        test case in perl-framework/t/modules/include.t
-        PR: 12655
-        +1: jorton, nd
-
-     *) mod_auth_digest: Fix hostinfo validation for CONNECT requests.
-        http://svn.apache.org/viewcvs.cgi?rev=193127&view=rev
-        +1: jorton, nd
+        +1: jorton, jerenkrantz
 
      *) Reverse Proxy fixes: <Location> bug and Cookie support
         Patch is at
@@ -338,6 +302,39 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
         and is in production with Clients.
         +1: niq, nd
           niq: I'm seeing *a lot* of demand for this.
+          jerenkrantz: Didn't a variant of this get committed to trunk?
+                       If so, what revision?  And, is there a clean patch for
+                       2.0?  (The patch in that message isn't clean.)
+
+    *) Block mod_cgid usage on Solaris 10 due to OS bugs.  PR 34264.
+       http://svn.apache.org/viewcvs?view=rev&rev=264866
+       +1: jerenkrantz, colm
+
+    *) mod_cgid: Fix PR 36410. Invoke the set_suexec_identity hook from
+       the non-cgid side of the handler, where the full per-server/dir/etc
+       configuration is available instead of using two mod_suexec and
+       mod_userdir specific hacks. See mod_vhost_ldap for an example
+       third-party get_suexec_identity implementation.
+         http://people.apache.org/~colm/2.0.x-suexec-cgid.patch
+       +1: colm
+  
+    *) Add ReceiveBufferSize directive to control the TCP receive buffer. 
+       code: http://svn.apache.org/viewcvs?view=rev&rev=157583
+             http://svn.apache.org/viewcvs?rev=280401&view=rev
+       docs: http://svn.apache.org/viewcvs?rev=280384&view=rev
+       +1: stas
+       -0: colm
+           colm: It's a useful feature, but TCP window size selection 
+                 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:
 
@@ -376,125 +373,125 @@ PATCHES TO BACKPORT THAT ARE ON HOLD OR NOT GOING ANYWHERE SOON:
               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
-      +1: brianp, ianh, jjclar
-      trawick: Doesn't this make Apache 2.0.next slower except
-               when the right atomic operations are available/
-               implemented?  (Due to under-the-covers mutex
-               operations when the dummy atomics are used?)
-      pquerna: Has anyone tested the performance differences 
-               for different platforms? At this point I would 
-               favour waiting for 2.2.
-      -0: stoddard (at least until the performance implications are clarified)
-
-    * Allow mod_dav to do weak entity comparison functions.
-      modules/dav/main/util.c: r1.45
-      [ This one is under review.  Don't merge.  ]
-      +1:
-
-    * mod_negotiation: parse quality values independent from
-      the current locale and level values as integers. PR 17564.
-      (essentially: get a rid of atof()) (2.0 + 1.3)
-      modules/mappers/mod_negotiation.c: r1.114
-      +1: nd
+    *) 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
+       +1: brianp, ianh, jjclar
+       trawick: Doesn't this make Apache 2.0.next slower except
+                when the right atomic operations are available/
+                implemented?  (Due to under-the-covers mutex
+                operations when the dummy atomics are used?)
+       pquerna: Has anyone tested the performance differences 
+                for different platforms? At this point I would 
+                favour waiting for 2.2.
+       -0: stoddard (at least until the performance implications are clarified)
+
+    *) Allow mod_dav to do weak entity comparison functions.
+       modules/dav/main/util.c: r1.45
+       [ This one is under review.  Don't merge.  ]
+       +1:
+
+    *) mod_negotiation: parse quality values independent from
+       the current locale and level values as integers. PR 17564.
+       (essentially: get a rid of atof()) (2.0 + 1.3)
+       modules/mappers/mod_negotiation.c: r1.114
+       +1: nd
          We need to decide what happens with unparsable qvalues. RFC 2616
          states that q defaults to 1. (see 14.1 - 14.4). So should wrong
          qvalues be returned as 1.0 or 0.0 (as atof() did)?
          1.0: nd
          0.0: jim (a default != an "errored" value)
 
-    * Keep the same SSLMutex for the lifetime of the parent process
-      (instead of having children using different mutexes and failing
-      to lock the session cache across restarts.)
-      New patch forthcoming - JimJag's changes make the merge ugly.
-      +1: wrowe
-      +1 (concept): jim (final vote when the patch is available)
-
-    * Fix the SSLMutex config parser so that all 'mechanisms' can take
-      a filename, even if ignored, and they are rooted to the full path
-      to the server (except for posixsem locks).  This allows a very
-      cross-platform default:logs/ssl_mutex to be used everywhere.  Also
-      eliminates the '.pid' suffix so that the name given is the name.
-      Allows Win32 and other non-unicies to use named locks.
-      New patch forthcoming - JimJag's changes make the merge ugly.
-      +1: wrowe
-      +1 (concept): jim (final vote when the patch is available)
-
-    * mod_ssl: Drop SSL_EXPERIMENTAL_ENGINE test in favor of testing for the
-      ENGINE_init() function in config.m4, and use HAVE_ENGINE_INIT instead.
-      wrowe notes that this feature is a noop until configured with SSLEngine.
-      http://www.apache.org/~wrowe/have_engine_init.patch for a clean 2.0 patch.
-      modules/ssl/README 1.40
-      modules/ssl/config.m4 1.14
-      modules/ssl/mod_ssl.c 1.79
-      modules/ssl/mod_ssl.h 1.135
-      modules/ssl/ssl_engine_config.c 1.78
-      modules/ssl/ssl_engine_init.c 1.113
-      modules/ssl/ssl_toolkit_compat.c 1.33
-      +0: wrowe {Pending research into how to get AC to use -lsockets et. al.,
-                 shows breakage on Solaris which can't -lcrypto -lssl without
-                 the extra pkgconfig/openssl.pc Libs: * foo }
-
-    * mod_ssl: fix a link failure when the openssl-engine libraries are
-      present but the engine headers are missing.
-        modules/ssl/mod_ssl.c: r1.87
-        modules/ssl/mod_ssl.h: r1.139
-        modules/ssl/ssl_engine_config.c: r1.82
-      PREREQ: Blow away of SSL_EXPERIMENTAL_ENGINE (see above)
-      +1: jwoolley, trawick, jim, jerenkrantz
-
-    * When UseCanonicalName is set to OFF, allow ap_get_server_port to 
-      check r->connection->local_addr->port before defaulting to 
-      server->port or ap_default_port()
-        server/core.c r1.247
-      +1: bnicholes, jim, wrowe
+    *) Keep the same SSLMutex for the lifetime of the parent process
+       (instead of having children using different mutexes and failing
+       to lock the session cache across restarts.)
+       New patch forthcoming - JimJag's changes make the merge ugly.
+       +1: wrowe
+       +1 (concept): jim (final vote when the patch is available)
+
+    *) Fix the SSLMutex config parser so that all 'mechanisms' can take
+       a filename, even if ignored, and they are rooted to the full path
+       to the server (except for posixsem locks).  This allows a very
+       cross-platform default:logs/ssl_mutex to be used everywhere.  Also
+       eliminates the '.pid' suffix so that the name given is the name.
+       Allows Win32 and other non-unicies to use named locks.
+       New patch forthcoming - JimJag's changes make the merge ugly.
+       +1: wrowe
+       +1 (concept): jim (final vote when the patch is available)
+
+    *) mod_ssl: Drop SSL_EXPERIMENTAL_ENGINE test in favor of testing for the
+       ENGINE_init() function in config.m4, and use HAVE_ENGINE_INIT instead.
+       wrowe notes that this feature is a noop until configured with SSLEngine.
+       http://www.apache.org/~wrowe/have_engine_init.patch for a clean 2.0 patch.
+       modules/ssl/README 1.40
+       modules/ssl/config.m4 1.14
+       modules/ssl/mod_ssl.c 1.79
+       modules/ssl/mod_ssl.h 1.135
+       modules/ssl/ssl_engine_config.c 1.78
+       modules/ssl/ssl_engine_init.c 1.113
+       modules/ssl/ssl_toolkit_compat.c 1.33
+       +0: wrowe {Pending research into how to get AC to use -lsockets et. al.,
+                  shows breakage on Solaris which can't -lcrypto -lssl without
+                  the extra pkgconfig/openssl.pc Libs: * foo }
+
+    *) mod_ssl: fix a link failure when the openssl-engine libraries are
+       present but the engine headers are missing.
+         modules/ssl/mod_ssl.c: r1.87
+         modules/ssl/mod_ssl.h: r1.139
+         modules/ssl/ssl_engine_config.c: r1.82
+       PREREQ: Blow away of SSL_EXPERIMENTAL_ENGINE (see above)
+       +1: jwoolley, trawick, jim, jerenkrantz
+
+    *) When UseCanonicalName is set to OFF, allow ap_get_server_port to 
+       check r->connection->local_addr->port before defaulting to 
+       server->port or ap_default_port()
+         server/core.c r1.247
+       +1: bnicholes, jim, wrowe
        0: nd, jerenkrantz
-         nd: can the local_addr->port ever be 0?
-        bnicholes response: I couldn't tell you for sure if local_addr->port
-         could be 0.  But it makes sense that if it were then Apache 
-         wouldn't be listening on any port so it wouldn't matter anyway.
-         nd replies: But if it can't be 0 the alternatives thereafter make no
-           sense anymore, right?
-        jim proposes: UseCanonicalName Client directive
-          which implements this, keeping UseCanonicalName Off
-          "as is". 
-
-    * ThreadStackSize for Win32 and threaded MPMs
-      trawick will eventually put together a patch for httpd 2.0.next
-      +1 concept: trawick, nd, stoddard, wrowe
+          nd: can the local_addr->port ever be 0?
+         bnicholes response: I couldn't tell you for sure if local_addr->port
+           could be 0.  But it makes sense that if it were then Apache 
+           wouldn't be listening on any port so it wouldn't matter anyway.
+          nd replies: But if it can't be 0 the alternatives thereafter make no
+            sense anymore, right?
+         jim proposes: UseCanonicalName Client directive
+           which implements this, keeping UseCanonicalName Off
+           "as is".
+
+    *) ThreadStackSize for Win32 and threaded MPMs
+       trawick will eventually put together a patch for httpd 2.0.next
+       +1 concept: trawick, nd, stoddard, wrowe
       
-    * don't propagate input headers describing a body to a GET subrequest
-      with no body
-      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: jerenkrantz (read_length isn't a sufficient check to see if a body
+    *) don't propagate input headers describing a body to a GET subrequest
+       with no body
+       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: 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'
-            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.)
-          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.
+           gregames: done in rev 160573
+       ±0: 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.)
+           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.
 
 
 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
+    *) 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;
+    *) httpd-std.conf and friends;
 
       a) httpd-std.conf should be tailored by install (from src or
          binbuild) even if user has existing httpd.conf
@@ -527,28 +524,28 @@ CURRENT VOTES:
                  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
-      option, or have a concept of 2 parent processes (one being a 
-      "hot spare").
-      See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
+    *) If the parent process dies, should the remaining child processes
+       "gracefully" self-terminate. Or maybe we should make it a runtime
+       option, or have a concept of 2 parent processes (one being a 
+       "hot spare").
+       See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
 
-      Self-destruct: Ken, Martin
-      Not self-destruct: BrianP, Ian, Cliff, BillS
-      Make it runtime configurable: Aaron, Justin, wrowe, rederpj, jim, nd
+       Self-destruct: Ken, Martin
+       Not self-destruct: BrianP, Ian, Cliff, BillS
+       Make it runtime configurable: Aaron, Justin, wrowe, rederpj, jim, nd
 
-      /* The below was a concept on *how* to handle the problem */
-      Have 2 parents: +1: jim
-                      -1: Justin, wrowe, rederpj, nd
-                      +0: Martin (while standing by, could it do
+       /* The below was a concept on *how* to handle the problem */
+       Have 2 parents: +1: jim
+                       -1: Justin, wrowe, rederpj, nd
+                       +0: Martin (while standing by, could it do
                                   something useful?)
 
-    * Make the worker MPM the default MPM for threaded Unix boxes.
-      +1:   Justin, Ian, Cliff, BillS, striker
-      +0:   BrianP, Aaron (mutex contention is looking better with the
-            latest code, let's continue tuning and testing), rederpj, jim
-      -0:   Lars, wrowe (let's make this defacto for the 2.2 release.),
-            nd (for 2.0)
+    *) Make the worker MPM the default MPM for threaded Unix boxes.
+       +1:   Justin, Ian, Cliff, BillS, striker
+       +0:   BrianP, Aaron (mutex contention is looking better with the
+             latest code, let's continue tuning and testing), rederpj, jim
+       -0:   Lars, wrowe (let's make this defacto for the 2.2 release.),
+             nd (for 2.0)
 
 
 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
index f1cccd46ea04260402a10f2c73b6f8573ad9a664..9f547ab111339284b3c4a39769e2403f83e305cc 100644 (file)
@@ -590,7 +590,7 @@ dnl Ensure that docs/conf is created.
 test -d docs/conf||$mkdir_p docs/conf
 
 dnl Ensure that the httpd version is included
-HTTPD_VERSION=`build/get-version.sh all include/ap_release.h AP_SERVER`
+HTTPD_VERSION=`$srcdir/build/get-version.sh all $srcdir/include/ap_release.h AP_SERVER`
 AC_SUBST(HTTPD_VERSION)
 
 AC_OUTPUT($APACHE_OUTPUT_FILES docs/conf/httpd-std.conf docs/conf/ssl-std.conf include/ap_config_layout.h support/apxs support/apachectl support/dbmmanage support/envvars-std support/log_server_status support/logresolve.pl support/phf_abuse_log.cgi support/split-logfile build/rules.mk build/pkg/pkginfo,[true],[
index 00930fc98dc9a54eccc032f7f557132e2ac6ccac..a1a4dc21ec11af24d1b8768f7fc29d70a7d5c0a5 100644 (file)
    <h3><a name="suppress-error-charset" id="suppress-error-charset">suppress-error-charset</a></h3>
        
 
-    <p><em>Available in versions after 2.0.40</em></p>
+    <p><em>Available in versions after 2.0.54</em></p>
 
     <p>When Apache issues a redirect in response to a client request,
     the response includes some actual text to be displayed in case
index 6a028eb29d7e17edd1e5e0a3891b7a48d6f776b8..c2bb03321b48e2f4d01d2d72158acf0fbe4d6af0 100644 (file)
 <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 </div>
+<div class="outofdate">Esta traducción podría estar
+            obsoleta. Consulte la versión en inglés de la
+            documentación para comprobar si se han producido cambios
+            recientemente.</div>
 
     <p>El servidor HTTP Apache HTTP ofrece un mecanismo para almacenar
     información en variables especiales que se llaman
index 4684ffb95557ae3da3f43f201121035656bb7d84..4d519cabd6ec83f83f9db2509fb6f7896b76bc09 100644 (file)
@@ -24,6 +24,8 @@
 <a href="./ja/env.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
 <a href="./ko/env.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
 </div>
+<div class="outofdate">Cette traduction peut être périmée. Consultez la version
+            Anglaise pour les changements récents.</div>
 
     <p>Le serveur HTTP Apache permet de conserver et d'utiliser 
     certaines informations dans des variables appelées <em>variables 
index 1d4728f5b312c99cb5a19a85a2f8b5edb30e4a42..e7d0b425aaecb918cf3aef7b5ac9429563163c4b 100644 (file)
    <section id="suppress-error-charset">
        <title>suppress-error-charset</title>
 
-    <p><em>Available in versions after 2.0.40</em></p>
+    <p><em>Available in versions after 2.0.54</em></p>
 
     <p>When Apache issues a redirect in response to a client request,
     the response includes some actual text to be displayed in case
index 9474beef5593350ae55a06fefbe082a1b155217d..b95dc2620c483a6fd16e488d9c56f9f85e314e95 100644 (file)
@@ -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.es.xsl"?>
-<!-- English Revision: 151405  -->
+<!-- English Revision: 151405:240425 (outdated) -->
 
 <!--
  Copyright 2002-2005 The Apache Software Foundation or its licensors,
index 862b74b967a8c5a173925c98e192e7874b188c40..ace3863b3fb6e99ef50f6f90e94b3fd43874a270 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
-<!-- English Revision: 151405 -->
+<!-- English Revision: 151405:240425 (outdated) -->
 <!-- French Translation by Vincent Deffontaines, review by alain B -->
 
 <!--
index 5aeae6ecac150ceccb5809f310306d770835412f..34a3d3fbeefaecc7b500ff53fe92db7ea7fc99bd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-2022-jp" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ja.xsl"?>
-<!-- English Revision: 106090:151405 (outdated) -->
+<!-- English Revision: 106090:240425 (outdated) -->
 
 <!--
  Copyright 2002-2004 The Apache Software Foundation
index f66b7e386e35ba9f77cad50bca5895141d85b01d..46efcac47905065ca2cc7b1b5a4c26178290b1b6 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
-<!-- English Revision: 106090:151405 (outdated) -->
+<!-- English Revision: 106090:240425 (outdated) -->
 
 <!--
  Copyright 2003-2004 The Apache Software Foundation
index c33c15a6b89aa6902de121ad1f128c546ae96d2f..15a8fdf305c311587befa0a71462294f7c4a85a8 100644 (file)
@@ -7,8 +7,8 @@
 
   <variants>
     <variant>en</variant>
-    <variant>es</variant>
-    <variant>fr</variant>
+    <variant outdated="yes">es</variant>
+    <variant outdated="yes">fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
   </variants>
index 3741a81e559ce90e6b52cd904ff2dd742e86407b..38959b39f47d1b34db200b31e86225dd06f451e8 100644 (file)
@@ -25,9 +25,6 @@
 <a href="./ko/install.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="./ru/install.html" hreflang="ru" rel="alternate" title="Russian">&nbsp;ru&nbsp;</a></p>
 </div>
-<div class="outofdate">Diese Übersetzung ist möglicherweise
-            nicht mehr aktuell. Bitte prüfen Sie die englische Version auf
-            die neuesten Änderungen.</div>
 
     <p>Dieses Dokument umfaßt nur die Kompilierung und Installation des
     Apache auf Unix und Unix-ähnlichen Systemen. Für die
       <dd>Für einige Hilfsskripte wie <code class="program"><a href="./programs/apxs.html">apxs</a></code>
       oder <code class="program"><a href="./programs/dbmmanage.html">dbmmanage</a></code> (die in Perl
       geschrieben sind) wird der Perl 5 Interpreter benötigt (die
-      Versionen ab 5.003 sind ausreichend). Wenn kein derartiger Interpreter
-      vom <code class="program"><a href="./programs/configure.html">configure</a></code>-Skript gefunden werden kann, macht das
-      jedoch nichts. Selbstverständlich können Sie den Apache 2.0
-      auch so generieren und installieren. Lediglich diese Pflegeskripte
-      können dann nicht verwendet werden. Wenn Sie mehrere Perl
-      Interpreter installiert haben (vielleicht Perl 4 durch Ihren
-      Händler und Perl 5 durch Sie selbst), dann ist die Verwendung der
-      <code>--with-perl</code> Option (siehe unten) empfehlenswert, um
+      Versionen ab 5.003 sind ausreichend). Wenn Sie mehrere Perl
+      Interpreter haben (beispielsweise eine systemweite Installation von
+      Perl 4 und Ihre eigene Perl 5-Installation), dann sollten Sie die
+      <code>--with-perl</code>-Option (siehe unten) verwenden, um
       sicherzustellen, dass der richtige Interpreter von
-      <code class="program"><a href="./programs/./configure.html">./configure</a></code> ausgewählt wird.</dd>
-    </dl>
+      <code class="program"><a href="./programs/configure.html">configure</a></code> ausgewählt wird.
+      Wenn kein Perl 5-Interpreter vom <code class="program"><a href="./programs/configure.html">configure</a></code>-Skript
+      gefunden werden kann, können Sie die betroffenen Hilfsskripte nicht
+      verwenden, sind jedoch selbstverständlich nach wie vor in der Lage,
+      den Apache 2.0 zu bauen und zu installieren.</dd>
+      </dl>
 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="download" id="download">Download</a></h2>
index 9cbd30c6c11db1536588e6752c87ac569f93f1f9..fb4c8a1024c3aea20f2c2107c2d85bcbb91237de 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.de.xsl"?>
-<!-- English Revision: 178522:239259 (outdated) -->
+<!-- English Revision: 239259 -->
 
 <!--
- Copyright 2002-2004 The Apache Software Foundation
+ Copyright 2002-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.
       <dd>F&#252;r einige Hilfsskripte wie <program>apxs</program>
       oder <program>dbmmanage</program> (die in Perl
       geschrieben sind) wird der Perl 5 Interpreter ben&#246;tigt (die
-      Versionen ab 5.003 sind ausreichend). Wenn kein derartiger Interpreter
-      vom <program>configure</program>-Skript gefunden werden kann, macht das
-      jedoch nichts. Selbstverst&#228;ndlich k&#246;nnen Sie den Apache 2.0
-      auch so generieren und installieren. Lediglich diese Pflegeskripte
-      k&#246;nnen dann nicht verwendet werden. Wenn Sie mehrere Perl
-      Interpreter installiert haben (vielleicht Perl 4 durch Ihren
-      H&#228;ndler und Perl 5 durch Sie selbst), dann ist die Verwendung der
-      <code>--with-perl</code> Option (siehe unten) empfehlenswert, um
+      Versionen ab 5.003 sind ausreichend). Wenn Sie mehrere Perl
+      Interpreter haben (beispielsweise eine systemweite Installation von
+      Perl 4 und Ihre eigene Perl 5-Installation), dann sollten Sie die
+      <code>--with-perl</code>-Option (siehe unten) verwenden, um
       sicherzustellen, dass der richtige Interpreter von
-      <program>./configure</program> ausgew&#228;hlt wird.</dd>
-    </dl>
+      <program>configure</program> ausgew&#228;hlt wird.
+      Wenn kein Perl 5-Interpreter vom <program>configure</program>-Skript
+      gefunden werden kann, k&ouml;nnen Sie die betroffenen Hilfsskripte nicht
+      verwenden, sind jedoch selbstverst&auml;ndlich nach wie vor in der Lage,
+      den Apache 2.0 zu bauen und zu installieren.</dd>
+      </dl>
 </section>
 
 <section id="download"><title>Download</title>
index e0e35e7b9eafeb7fe419b70f94f700e1fa393fa5..cfba4de2d85d303660f505b1b39a9f1c479573b3 100644 (file)
@@ -6,7 +6,7 @@
   <relpath>.</relpath>
 
   <variants>
-    <variant outdated="yes">de</variant>
+    <variant>de</variant>
     <variant>en</variant>
     <variant outdated="yes">es</variant>
     <variant outdated="yes">ja</variant>
index 7c4ce3b5bd4301e259b02e0777fdde944309cd3e..f6722f9584c644c5e1cb7479ac85087ad824d2f5 100644 (file)
@@ -1858,21 +1858,19 @@ HTTP-Request-Headers</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>
 </table>
-    <p>Die Direktive gibt die Anzahl der <var>Bytes</var> zwischen 0
-    und dem Wert der zur Kompilierungszeit definierten Konstante
-    <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (<code>8190</code> bei
-    der Auslieferung) an, die in einem HTTP-Header erlaubt sind.</p>
+  <p>Die Direktive gibt die Anzahl der <var>Bytes</var> an, die in einem
+    HTTP-Header erlaubt sind.</p>
 
     <p>Die Direktive <code class="directive">LimitRequestFieldsize</code> erlaubt es
     dem Serveradministrator, die maximale Größe eines
-    HTTP-Request-Headers auf einen Wert unterhalb der normalen, im Server
-    einkompilierten Größe des Eingabepuffers zu verringern.
-    Für den Server muss der Wert groß genug sein, um eine beliebige
-    Headerzeile einer normalen Client-Anfrage vorzuhalten. Die
-    Größe variiert stark zwischen den verschiedenen
-    Client-Ausführungen, oft abhängig vom Ausmaß, mit dem
-    der Anwender die genaue Content-Negotiation-Unterstützung seines
-    Browsers konfiguriert hat.</p>
+    HTTP-Request-Headers zu verringern oder erhöhen. Für den Server
+    muss der Wert groß genug sein, um eine beliebige Headerzeile einer
+    normalen Client-Anfrage vorzuhalten. Die Größe variiert stark
+    zwischen den verschiedenen Client-Ausführungen, oft abhängig vom
+    Ausmaß, mit dem der Anwender die genaue
+    Content-Negotiation-Unterstützung seines Browsers konfiguriert hat.
+    SPNEGO-Authentisierungs-Header können bis zu 12392 Bytes lang
+    sein.</p>
 
     <p>Die Direktive gibt dem Serveradministrator eine größere
     Kontrolle gegenüber abnormalem Verhalten von Clients, was bei der
@@ -1888,6 +1886,10 @@ HTTP-Request-Headers</td></tr>
     <div class="note">Unter normalen Umständen sollte die Voreinstellung nicht
     verändert werden.</div>
 
+    <div class="note">Sie benötigen mindestens Apache 2.0.53, um das Limit
+    über den einkompilierten Wert von DEFAULT_LIMIT_REQUEST_FIELDSIZE
+    hinaus zu setzen (8190 bei der Auslieferung).</div>
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="LimitRequestLine" id="LimitRequestLine">LimitRequestLine</a>-<a name="limitrequestline" id="limitrequestline">Direktive</a></h2>
index 85071070f8c1c40bba7b83222f7bb58d4616e422..85747b2b8554691f4e416fd9e598b0fd434a8ec1 100644 (file)
@@ -1753,21 +1753,18 @@ client</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>
 </table>
-    <p>This directive specifies the number of <var>bytes</var> from 0
-    to the value of the compile-time constant
-    <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (8190 as
-    distributed) that will be allowed in an HTTP request
-    header.</p>
+    <p>This directive specifies the number of <var>bytes</var>
+    that will be allowed in an HTTP request header.</p>
 
     <p>The <code class="directive">LimitRequestFieldSize</code> directive
-    allows the server administrator to reduce the limit on the allowed
-    size of an HTTP request header field below the normal input buffer
-    size compiled with the server. A server needs this value to be
-    large enough to hold any one header field from a normal client
-    request. The size of a normal request header field will vary
-    greatly among different client implementations, often depending
-    upon the extent to which a user has configured their browser to
-    support detailed content negotiation.</p>
+    allows the server administrator to reduce or increase the limit 
+    on the allowed size of an HTTP request header field. A server
+    needs this value to be large enough to hold any one header field 
+    from a normal client request. The size of a normal request header 
+    field will vary greatly among different client implementations, 
+    often depending upon the extent to which a user has configured
+    their browser to support detailed content negotiation. SPNEGO
+    authentication headers can be up to 12392 bytes.</p>
 
     <p>This directive gives the server administrator greater
     control over abnormal client request behavior, which may be
@@ -1782,6 +1779,11 @@ client</td></tr>
     <div class="note">Under normal conditions, the value should not be changed from
     the default.</div>
 
+    <div class="note">Apache 2.0.53 or higher is required for increasing the
+    limit above the compiled-in value of DEFAULT_LIMIT_REQUEST_FIELDSIZE
+    (8190 as distributed).
+    </div>
+
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
index 134c8a84802021a64e213e1518e754c1ae865283..10d8a21f6c399cc5f9aa1759d46edbc8bd2c2af4 100644 (file)
@@ -1718,21 +1718,18 @@ client</description>
 <contextlist><context>server config</context></contextlist>
 
 <usage>
-    <p>This directive specifies the number of <var>bytes</var> from 0
-    to the value of the compile-time constant
-    <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (8190 as
-    distributed) that will be allowed in an HTTP request
-    header.</p>
+    <p>This directive specifies the number of <var>bytes</var>
+    that will be allowed in an HTTP request header.</p>
 
     <p>The <directive>LimitRequestFieldSize</directive> directive
-    allows the server administrator to reduce the limit on the allowed
-    size of an HTTP request header field below the normal input buffer
-    size compiled with the server. A server needs this value to be
-    large enough to hold any one header field from a normal client
-    request. The size of a normal request header field will vary
-    greatly among different client implementations, often depending
-    upon the extent to which a user has configured their browser to
-    support detailed content negotiation.</p>
+    allows the server administrator to reduce or increase the limit 
+    on the allowed size of an HTTP request header field. A server
+    needs this value to be large enough to hold any one header field 
+    from a normal client request. The size of a normal request header 
+    field will vary greatly among different client implementations, 
+    often depending upon the extent to which a user has configured
+    their browser to support detailed content negotiation. SPNEGO
+    authentication headers can be up to 12392 bytes.</p>
 
     <p>This directive gives the server administrator greater
     control over abnormal client request behavior, which may be
@@ -1747,6 +1744,11 @@ client</description>
     <note>Under normal conditions, the value should not be changed from
     the default.</note>
 
+    <note>Apache 2.0.53 or higher is required for increasing the
+    limit above the compiled-in value of DEFAULT_LIMIT_REQUEST_FIELDSIZE
+    (8190 as distributed).
+    </note>
+
 </usage>
 </directivesynopsis>
 
index 953e92263a05a2b03b32ecd8cb7f158321c30795..07c9d4f4412c95923e2040ae230f912f45228fcf 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
-<!-- English Revision: 167961 -->
+<!-- English Revision: 279024 -->
 
 <!--
  Copyright 2003-2004 The Apache Software Foundation
@@ -1820,21 +1820,19 @@ HTTP-Request-Headers</description>
 <contextlist><context>server config</context></contextlist>
 
 <usage>
-    <p>Die Direktive gibt die Anzahl der <var>Bytes</var> zwischen 0
-    und dem Wert der zur Kompilierungszeit definierten Konstante
-    <code>DEFAULT_LIMIT_REQUEST_FIELDSIZE</code> (<code>8190</code> bei
-    der Auslieferung) an, die in einem HTTP-Header erlaubt sind.</p>
+  <p>Die Direktive gibt die Anzahl der <var>Bytes</var> an, die in einem
+    HTTP-Header erlaubt sind.</p>
 
     <p>Die Direktive <directive>LimitRequestFieldsize</directive> erlaubt es
     dem Serveradministrator, die maximale Gr&ouml;&szlig;e eines
-    HTTP-Request-Headers auf einen Wert unterhalb der normalen, im Server
-    einkompilierten Gr&ouml;&szlig;e des Eingabepuffers zu verringern.
-    F&uuml;r den Server muss der Wert gro&szlig; genug sein, um eine beliebige
-    Headerzeile einer normalen Client-Anfrage vorzuhalten. Die
-    Gr&ouml;&szlig;e variiert stark zwischen den verschiedenen
-    Client-Ausf&uuml;hrungen, oft abh&auml;ngig vom Ausma&szlig;, mit dem
-    der Anwender die genaue Content-Negotiation-Unterst&uuml;tzung seines
-    Browsers konfiguriert hat.</p>
+    HTTP-Request-Headers zu verringern oder erh&ouml;hen. F&uuml;r den Server
+    muss der Wert gro&szlig; genug sein, um eine beliebige Headerzeile einer
+    normalen Client-Anfrage vorzuhalten. Die Gr&ouml;&szlig;e variiert stark
+    zwischen den verschiedenen Client-Ausf&uuml;hrungen, oft abh&auml;ngig vom
+    Ausma&szlig;, mit dem der Anwender die genaue
+    Content-Negotiation-Unterst&uuml;tzung seines Browsers konfiguriert hat.
+    SPNEGO-Authentisierungs-Header k&ouml;nnen bis zu 12392 Bytes lang
+    sein.</p>
 
     <p>Die Direktive gibt dem Serveradministrator eine gr&ouml;&szlig;ere
     Kontrolle gegen&uuml;ber abnormalem Verhalten von Clients, was bei der
@@ -1849,6 +1847,10 @@ HTTP-Request-Headers</description>
 
     <note>Unter normalen Umst&auml;nden sollte die Voreinstellung nicht
     ver&auml;ndert werden.</note>
+
+    <note>Sie ben&ouml;tigen mindestens Apache 2.0.53, um das Limit
+    &uuml;ber den einkompilierten Wert von DEFAULT_LIMIT_REQUEST_FIELDSIZE
+    hinaus zu setzen (8190 bei der Auslieferung).</note>
 </usage>
 </directivesynopsis>
 
index 00ec68356a8b92b395090e4e9c6127bef3eb09aa..c07bd015af7f26976a690225477259698a7b16c8 100644 (file)
@@ -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:167961 (outdated) -->
+<!-- English Revision: 151420:279024 (outdated) -->
 
 <!-- 
  Copyright 2005 The Apache Software Foundation or it licensors,
index 5f5dffb06e43b61548511965d0958b8ce00f936a..3167ae71f1131d2ce8dfa0e0f9aa1f97f1d0fba6 100644 (file)
@@ -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:167961 (outdated) -->
+<!-- English Revision: 106090:279024 (outdated) -->
 
 <!--
  Copyright 2003-2004 The Apache Software Foundation
index 04753f31b7dea87e9ab28adbc7649d941ad35c63..bbba6a13077dd40d9a3c8a4724027bbb88561558 100644 (file)
@@ -25,9 +25,6 @@
 <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="./ru/stopping.html" hreflang="ru" rel="alternate" title="Russian">&nbsp;ru&nbsp;</a></p>
 </div>
-<div class="outofdate">Diese Übersetzung ist möglicherweise
-            nicht mehr aktuell. Bitte prüfen Sie die englische Version auf
-            die neuesten Änderungen.</div>
 
     <p>Dieses Dokument umfasst das Beenden und Neustarten des
     Apache auf Unix-ähnlichen Systemen. Anwender von Windows NT, 2000
     beschleunigen, entsprechend weitere erstellt. Auf diese Weise versucht
     der Code sowohl die Anzahl der Kinder entsprechend der Serverlast
     anzupassen als auch Ihre Wünsche hinsichtlich des Parameters
-    <code class="directive">StartServers</code> zu berücksichtigen.</p>
+    <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> zu
+    berücksichtigen.</p>
 
     <p>Benutzer von <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> werden feststellen,
     dass die Serverstatistiken <strong>nicht</strong> auf Null
 
     <p>Vor der Version 1.2b9 des Apache existierten verschiedene
     <em>Wettkampfsituationen</em> (race conditions), die den Neustart und
-    die Signale beeinflußt haben. (Eine einfache Beschreibung einer
-    Wettkampfsituation lautet: es ist ein zeitabhängiges Problem; wenn
-    etwas zum falschen Zeitpunkt erfolgt, wird es sich nicht wie erwartet
-    verhalten.) Bei Architekturen mit dem "richtigen" Funktionsumfang
+    die Signale beeinflußt haben. (Einfach erklärt ist eine
+    Wettkampfsituation ein zeitabhängiges Problem - wenn
+    etwas zum falschen Zeitpunkt erfolgt oder Dinge in der falschen
+    Reihenfolge passieren, ist unerwartetes Verhalten die Folge. Wenn die
+    gleichen Dinge zur richtigen Zeit geschehen, funktioniert alles korrekt.)
+    Bei Architekturen mit dem "richtigen" Funktionsumfang
     haben wir so viele eliminiert wie wir nur konnten. Dennoch
     sollte beachtet werden, dass noch immer Wettkampfsituationen auf
     bestimmten Architekturen existieren.</p>
index 908fb041396ba0bca81b5a6056789c8873cfc14e..7423cddf5c2961ddb8a894a55dcfc6a8942216ee 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
 <?xml-stylesheet type="text/xsl" href="./style/manual.de.xsl"?>
-<!-- English Revision: 151405:239259 (outdated) -->
+<!-- English Revision: 239259 -->
 
 <!--
- Copyright 2002-2004 The Apache Software Foundation
+ Copyright 2002-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.
     beschleunigen, entsprechend weitere erstellt. Auf diese Weise versucht
     der Code sowohl die Anzahl der Kinder entsprechend der Serverlast
     anzupassen als auch Ihre W&#252;nsche hinsichtlich des Parameters
-    <directive>StartServers</directive> zu ber&#252;cksichtigen.</p>
+    <directive module="mpm_common">StartServers</directive> zu
+    ber&#252;cksichtigen.</p>
 
     <p>Benutzer von <module>mod_status</module> werden feststellen,
     dass die Serverstatistiken <strong>nicht</strong> auf Null
 
     <p>Vor der Version 1.2b9 des Apache existierten verschiedene
     <em>Wettkampfsituationen</em> (race conditions), die den Neustart und
-    die Signale beeinflu&#223;t haben. (Eine einfache Beschreibung einer
-    Wettkampfsituation lautet: es ist ein zeitabh&#228;ngiges Problem; wenn
-    etwas zum falschen Zeitpunkt erfolgt, wird es sich nicht wie erwartet
-    verhalten.) Bei Architekturen mit dem "richtigen" Funktionsumfang
+    die Signale beeinflu&#223;t haben. (Einfach erkl&auml;rt ist eine
+    Wettkampfsituation ein zeitabh&#228;ngiges Problem - wenn
+    etwas zum falschen Zeitpunkt erfolgt oder Dinge in der falschen
+    Reihenfolge passieren, ist unerwartetes Verhalten die Folge. Wenn die
+    gleichen Dinge zur richtigen Zeit geschehen, funktioniert alles korrekt.)
+    Bei Architekturen mit dem "richtigen" Funktionsumfang
     haben wir so viele eliminiert wie wir nur konnten. Dennoch
     sollte beachtet werden, dass noch immer Wettkampfsituationen auf
     bestimmten Architekturen existieren.</p>
index d6719515044746f5b72968cc205f19aeffb7ace0..2a5df1d97480e48efcee78efc52574323c9b961b 100644 (file)
@@ -6,7 +6,7 @@
   <relpath>.</relpath>
 
   <variants>
-    <variant outdated="yes">de</variant>
+    <variant>de</variant>
     <variant>en</variant>
     <variant outdated="yes">es</variant>
     <variant outdated="yes">ja</variant>
index 29777cae2508f584847553cd33449313cc03e17e..0e1175cd42d30a39e7d384e558a54bba2d37a1cf 100644 (file)
@@ -84,6 +84,7 @@
  * 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()
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */
index 2b816659f89dbdf3107b03a0cd4e84547197d8c4..9028ff012bbb9778de022cc92e4fdf70b6c62cd4 100644 (file)
@@ -332,6 +332,9 @@ typedef struct {
     char **response_code_strings; /* from ap_custom_response(), not from
                                    * ErrorDocument
                                    */
+    /* Should addition of charset= be suppressed for this request?
+     */
+    int suppress_charset;
 } core_request_config;
 
 /* Standard entries that are guaranteed to be accessible via
index 93895f13c1672a7bceb8e44866e5965f0377cc8f..0efb077abb1c72e4d1ea274104258d28d29e7c17 100644 (file)
@@ -131,8 +131,8 @@ void ap_logs_child_init(apr_pool_t *p, server_rec *s);
 #endif /* CORE_PRIVATE */
 
 /* 
- * The three primary logging functions, ap_log_error, ap_log_rerror, and 
- * ap_log_perror use a printf style format string to build the log message.  
+ * The primary logging functions, ap_log_error, ap_log_rerror, ap_log_cerror,
+ * and ap_log_perror use a printf style format string to build the log message.  
  * It is VERY IMPORTANT that you not include any raw data from the network, 
  * such as the request-URI or request header fields, within the format 
  * string.  Doing so makes the server vulnerable to a denial-of-service 
@@ -141,8 +141,9 @@ void ap_logs_child_init(apr_pool_t *p, server_rec *s);
  */
 
 /**
- * One of the primary logging routines in Apache.  This uses a printf-like
- * format to log messages to the error_log.
+ * ap_log_error() - log messages which are not related to a particular
+ * request or connection.  This uses a printf-like format to log messages
+ * to the error_log.
  * @param file The file in which this function is called
  * @param line The line number on which this function is called
  * @param level The level of this error message
@@ -151,6 +152,10 @@ void ap_logs_child_init(apr_pool_t *p, server_rec *s);
  * @param fmt The format string
  * @param ... The arguments to use to fill out fmt.
  * @tip Use APLOG_MARK to fill out file and line
+ * @tip If a request_rec is available, use that with ap_log_rerror()
+ * in preference to calling this function.  Otherwise, if a conn_rec is
+ * available, use that with ap_log_cerror() in preference to calling
+ * this function.
  * @warning It is VERY IMPORTANT that you not include any raw data from 
  * the network, such as the request-URI or request header fields, within 
  * the format string.  Doing so makes the server vulnerable to a 
@@ -165,8 +170,9 @@ AP_DECLARE(void) ap_log_error(const char *file, int line, int level,
                            __attribute__((format(printf,6,7)));
 
 /**
- * The second of the primary logging routines in Apache.  This uses 
- * a printf-like format to log messages to the error_log.
+ * ap_log_perror() - log messages which are not related to a particular
+ * request, connection, or virtual server.  This uses a printf-like
+ * format to log messages to the error_log.
  * @param file The file in which this function is called
  * @param line The line number on which this function is called
  * @param level The level of this error message
@@ -189,13 +195,14 @@ AP_DECLARE(void) ap_log_perror(const char *file, int line, int level,
                            __attribute__((format(printf,6,7)));
 
 /**
- * The last of the primary logging routines in Apache.  This uses 
- * a printf-like format to log messages to the error_log.
+ * ap_log_rerror() - log messages which are related to a particular
+ * request.  This uses a a printf-like format to log messages to the
+ * error_log.
  * @param file The file in which this function is called
  * @param line The line number on which this function is called
  * @param level The level of this error message
  * @param status The status code from the previous command
- * @param s The request which we are logging for
+ * @param r The request which we are logging for
  * @param fmt The format string
  * @param ... The arguments to use to fill out fmt.
  * @tip Use APLOG_MARK to fill out file and line
@@ -205,13 +212,41 @@ AP_DECLARE(void) ap_log_perror(const char *file, int line, int level,
  * denial-of-service attack and other messy behavior.  Instead, use a 
  * simple format string like "%s", followed by the string containing the 
  * untrusted data.
- * @deffunc void ap_log_rerror(const char *file, int line, int level, apr_status_t status, request_rec *r, const char *fmt, ...) 
+ * @deffunc void ap_log_rerror(const char *file, int line, int level, apr_status_t status, const request_rec *r, const char *fmt, ...)
  */
 AP_DECLARE(void) ap_log_rerror(const char *file, int line, int level, 
                                apr_status_t status, const request_rec *r, 
                                const char *fmt, ...)
                            __attribute__((format(printf,6,7)));
 
+/**
+ * ap_log_cerror() - log messages which are related to a particular
+ * connection.  This uses a a printf-like format to log messages to the
+ * error_log.
+ * @param file The file in which this function is called
+ * @param line The line number on which this function is called
+ * @param level The level of this error message
+ * @param status The status code from the previous command
+ * @param c The connection which we are logging for
+ * @param fmt The format string
+ * @param ... The arguments to use to fill out fmt.
+ * @tip Use APLOG_MARK to fill out file and line
+ * @tip If a request_rec is available, use that with ap_log_rerror()
+ * in preference to calling this function.
+ * @warning It is VERY IMPORTANT that you not include any raw data from 
+ * the network, such as the request-URI or request header fields, within 
+ * the format string.  Doing so makes the server vulnerable to a 
+ * denial-of-service attack and other messy behavior.  Instead, use a 
+ * simple format string like "%s", followed by the string containing the 
+ * untrusted data.
+ * @note ap_log_cerror() is available starting with Apache 2.0.55.
+ * @deffunc void ap_log_cerror(const char *file, int line, int level, apr_status_t status, const conn_rec *c, const char *fmt, ...)
+ */
+AP_DECLARE(void) ap_log_cerror(const char *file, int line, int level, 
+                               apr_status_t status, const conn_rec *c, 
+                               const char *fmt, ...)
+                           __attribute__((format(printf,6,7)));
+
 /**
  * Convert stderr to the error log
  * @param s The current server
index 137ca0c5995fcc3fb016c6cef7b788dc00057c9e..be107b94ed7ff718376d8145cb3aa20358c931ad 100644 (file)
@@ -1504,6 +1504,8 @@ static void copy_uri_components(apr_uri_t *dst,
     else {
         dst->query = src->query;
     }
+
+    dst->hostinfo = src->hostinfo;
 }
 
 /* These functions return 0 if client is OK, and proper error status
@@ -1631,7 +1633,7 @@ static int authenticate_digest_user(request_rec *r)
         }
 
         if (r->method_number == M_CONNECT) {
-            if (strcmp(resp->uri, r_uri.hostinfo)) {
+            if (!r_uri.hostinfo || strcmp(resp->uri, r_uri.hostinfo)) {
                 ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
                               "Digest: uri mismatch - <%s> does not match "
                               "request-uri <%s>", resp->uri, r_uri.hostinfo);
index 7f0c76e160105d981ca5d06e18f9c237f5cf1785..17b8d9659ab766714f1c33ef7b4880e29430c843 100644 (file)
@@ -460,6 +460,26 @@ int mod_auth_ldap_auth_checker(request_rec *r)
         return DECLINED;
     }
 
+    /*
+     * It is possible that we've skipped mod_auth_ldap's
+     * check_user_id hook, but still get here. In that
+     * case, the req request_config struct hasn't been initialized
+     * causing problems when we try to use req->dn and/or req->name
+     * below. So we simply create one.
+     *
+     * Unlike 2.2, we don't try to search or populate it.
+     */
+    if (!req) {
+        ap_log_rerror(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, 0, r, 
+                      "[%d] auth_ldap authorise: "
+                      "no req struct - skipped mod_auth_ldap_check_user_id?",
+                      getpid());
+
+        req = (mod_auth_ldap_request_t *)apr_pcalloc(r->pool,
+                                                     sizeof(mod_auth_ldap_request_t));
+        ap_set_module_config(r->request_config, &auth_ldap_module, req);
+    }
+
     if (sec->host) {
         ldc = util_ldap_connection_find(r, sec->host, sec->port,
                                        sec->binddn, sec->bindpw, sec->deref,
@@ -657,6 +677,13 @@ int mod_auth_ldap_auth_checker(request_rec *r)
             }
         }
         else if (strcmp(w, "ldap-attribute") == 0) {
+            if (req->dn == NULL || strlen(req->dn) == 0) {
+               ap_log_rerror(APLOG_MARK, APLOG_DEBUG|APLOG_NOERRNO, 0, r,
+                              "[%d] auth_ldap authorise: "
+                              "require ldap-attribute: user's DN has not been defined; failing authorisation", 
+                              getpid());
+                return sec->auth_authoritative? HTTP_UNAUTHORIZED : DECLINED;
+            }
             while (t[0]) {
                 w = ap_getword(r->pool, &t, '=');
                 value = ap_getword_conf(r->pool, &t);
index ee45a086dace38abc03769032cd5e74ca463ea31..c1a252b5acf5912ff0d8b8003a468ba8f3d92ac5 100644 (file)
@@ -788,11 +788,11 @@ static int handle_include(include_ctx_t *ctx, apr_bucket_brigade **bb,
                     CREATE_ERROR_BUCKET(ctx, tmp_buck, head_ptr, 
                                         *inserted_head);
                 }
-
-                /* destroy the sub request */
-                if (rr != NULL) {
-                    ap_destroy_sub_req(rr);
-                }
+                
+                /* Do *not* destroy the subrequest here; it may have allocated
+                 * variables in this r->subprocess_env in the subrequest's
+                 * r->pool, so that pool must survive as long as this request.
+                 * Yes, this is a memory leak. */
             }
             else {
                 ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
index a14326f23f3895195aeea9a78df5c99be66836fa..5dd50704ddeeb2ca7de9c84f48a70cb0e864802a 100644 (file)
@@ -1278,10 +1278,7 @@ static int cgid_handler(request_rec *r)
  
     nph = !(strncmp(argv0, "nph-", 4)); 
 
-    if ((argv0 = strrchr(r->filename, '/')) != NULL) 
-        argv0++; 
-    else 
-        argv0 = r->filename; 
+    argv0 = r->filename; 
 
     if (!(ap_allow_options(r) & OPT_EXECCGI) && !is_scriptaliased(r)) 
         return log_scripterror(r, conf, HTTP_FORBIDDEN, 0, 
index 849ddfb1eab94214c27600687053ef785e62f2d4..8b58453255968802c49802689cabef9777095b50 100644 (file)
@@ -1816,6 +1816,8 @@ static long get_chunk_size(char *b)
     long chunksize = 0;
     size_t chunkbits = sizeof(long) * 8;
 
+    ap_xlate_proto_from_ascii(b, strlen(b));
+
     /* Skip leading zeros */
     while (*b == '0') {
         ++b;
@@ -2336,7 +2338,19 @@ AP_DECLARE(void) ap_send_error_response(request_rec *r, int recursive_error)
         r->content_languages = NULL;
         r->content_encoding = NULL;
         r->clength = 0;
-        ap_set_content_type(r, "text/html; charset=iso-8859-1");
+
+        if (apr_table_get(r->subprocess_env,
+                          "suppress-error-charset") != NULL) {
+            core_request_config *request_conf =
+                        ap_get_module_config(r->request_config, &core_module);
+            request_conf->suppress_charset = 1; /* avoid adding default
+                                                 * charset later
+                                                 */
+            ap_set_content_type(r, "text/html");
+        }
+        else {
+            ap_set_content_type(r, "text/html; charset=iso-8859-1");
+        }
 
         if ((status == HTTP_METHOD_NOT_ALLOWED)
             || (status == HTTP_NOT_IMPLEMENTED)) {
index 417008d5cae5402c07514c620c39d5fae6903352..4ddcfc020fbc7a8d871a17c6c2fb33c881da84f1 100644 (file)
@@ -92,7 +92,7 @@ static int ftp_check_globbingchars(const char *path)
     for ( ; *path; ++path) {
         if (*path == '\\')
            ++path;
-        if (path != '\0' && strchr(FTP_GLOBBING_CHARS, *path) != NULL)
+        if (*path != '\0' && strchr(FTP_GLOBBING_CHARS, *path) != NULL)
             return TRUE;
     }
     return FALSE;
index e9a868f5b3a89b73f2a7bf1e77da00a5b8331a01..e702b459c6c1410a44901cf1c561c27901c8c8f3 100644 (file)
@@ -4178,9 +4178,9 @@ static apr_status_t core_output_filter(ap_filter_t *f, apr_bucket_brigade *b)
                         rv = apr_bucket_read(bucket, &buf, &len,
                                              APR_BLOCK_READ);
                         if (rv != APR_SUCCESS) {
-                            ap_log_error(APLOG_MARK, APLOG_ERR, rv,
-                                         c->base_server, "core_output_filter:"
-                                         " Error reading from bucket.");
+                            ap_log_cerror(APLOG_MARK, APLOG_ERR, rv,
+                                          c, "core_output_filter:"
+                                          " Error reading from bucket.");
                             return HTTP_INTERNAL_SERVER_ERROR;
                         }
                     }
@@ -4287,8 +4287,8 @@ static apr_status_t core_output_filter(ap_filter_t *f, apr_bucket_brigade *b)
         }
 
         if (rv != APR_SUCCESS) {
-            ap_log_error(APLOG_MARK, APLOG_INFO, rv, c->base_server,
-                         "core_output_filter: writing data to the network");
+            ap_log_cerror(APLOG_MARK, APLOG_INFO, rv, c,
+                          "core_output_filter: writing data to the network");
 
             if (more)
                 apr_brigade_destroy(more);
@@ -4463,6 +4463,7 @@ static conn_rec *core_create_conn(apr_pool_t *ptrans, server_rec *server,
 static int core_pre_connection(conn_rec *c, void *csd)
 {
     core_net_rec *net = apr_palloc(c->pool, sizeof(*net));
+    apr_status_t rv;
 
 #ifdef AP_MPM_DISABLE_NAGLE_ACCEPTED_SOCK
     /* BillS says perhaps this should be moved to the MPMs. Some OSes
@@ -4470,7 +4471,21 @@ static int core_pre_connection(conn_rec *c, void *csd)
      * accept sockets which means this call only needs to be made
      * once on the listener
      */
-    ap_sock_disable_nagle(csd);
+    /* The Nagle algorithm says that we should delay sending partial
+     * packets in hopes of getting more data.  We don't want to do
+     * this; we are not telnet.  There are bad interactions between
+     * persistent connections and Nagle's algorithm that have very severe
+     * performance penalties.  (Failing to disable Nagle is not much of a
+     * problem with simple HTTP.)
+     */
+    rv = apr_socket_opt_set(csd, APR_TCP_NODELAY, 1);
+    if (rv != APR_SUCCESS && rv != APR_ENOTIMPL) {
+        /* expected cause is that the client disconnected already,
+         * hence the debug level
+         */
+        ap_log_cerror(APLOG_MARK, APLOG_DEBUG, rv, c,
+                      "apr_socket_opt_set(APR_TCP_NODELAY)");
+    }
 #endif
     net->c = c;
     net->in_ctx = NULL;
index 10bdb566f38c2271d55d2781b78dc753d8be4507..a4692f42c7332032b1097e757e8569b848c5def3 100644 (file)
@@ -405,6 +405,7 @@ AP_DECLARE(void) ap_error_log2stderr(server_rec *s) {
 
 static void log_error_core(const char *file, int line, int level,
                            apr_status_t status, const server_rec *s,
+                           const conn_rec *c,
                            const request_rec *r, apr_pool_t *pool,
                            const char *fmt, va_list args)
 {
@@ -417,6 +418,10 @@ static void log_error_core(const char *file, int line, int level,
     const char *referer;
     int level_and_mask = level & APLOG_LEVELMASK;
 
+    if (r && r->connection) {
+        c = r->connection;
+    }
+
     if (s == NULL) {
         /*
          * If we are doing stderr logging (startup), don't log messages that are
@@ -512,14 +517,14 @@ static void log_error_core(const char *file, int line, int level,
     }
 #endif /* TPF */
 
-    if (r && r->connection) {
+    if (c) {
         /* XXX: TODO: add a method of selecting whether logged client
          * addresses are in dotted quad or resolved form... dotted
          * quad is the most secure, which is why I'm implementing it
          * first. -djg
          */
         len += apr_snprintf(errstr + len, MAX_STRING_LEN - len,
-                            "[client %s] ", r->connection->remote_ip);
+                            "[client %s] ", c->remote_ip);
     }
     if (status != 0) {
         if (status < APR_OS_START_EAIERR) {
@@ -598,7 +603,7 @@ AP_DECLARE(void) ap_log_error(const char *file, int line, int level,
     va_list args;
 
     va_start(args, fmt);
-    log_error_core(file, line, level, status, s, NULL, NULL, fmt, args);
+    log_error_core(file, line, level, status, s, NULL, NULL, NULL, fmt, args);
     va_end(args);
 }
 
@@ -609,7 +614,7 @@ AP_DECLARE(void) ap_log_perror(const char *file, int line, int level,
     va_list args;
 
     va_start(args, fmt);
-    log_error_core(file, line, level, status, NULL, NULL, p, fmt, args);
+    log_error_core(file, line, level, status, NULL, NULL, NULL, p, fmt, args);
     va_end(args);
 }
 
@@ -620,7 +625,8 @@ AP_DECLARE(void) ap_log_rerror(const char *file, int line, int level,
     va_list args;
 
     va_start(args, fmt);
-    log_error_core(file, line, level, status, r->server, r, NULL, fmt, args);
+    log_error_core(file, line, level, status, r->server, NULL, r, NULL, fmt,
+                   args);
 
     /*
      * IF APLOG_TOCLIENT is set,
@@ -641,6 +647,18 @@ AP_DECLARE(void) ap_log_rerror(const char *file, int line, int level,
     va_end(args);
 }
 
+AP_DECLARE(void) ap_log_cerror(const char *file, int line, int level,
+                               apr_status_t status, const conn_rec *c,
+                               const char *fmt, ...)
+{
+    va_list args;
+
+    va_start(args, fmt);
+    log_error_core(file, line, level, status, c->base_server, c, NULL, NULL,
+                   fmt, args);
+    va_end(args);
+}
+
 AP_DECLARE(void) ap_log_pid(apr_pool_t *p, const char *filename)
 {
     apr_file_t *pid_file = NULL;
index a10610e01e7a5b99c679bf0f6a9406751d2ffed2..80cea4834c8282674c44e59a777d0e36c83de79f 100644 (file)
@@ -106,6 +106,7 @@ AP_DECLARE(const char *)ap_make_content_type(request_rec *r, const char *type)
     core_dir_config *conf =
         (core_dir_config *)ap_get_module_config(r->per_dir_config,
                                                 &core_module);
+    core_request_config *request_conf;
     apr_size_t type_len;
 
     if (!type) {
@@ -116,6 +117,12 @@ AP_DECLARE(const char *)ap_make_content_type(request_rec *r, const char *type)
         return type;
     }
 
+    request_conf =
+        ap_get_module_config(r->request_config, &core_module);
+    if (request_conf->suppress_charset) {
+        return type;
+    }
+
     type_len = strlen(type);
 
     if (apr_strmatch(charset_pattern, type, type_len) != NULL) {