Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / apache-win32 / CHANGES.txt
blob8052e369e6a6faa51585649d486875cd5d02542f
1                                                          -*- coding: utf-8 -*-
2 Changes with Apache 2.2.25
4   *) SECURITY: CVE-2013-1862 (cve.mitre.org)
5      mod_rewrite: Ensure that client data written to the RewriteLog is
6      escaped to prevent terminal escape sequences from entering the
7      log file.  [Eric Covener, Jeff Trawick, Joe Orton]
9   *) core: Limit ap_pregsub() to 64MB and add ap_pregsub_ex() for longer
10      strings.  The default limit for ap_pregsub() can be adjusted at compile
11       time by defining AP_PREGSUB_MAXLEN.  [Stefan Fritsch, Jeff Trawick]
13   *) core: Support the SINGLE_LISTEN_UNSERIALIZED_ACCEPT optimization
14      on Linux kernel versions 3.x and above.  PR 55121.  [Bradley Heilbrun
15      <apache heilbrun.org>]
17   *) mod_setenvif: Log error on substitution overflow.
18      [Stefan Fritsch]
20   *) mod_ssl/proxy: enable the SNI extension for backend TLS connections
21      [Kaspar Brand]
23   *) mod_proxy: Use the the same hostname for SNI as for the HTTP request when
24      forwarding to SSL backends. PR 53134.
25      [Michael Weiser <michael weiser.dinsnail.net>, Ruediger Pluem]
27   *) mod_ssl: Quiet FIPS mode weak keys disabled and FIPS not selected emits
28      in the error log to debug level.  [William Rowe]
30   *) mod_ssl: Catch missing, mismatched or encrypted client cert/key pairs
31      with SSLProxyMachineCertificateFile/Path directives. PR 52212, PR 54698.
32      [Keith Burdis <keith burdis.org>, Joe Orton, Kaspar Brand]
34   *) mod_proxy_balancer: Added balancer parameter failontimeout to allow server
35      admin to configure an IO timeout as an error in the balancer.
36      [Daniel Ruggeri]
38   *) mod_authnz_ldap: Allow using exec: calls to obtain LDAP bind
39      password.  [Daniel Ruggeri]
41   *) htdigest: Fix buffer overflow when reading digest password file
42      with very long lines. PR 54893. [Rainer Jung]
44   *) mod_dav: Sending a MERGE request against a URI handled by mod_dav_svn with
45      the source href (sent as part of the request body as XML) pointing to a
46      URI that is not configured for DAV will trigger a segfault. [Ben Reser
47      <ben reser.org>]
49   *) mod_dav: Ensure URI is correctly uriencoded on return. PR 54611
50      [Timothy Wood <tjw omnigroup.com>]
52   *) mod_dav: Make sure that when we prepare an If URL for Etag comparison,
53      we compare unencoded paths. PR 53910 [Timothy Wood <tjw omnigroup.com>]
55   *) mod_dav: Sending an If or If-Match header with an invalid ETag doesn't
56      result in a 412 Precondition Failed for a COPY operation. PR54610
57      [Timothy Wood <tjw omnigroup.com>]
59   *) mod_dav: When a PROPPATCH attempts to remove a non-existent dead
60      property on a resource for which there is no dead property in the same
61      namespace httpd segfaults. PR 52559 [Diego Santa Cruz
62      <diego.santaCruz spinetix.com>]
64   *) mod_dav: Do not fail PROPPATCH when prop namespace is not known.
65      PR 52559 [Diego Santa Cruz <diego.santaCruz spinetix.com>]
67   *) mod_dav: Do not segfault on PROPFIND with a zero length DBM.
68      PR 52559 [Diego Santa Cruz <diego.santaCruz spinetix.com>]
70 Changes with Apache 2.2.24
72   *) SECURITY: CVE-2012-3499 (cve.mitre.org)
73      Various XSS flaws due to unescaped hostnames and URIs HTML output in
74      mod_info, mod_status, mod_imagemap, mod_ldap, and mod_proxy_ftp.
75      [Jim Jagielski, Stefan Fritsch, Niels Heinen <heinenn google com>]
77   *) SECURITY: CVE-2012-4558 (cve.mitre.org)
78      XSS in mod_proxy_balancer manager interface. [Jim Jagielski,
79      Niels Heinen <heinenn google com>]
81   *) mod_rewrite: Stop merging RewriteBase down to subdirectories
82      unless new option 'RewriteOptions MergeBase' is configured.
83      Merging RewriteBase was unconditionally turned on in 2.2.23.
84      PR 53963. [Eric Covener]
86   *) mod_ssl: Send the error message for speaking http to an https port using
87      HTTP/1.0 instead of HTTP/0.9, and omit the link that may be wrong when
88      using SNI. PR 50823. [Stefan Fritsch]
90   *) mod_ssl: log revoked certificates at level INFO
91      instead of DEBUG. PR 52162. [Stefan Fritsch]
93   *) mod_proxy_ajp: Support unknown HTTP methods. PR 54416.
94      [Rainer Jung]
96   *) mod_dir: Add support for the value 'disabled' in FallbackResource.
97      [Vincent Deffontaines]
99   *) mod_ldap: Fix regression in handling "server unavailable" errors on
100      Windows.  PR 54140.  [Eric Covener]
102   *) mod_ssl: fix a regression with the string rendering of the "UID" RDN
103      introduced in 2.2.15. PR 54510. [Kaspar Brand]
104      
105   *) ab: add TLS1.1/TLS1.2 options to -f switch, and adapt output
106      to more accurately report the negotiated protocol. PR 53916.
107      [Nicolás Pernas Maradei <nico emutex com>, Kaspar Brand]
109   *) mod_cache: Explicitly allow cache implementations to cache a 206 Partial
110      Response if they so choose to do so. Previously an attempt to cache a 206
111      was arbitrarily allowed if the response contained an Expires or
112      Cache-Control header, and arbitrarily denied if both headers were missing.
113      Currently the disk and memory cache providers do not cache 206 Partial
114      Responses. [Graham Leggett]
116   *) core: Remove unintentional APR 1.3 dependency introduced with
117      Apache 2.2.22. [Eric Covener]
119   *) core: Use a TLS 1.0 close_notify alert for internal dummy connection if
120      the chosen listener is configured for https. [Joe Orton]
122   *) mod_ssl: Add new directive SSLCompression to disable TLS-level
123      compression. PR 53219. [Björn Jacke <bjoern j3e de>, Stefan Fritsch]
125 Changes with Apache 2.2.23
127   *) SECURITY: CVE-2012-0883 (cve.mitre.org)
128      envvars: Fix insecure handling of LD_LIBRARY_PATH that could lead to the
129      current working directory to be searched for DSOs. [Stefan Fritsch]
131   *) SECURITY: CVE-2012-2687 (cve.mitre.org)
132      mod_negotiation: Escape filenames in variant list to prevent a
133      possible XSS for a site where untrusted users can upload files to
134      a location with MultiViews enabled. [Niels Heinen <heinenn google.com>]
136   *) htdbm, htpasswd: Don't crash if crypt() fails (e.g. with FIPS enabled). 
137      [Paul Wouters <pwouters redhat.com>, Joe Orton]
139   *) mod_ldap: Treat the "server unavailable" condition as a transient
140      error with all LDAP SDKs. [Filip Valder <filip.valder vsb.cz>]
142   *) core: Add filesystem paths to access denied / access failed messages.
143      [Eric Covener]
145   *) core: Fix error handling in ap_scan_script_header_err_brigade() if there
146      is no EOS bucket in the brigade. PR 48272. [Stefan Fritsch]
148   *) core: Prevent "httpd -k restart" from killing server in presence of
149      config error. [Joe Orton]
151   *) mod_ssl: when compiled against OpenSSL 1.0.1 or later, allow explicit
152      control of TLSv1.1 and TLSv1.2 through the SSLProtocol directive,
153      adding TLSv1.1 and TLSv1.2 support by default given 'SSLProtocol All'.
154      [Kaspar Brand, William Rowe]
156   *) mod_log_config: Fix %{abc}C truncating cookie values at first "=".
157      PR 53104. [Greg Ames]
159   *) Unix MPMs: Fix small memory leak in parent process if connect()
160      failed when waking up children.  [Joe Orton]
162   *) mod_proxy_ajp: Add support for 'ProxyErrorOverride on'. PR 50945.
163      [Peter Pramberger <peter pramberger.at>, Jim Jagielski]
165   *) Added SSLProxyMachineCertificateChainFile directive so the proxy client
166      can select the proper client certificate when using a chain and the
167      remote server only lists the root CA as allowed.
169   *) mpm_event, mpm_worker: Remain active amidst prevalent child process
170      resource shortages.  [Jeff Trawick]
172   *) mod_rewrite: Add "AllowAnyURI" option. PR 52774. [Joe Orton]
174   *) mod_rewrite: Fix the RewriteEngine directive to work within a
175      location. Previously, once RewriteEngine was switched on globally,
176      it was impossible to switch off. [Graham Leggett]
178   *) mod_proxy_balancer: Restore balancing after a failed worker has
179      recovered when using lbmethod_bybusyness.  PR 48735.  [Jeff Trawick]
181   *) mod_dumpio: Properly handle errors from subsequent input filters.
182      PR 52914. [Stefan Fritsch]
184   *) mpm_worker: Fix cases where the spawn rate wasn't reduced after child
185      process resource shortages.  [Jeff Trawick]
187   *) mpm_prefork: Reduce spawn rate after a child process exits due to
188      unexpected poll or accept failure.  [Jeff Trawick]
190   *) core: Adjust ap_scan_script_header_err*() to prevent mod_cgi and mod_cgid
191      from logging bogus data in case of errors. [Stefan Fritsch]
193   *) mod_disk_cache, mod_mem_cache: Decline the opportunity to cache if the
194      response is a 206 Partial Content. This stops a reverse proxied partial
195      response from becoming cached, and then being served in subsequent
196      responses. PR 49113. [Graham Leggett]
198   *) configure: Fix usage with external apr and apu in non-default paths
199      and recent gcc versions >= 4.6. [Jean-Frederic Clere]
201   *) core: Fix building against PCRE 8.30 by switching from the obsolete
202      pcre_info() to pcre_fullinfo(). PR 52623 [Ruediger Pluem, Rainer Jung]
204   *) mod_proxy: Add the forcerecovery balancer parameter that determines if
205      recovery for balancer workers is enforced. [Ruediger Pluem]
207 Changes with Apache 2.2.22
209   *) SECURITY: CVE-2011-3368 (cve.mitre.org)
210      Reject requests where the request-URI does not match the HTTP
211      specification, preventing unexpected expansion of target URLs in
212      some reverse proxy configurations.  [Joe Orton]
214   *) SECURITY: CVE-2011-3607 (cve.mitre.org)
215      Fix integer overflow in ap_pregsub() which, when the mod_setenvif module
216      is enabled, could allow local users to gain privileges via a .htaccess
217      file. [Stefan Fritsch, Greg Ames]
219   *) SECURITY: CVE-2011-4317 (cve.mitre.org)
220      Resolve additional cases of URL rewriting with ProxyPassMatch or
221      RewriteRule, where particular request-URIs could result in undesired
222      backend network exposure in some configurations.
223      [Joe Orton]
225   *) SECURITY: CVE-2012-0021 (cve.mitre.org)
226      mod_log_config: Fix segfault (crash) when the '%{cookiename}C' log format
227      string is in use and a client sends a nameless, valueless cookie, causing
228      a denial of service. The issue existed since version 2.2.17. PR 52256.
229      [Rainer Canavan <rainer-apache 7val com>]
231   *) SECURITY: CVE-2012-0031 (cve.mitre.org)
232      Fix scoreboard issue which could allow an unprivileged child process 
233      to cause the parent to crash at shutdown rather than terminate 
234      cleanly.  [Joe Orton]
236   *) SECURITY: CVE-2012-0053 (cve.mitre.org)
237      Fix an issue in error responses that could expose "httpOnly" cookies
238      when no custom ErrorDocument is specified for status code 400.
239      [Eric Covener]
241   *) SECURITY: CVE-2012-4557 (cve.mitre.org)
242      mod_proxy_ajp: Try to prevent a single long request from marking a worker
243      in error. [Jean-Frederic Clere]
245   *) config: Update the default mod_ssl configuration: Disable SSLv2, only
246      allow >= 128bit ciphers, add commented example for speed optimized cipher
247      list, limit MSIE workaround to MSIE <= 5. [Kaspar Brand]
249   *) core: Fix segfault in ap_send_interim_response(). PR 52315.
250      [Stefan Fritsch]
252   *) mod_log_config: Prevent segfault. PR 50861. [Torsten F�rtsch
253      <torsten.foertsch gmx.net>]
255   *) mod_win32: Invert logic for env var UTF-8 fixing.
256      Now we exclude a list of vars which we know for sure they dont hold UTF-8
257      chars; all other vars will be fixed. This has the benefit that now also
258      all vars from 3rd-party modules will be fixed. PR 13029 / 34985.
259      [Guenter Knauf]
261   *) core: Fix hook sorting for Perl modules, a regression introduced in
262      2.2.21. PR: 45076. [Torsten Foertsch <torsten foertsch gmx net>]
264   *) Fix a regression introduced by the CVE-2011-3192 byterange fix in 2.2.20:
265      A range of '0-' will now return 206 instead of 200. PR 51878.
266      [Jim Jagielski]
268   *) Example configuration: Fix entry for MaxRanges (use "unlimited" instead
269      of "0").  [Rainer Jung]
271   *) mod_substitute: Fix buffer overrun.  [Ruediger Pluem, Rainer Jung]
273 Changes with Apache 2.2.21
275   *) SECURITY: CVE-2011-3348 (cve.mitre.org)
276      mod_proxy_ajp: Respond with HTTP_NOT_IMPLEMENTED when the method is not
277      recognized.  [Jean-Frederic Clere]
279   *) Fix a regression introduced by the CVE-2011-3192 byterange fix in 2.2.20.
280      PR 51748. [<lowprio20 gmail.com>]
282   *) mod_filter: Instead of dropping the Accept-Ranges header when a filter
283      registered with AP_FILTER_PROTO_NO_BYTERANGE is present,
284      set the header value to "none". [Eric Covener, Ruediger Pluem]
286   *) mod_proxy_ajp: Ignore flushing if headers have not been sent.
287      PR 51608 [Ruediger Pluem]
289   *) mod_dav_fs: Fix segfault if apr DBM driver cannot be loaded. PR 51751.
290      [Stefan Fritsch]
292   *) mod_alias: Adjust log severity of "incomplete redirection target"
293      message. PR 44020.
295   *) mod_rewrite: Check validity of each internal (int:) RewriteMap even if the
296      RewriteEngine is disabled in server context, avoiding a crash while
297      referencing the invalid int: map at runtime. PR 50994.
298      [Ben Noordhuis <info noordhuis nl>]
300   *) core: Allow MaxRanges none|unlimited|default and set 'Accept-Ranges: none'
301      in the case Ranges are being ignored with MaxRanges none.
302      [Eric Covener]
304   *) mod_proxy_ajp: Respect "reuse" flag in END_REPONSE packets.
305      [Rainer Jung]
307 Changes with Apache 2.2.20
309   *) SECURITY: CVE-2011-3192 (cve.mitre.org)
310      core: Fix handling of byte-range requests to use less memory, to avoid
311      denial of service. If the sum of all ranges in a request is larger than
312      the original file, ignore the ranges and send the complete file.
313      PR 51714. [Stefan Fritsch, Jim Jagielski, Ruediger Pluem, Eric Covener]
315   *) mod_authnz_ldap: If the LDAP server returns constraint violation,
316      don't treat this as an error but as "auth denied". [Stefan Fritsch]
318   *) mod_filter: Fix FilterProvider conditions of type "resp=" (response
319      headers) for CGI. [Joe Orton, Rainer Jung]
321   *) mod_reqtimeout: Fix a timed out connection going into the keep-alive
322      state after a timeout when discarding a request body. PR 51103.
323      [Stefan Fritsch]
325   *) core: Do the hook sorting earlier so that the hooks are properly sorted
326      for the pre_config hook and during parsing the config. [Stefan Fritsch]
328 Changes with Apache 2.2.19
330   *) Revert ABI breakage in 2.2.18 caused by the function signature change
331      of ap_unescape_url_keep2f().  This release restores the signature from
332      2.2.17 and prior, and introduces ap_unescape_url_keep2f_ex().
333      [Eric Covener]
335 Changes with Apache 2.2.18
337   *) Log an error for failures to read a chunk-size, and return 408 instead
338      413 when this is due to a read timeout.  This change also fixes some cases
339      of two error documents being sent in the response for the same scenario.
340      [Eric Covener] PR49167
342   *) core: Only log a 408 if it is no keepalive timeout. PR 39785
343      [Ruediger Pluem,  Mark Montague <markmont umich.edu>]
345   *) core: Treat timeout reading request as 408 error, not 400.
346      Log 408 errors in access log as was done in Apache 1.3.x.
347      PR 39785 [Nobutaka Mantani <nobutaka nobutaka.org>, Stefan Fritsch,
348      Dan Poirier]
350   *) Core HTTP: disable keepalive when the Client has sent
351      Expect: 100-continue
352      but we respond directly with a non-100 response.  Keepalive here led
353      to data from clients continuing being treated as a new request.
354      PR 47087.  [Nick Kew]
356   *) htpasswd: Change the default algorithm for htpasswd to MD5 on all
357      platforms. Crypt with its 8 character limit is not useful anymore;
358      improve out of disk space handling (PR 30877); print a warning if
359      a password is truncated by crypt. [Stefan Fritsch]
361   *) mod_win32: Added shebang check for '! so that .vbs scripts work as CGI.
362      Win32's cscript interpreter can only use a single quote as comment char.
363      [Guenter Knauf]
365   *) configure: Fix htpasswd/htdbm libcrypt link errors with some newer
366      linkers. [Stefan Fritsch]
368   *) MinGW build improvements.  PR 49535.  [John Vandenberg
369      <jayvdb gmail.com>, Jeff Trawick]
371   *) mod_ssl, ab: Support OpenSSL compiled without SSLv2 support.
372      [Stefan Fritsch]
374   *) core: AllowEncodedSlashes new option NoDecode to allow encoded slashes
375      in request URL path info but not decode them. PR 35256,
376      PR 46830.  [Dan Poirier]
378   *) mod_rewrite: Allow to unset environment variables. PR 50746.
379      [Rainer Jung]
381   *) suEXEC: Add Suexec directive to disable suEXEC without renaming the
382      binary (Suexec Off), or force startup failure if suEXEC is required
383      but not supported (Suexec On).  [Jeff Trawick]
385   *) mod_proxy: Put the worker in error state if the SSL handshake with the
386      backend fails. PR 50332.
387      [Daniel Ruggeri <DRuggeri primary.net>, Ruediger Pluem]
389   *) prefork: Update MPM state in children during a graceful restart.
390      Allow the HTTP connection handling loop to terminate early
391      during a graceful restart.  PR 41743.
392      [Andrew Punch <andrew.punch 247realmedia.com>]
394   *) mod_ssl: Correctly read full lines in input filter when the line is
395      incomplete during first read. PR 50481. [Ruediger Pluem]
397   *) mod_autoindex: Merge IndexOptions from server to directory context when
398      the directory has no mod_autoindex directives. PR 47766. [Eric Covener]
400   *) mod_cache: Make sure that we never allow a 304 Not Modified response
401      that we asked for to leak to the client should the 304 response be
402      uncacheable. PR45341 [Graham Leggett]
404   *) mod_dav: Send 400 error if malformed Content-Range header is received for
405      a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch]
407   *) mod_userdir: Add merging of enable, disable, and filename arguments
408      to UserDir directive, leaving enable/disable of userlists unmerged.
409      PR 44076 [Eric Covener]
411   *) core: Honor 'AcceptPathInfo OFF' during internal redirects,
412      such as per-directory mod_rewrite substitutions.  PR 50349.
413      [Eric Covener]
415   *) mod_cache: Check the request to determine whether we are allowed
416      to return cached content at all, and respect a "Cache-Control:
417      no-cache" header from a client. Previously, "no-cache" would
418      behave like "max-age=0". [Graham Leggett]
420   *) mod_mem_cache: Add a debug msg when a streaming response exceeds
421      MCacheMaxStreamingBuffer, since mod_cache will follow up with a scary
422      'memory allocation failed' debug message. PR 49604. [Eric Covener]
424   *) proxy_connect: Don't give up in the middle of a CONNECT tunnel
425      when the child process is starting to exit.  PR50220. [Eric Covener]
427 Changes with Apache 2.2.17
429   *) prefork MPM: Run cleanups for final request when process exits gracefully
430      to work around a flaw in apr-util.  PR 43857.  [Tom Donovan]
432   *) mod_reqtimeout: Do not wrongly enforce timeouts for mod_proxy's backend
433      connections and other protocol handlers (like mod_ftp). Enforce the
434      timeout for AP_MODE_GETLINE. If there is a timeout, shorten the lingering
435      close time from 30 to 2 seconds. [Stefan Fritsch]
437   *) Proxy balancer: support setting error status according to HTTP response
438      code from a backend.  PR 48939.  [Daniel Ruggeri <DRuggeri primary.net>]
440   *) mod_authnz_ldap: If AuthLDAPCharsetConfig is set, also convert the
441      password to UTF-8. PR 45318.
442      [Johannes Müller <joh_m gmx.de>, Stefan Fritsch]
444   *) core: check symlink ownership if both FollowSymlinks and
445      SymlinksIfOwnerMatch are set [Nick Kew]
447   *) core: fix origin checking in SymlinksIfOwnerMatch
448      PR 36783 [Robert L Mathews <rob-apache.org.bugs tigertech.net>]
450   *) mod_headers: Enable multi-match-and-replace edit option
451      PR 46594 [Nick Kew]
453   *) mod_log_config: Make ${cookie}C correctly match whole cookie names
454      instead of substrings. PR 28037. [Dan Franklin <dan dan-franklin.com>,
455      Stefan Fritsch]
457   *) mod_dir, mod_negotiation: Pass the output filter information
458      to newly created sub requests; as these are later on used
459      as true requests with an internal redirect. This allows for
460      mod_cache et.al. to trap the results of the redirect.
461      PR 17629, 43939
462      [Dirk-Willem van Gulik, Jim Jagielski, Joe Orton, Ruediger Pluem]
464   *) rotatelogs: Fix possible buffer overflow if admin configures a
465      mongo log file path. [Jeff Trawick]
467   *) mod_ssl: Do not do overlapping memcpy. PR 45444 [Joe Orton]
469   *) vhost: A purely-numeric Host: header should not be treated as a port.
470      PR 44979 [Nick Kew]
472   *) core: (re)-introduce -T commandline option to suppress documentroot
473      check at startup.
474      PR 41887 [Jan van den Berg <janvdberg gmail.com>]
476 Changes with Apache 2.2.16
478   *) SECURITY: CVE-2010-1452 (cve.mitre.org)
479      mod_dav, mod_cache: Fix Handling of requests without a path segment.
480      PR: 49246 [Mark Drayton, Jeff Trawick]
482   *) SECURITY: CVE-2010-2068 (cve.mitre.org)
483      mod_proxy_ajp, mod_proxy_http, mod_reqtimeout: Fix timeout detection
484      for platforms Windows, Netware and OS2.  PR: 49417. [Rainer Jung]
486   *) core: Filter init functions are now run strictly once per request
487      before handler invocation.  The init functions are no longer run
488      for connection filters.  PR 49328.  [Joe Orton]
490   *) mod_filter: enable it to act on non-200 responses.
491      PR 48377 [Nick Kew]
493   *) mod_ldap: LDAP caching was suppressed (and ldap-status handler returns
494      title page only) when any mod_ldap directives were used in VirtualHost
495      context.  [Eric Covener]
497   *) mod_ssl: Fix segfault at startup if proxy client certs are shared
498      across multiple vhosts.  PR 39915.  [Joe Orton]
500   *) mod_proxy_http: Log the port of the remote server in various messages.
501      PR 48812. [Igor Galić <i galic brainsware org>]
503   *) apxs: Fix -A and -a options to ignore whitespace in httpd.conf
504      [Philip M. Gollucci]
506   *) mod_dir: add FallbackResource directive, to enable admin to specify
507      an action to happen when a URL maps to no file, without resorting
508      to ErrorDocument or mod_rewrite.  PR 47184 [Nick Kew]
510   *) mod_rewrite: Allow to set environment variables without explicitly
511      giving a value. [Rainer Jung]
514 Changes with Apache 2.2.15
516   *) SECURITY: CVE-2009-3555 (cve.mitre.org)
517      mod_ssl: Comprehensive fix of the TLS renegotiation prefix injection
518      attack when compiled against OpenSSL version 0.9.8m or later. Introduces
519      the 'SSLInsecureRenegotiation' directive to reopen this vulnerability
520      and offer unsafe legacy renegotiation with clients which do not yet
521      support the new secure renegotiation protocol, RFC 5746.
522      [Joe Orton, and with thanks to the OpenSSL Team]
524   *) SECURITY: CVE-2009-3555 (cve.mitre.org)
525      mod_ssl: A partial fix for the TLS renegotiation prefix injection attack
526      for OpenSSL versions prior to 0.9.8l; reject any client-initiated
527      renegotiations. Forcibly disable keepalive for the connection if there
528      is any buffered data readable. Any configuration which requires
529      renegotiation for per-directory/location access control is still
530      vulnerable, unless using openssl 0.9.8l or later.
531      [Joe Orton, Ruediger Pluem, Hartmut Keil <Hartmut.Keil adnovum.ch>]
533   *) SECURITY: CVE-2010-0408 (cve.mitre.org)
534      mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent
535      when request headers indicate a request body is incoming; not a case of
536      HTTP_INTERNAL_SERVER_ERROR.  [Niku Toivola <niku.toivola sulake.com>]
538   *) SECURITY: CVE-2010-0425 (cve.mitre.org)
539      mod_isapi: Do not unload an isapi .dll module until the request
540      processing is completed, avoiding orphaned callback pointers.
541      [Brett Gervasoni <brettg senseofsecurity.com>, Jeff Trawick]
543   *) SECURITY: CVE-2010-0434 (cve.mitre.org)
544      Ensure each subrequest has a shallow copy of headers_in so that the
545      parent request headers are not corrupted.  Eliminates a problematic
546      optimization in the case of no request body.  PR 48359.
547      [Jake Scott, William Rowe, Ruediger Pluem]
549   *) mod_reqtimeout: New module to set timeouts and minimum data rates for
550      receiving requests from the client. [Stefan Fritsch]
552   *) mod_proxy_ajp: Really regard the operation a success, when the client
553      aborted the connection. In addition adjust the log message if the client
554      aborted the connection. [Ruediger Pluem]
556   *) mod_negotiation: Preserve query string over multiviews negotiation.
557      This buglet was fixed for type maps in 2.2.6, but the same issue
558      affected multiviews and was overlooked.
559      PR 33112.  [Joergen Thomsen <apache jth.net>]
561   *) mod_cache: Introduce the thundering herd lock, a mechanism to keep
562      the flood of requests at bay that strike a backend webserver as
563      a cached entity goes stale. [Graham Leggett]
565   *) mod_proxy_http: Make sure that when an ErrorDocument is served
566      from a reverse proxied URL, that the subrequest respects the status
567      of the original request. This brings the behaviour of proxy_handler
568      in line with default_handler. PR 47106. [Graham Leggett]
570   *) mod_log_config: Add the R option to log the handler used within the
571      request. [Christian Folini <christian.folini netnea com>]
573   *) mod_include: Allow fine control over the removal of Last-Modified and
574      ETag headers within the INCLUDES filter, making it possible to cache
575      responses if desired. Fix the default value of the SSIAccessEnable
576      directive. [Graham Leggett]
578   *) mod_ssl: Fix a potential I/O hang if a long list of trusted CAs
579      is configured for client cert auth. PR 46952.  [Joe Orton]
581   *) core: Fix potential memory leaks by making sure to not destroy
582      bucket brigades that have been created by earlier filters.
583      [Stefan Fritsch]
585   *) mod_authnz_ldap: Add AuthLDAPBindAuthoritative to allow Authentication to
586      try other providers in the case of an LDAP bind failure.
587      PR 46608.  [Justin Erenkrantz, Joe Schaefer, Tony Stevenson]
589   *) mod_proxy, mod_proxy_http: Support remote https proxies
590      by using HTTP CONNECT.
591      PR 19188.  [Philippe Dutrueux <lilas evidian.com>, Rainer Jung]
593   *) worker: Don't report server has reached MaxClients until it has.
594      Add message when server gets within MinSpareThreads of MaxClients.
595      PR 46996.  [Dan Poirier]
597   *) mod_ssl: When extracting certificate subject/issuer names to the
598      SSL_*_DN_* variables, handle RDNs with duplicate tags by
599      exporting multiple varialables with an "_n" integer suffix.
600      PR 45875.  [Joe Orton, Peter Sylvester <peter.sylvester edelweb.fr>]
602   *) mod_authnz_ldap: Failures to map a username to a DN, or to check a user
603      password now result in an informational level log entry instead of
604      warning level.  [Eric Covener]
606   *) core: Preserve Port information over internal redirects
607      PR 35999.  [Jonas Ringh <jonas.ringh cixit.se>]
609   *) mod_filter: fix FilterProvider matching where "dispatch" string
610      doesn't exist.
611      PR 48054.  [<tietew gmail.com>]
613   *) Build: fix --with-module to work as documented
614      PR 43881.  [Gez Saunders <gez.saunders virgin.net>]
616   *) mod_mime: Make RemoveType override the info from TypesConfig.
617      PR 38330.  [Stefan Fritsch]
619   *) mod_proxy: unable to connect to a backend is SERVICE_UNAVAILABLE,
620      rather than BAD_GATEWAY or (especially) NOT_FOUND.
621      PR 46971.  [Evan Champion <evanc nortel.com>]
623   *) mod_charset_lite: Honor 'CharsetOptions NoImplicitAdd'.
624      [Eric Covener]
626   *) mod_ldap: If LDAPSharedCacheSize is too small, try harder to purge
627      some cache entries and log a warning. Also increase the default
628      LDAPSharedCacheSize to 500000. This is a more realistic size suitable
629      for the default values of 1024 for LdapCacheEntries/LdapOpCacheEntries.
630      PR 46749.  [Stefan Fritsch]
632   *) mod_disk_cache, mod_mem_cache: don't cache incomplete responses,
633      per RFC 2616, 13.8.  PR15866.  [Dan Poirier]
635   *) mod_rewrite: Make sure that a hostname:port isn't fully qualified if
636      the request is a CONNECT request.  PR 47928.
637      [Bill Zajac <billz consultla.com>]
639   *) mod_cache: correctly consider s-maxage in cacheability
640      decisions.  [Dan Poirier]
642   *) core: Return APR_EOF if request body is shorter than the length announced
643      by the client. PR 33098.  [Stefan Fritsch]
645   *) mod_rewrite: Add scgi scheme detection.  [André Malo]
647   *) mod_mime: Detect invalid use of MultiviewsMatch inside Location and
648      LocationMatch sections.  PR 47754.  [Dan Poirier]
650   *) ab, mod_ssl: Restore compatibility with OpenSSL < 0.9.7g.
651      [Guenter Knauf]
653 Changes with Apache 2.2.14
655   *) SECURITY: CVE-2009-2699 (cve.mitre.org)
656      Fixed in APR 1.3.9.  Faulty error handling in the Solaris pollset support
657      (Event Port backend) which could trigger hangs in the prefork and event
658      MPMs on that platform.  PR 47645.  [Jeff Trawick]
660   *) SECURITY: CVE-2009-3095 (cve.mitre.org)
661      mod_proxy_ftp: sanity check authn credentials.
662      [Stefan Fritsch <sf fritsch.de>, Joe Orton]
664   *) SECURITY: CVE-2009-3094 (cve.mitre.org)
665      mod_proxy_ftp: NULL pointer dereference on error paths.
666      [Stefan Fritsch <sf fritsch.de>, Joe Orton]
668   *) mod_proxy_scgi: Backport from trunk. [André Malo]
670   *) mod_ldap: Don't try to resolve file-based user ids to a DN when AuthLDAPURL
671      has been defined at a very high level.  PR 45946.  [Eric Covener]
673   *) htcacheclean: 19 ways to fail, 1 error message. Fixed. [Graham Leggett]
675   *) mod_ldap: Bring the LDAPCacheEntries and LDAPOpCacheEntries
676      usage() in synch with the manual and the implementation (0 and -1
677      both disable the cache). [Eric Covener]
679   *) mod_ssl: The error message when SSLCertificateFile is missing should
680      at least give the name or position of the problematic virtual host
681      definition. [Stefan Fritsch sf sfritsch.de]
683   *) htdbm: Fix possible buffer overflow if dbm database has very
684      long values.  PR 30586 [Dan Poirier]
686   *) Add support for HTTP PUT to ab. [Jeff Barnes <jbarnesweb yahoo.com>]
688   *) mod_ssl: Fix SSL_*_DN_UID variables to use the 'userID' attribute
689      type.  PR 45107.  [Michael Ströder <michael stroeder.com>,
690      Peter Sylvester <peter.sylvester edelweb.fr>]
692   *) mod_cache: Add CacheIgnoreURLSessionIdentifiers directive to ignore
693      defined session identifiers encoded in the URL when caching.
694      [Ruediger Pluem]
696   *) mod_mem_cache: fix seg fault under load due to pool concurrency problem
697      PR: 47672 [Dan Poirier <poirier pobox.com>]
699   *) mod_autoindex: Correctly create an empty cell if the description
700      for a file is missing. PR 47682 [Peter Poeml <poeml suse.de>]
702 Changes with Apache 2.2.13
704   *) SECURITY: CVE-2009-2412 (cve.mitre.org)
705      Distributed with APR 1.3.8 and APR-util 1.3.9 to fix potential overflow
706      in pools and rmm, where size alignment was taking place.
707      [Matt Lewis <mattlewis@google.com>, Sander Striker]
709   *) mod_ssl, ab: improve compatibility with OpenSSL 1.0.0 betas.  Report
710      warnings compiling mod_ssl against OpenSSL to the httpd developers.
711      [Guenter Knauf]
713   *) mod_cgid: Do not add an empty argument when calling the CGI script.
714      PR 46380 [Ruediger Pluem]
716   *) Fix potential segfaults with use of the legacy ap_rputs() etc
717      interfaces, in cases where an output filter fails.  PR 36780.
718      [Joe Orton]
720 Changes with Apache 2.2.12
722   *) SECURITY: CVE-2009-1891 (cve.mitre.org)
723      Fix a potential Denial-of-Service attack against mod_deflate or other
724      modules, by forcing the server to consume CPU time in compressing a
725      large file after a client disconnects.  PR 39605.
726      [Joe Orton, Ruediger Pluem]
728   *) SECURITY: CVE-2009-1195 (cve.mitre.org)
729      Prevent the "Includes" Option from being enabled in an .htaccess
730      file if the AllowOverride restrictions do not permit it.
731      [Jonathan Peatfield <j.s.peatfield damtp.cam.ac.uk>, Joe Orton,
732       Ruediger Pluem, Jeff Trawick]
734   *) SECURITY: CVE-2009-1890 (cve.mitre.org)
735      Fix a potential Denial-of-Service attack against mod_proxy in a
736      reverse proxy configuration, where a remote attacker can force a
737      proxy process to consume CPU time indefinitely.  [Nick Kew, Joe Orton]
739   *) SECURITY: CVE-2009-1191 (cve.mitre.org)
740      mod_proxy_ajp: Avoid delivering content from a previous request which
741      failed to send a request body. PR 46949 [Ruediger Pluem]
743   *) SECURITY: CVE-2009-0023, CVE-2009-1955, CVE-2009-1956 (cve.mitre.org)
744      The bundled copy of the APR-util library has been updated, fixing three
745      different security issues which may affect particular configurations
746      and third-party modules.
748   *) mod_headers: Make 'Header set Content-Type' effective on responses
749      that already have a Content-Type.  [Issac Goldstand]
751   *) mod_include: fix potential segfault when handling back references
752      on an empty SSI variable. [Ruediger Pluem, Lars Eilebrecht, Nick Kew]
754   *) mod_alias: check sanity in Redirect arguments.
755      PR 44729 [Sönke Tesch <st kino-fahrplan.de>, Jim Jagielski]
757   *) mod_proxy_http: fix Host: header for literal IPv6 addresses.
758      PR 47177 [Carlos Garcia Braschi <cgbraschi gmail.com>]
760   *) mod_rewrite: Remove locking for writing to the rewritelog.
761      PR 46942
763   *) mod_alias: Ensure Redirect emits HTTP-compliant URLs.
764      PR 44020
766   *) mod_proxy_http: fix case sensitivity checking transfer encoding
767      PR 47383 [Ryuzo Yamamoto <ryuzo.yamamoto gmail.com>]
769   *) mod_rewrite: Fix the error string returned by RewriteRule.
770      RewriteRule returned "RewriteCond: bad flag delimiters" when the 3rd
771      argument of RewriteRule was not started with "[" or not ended with "]".
772      PR 45082 [Vitaly Polonetsky <m_vitaly topixoft.com>]
774   *) mod_proxy: Complete ProxyPassReverse to handle balancer URL's.  Given;
775        BalancerMember balancer://alias http://example.com/foo
776        ProxyPassReverse /bash balancer://alias/bar
777      backend url http://example.com/foo/bar/that is now translated /bash/that
778      [William Rowe]
780   *) New piped log syntax: Use "||process args" to launch the given process
781      without invoking the shell/command interpreter.  Use "|$command line"
782      (the default behavior of "|command line" in 2.2) to invoke using shell,
783      consuming an additional shell process for the lifetime of the logging
784      pipe program but granting additional process invocation flexibility.
785      [William Rowe]
787   *) mod_ssl: Add server name indication support (RFC 4366) and better
788      support for name based virtual hosts with SSL. PR 34607
789      [Peter Sylvester <peter.sylvester edelweb.fr>,
790       Kaspar Brand <asfbugz velox.ch>, Guenter Knauf, Joe Orton,
791       Ruediger Pluem]
793   *) mod_negotiation: Escape pathes of filenames in 406 responses to avoid
794      HTML injections and HTTP response splitting.  PR 46837.
795      [Geoff Keating <geoffk apple.com>]
797   *) mod_include: Prevent a case of SSI timefmt-smashing with filter chains
798      including multiple INCLUDES filters. PR 39369 [Joe Orton]
800   *) mod_rewrite: When evaluating a proxy rule in directory context, do
801      escape the filename by default. PR 46428 [Joe Orton]
803   *) mod_proxy_ajp: Check more strictly that the backend follows the AJP
804      protocol. [Mladen Turk]
806   *) mod_ssl: Add SSLProxyCheckPeerExpire and SSLProxyCheckPeerCN directives
807      to enable stricter checking of remote server certificates.
808      [Ruediger Pluem]
810   *) mod_substitute: Fix a memory leak. PR 44948
811      [Dan Poirier <poirier pobox.com>]
813   *) mod_proxy_ajp: Forward remote port information by default.
814      [Rainer Jung]
816   *) mod_disk_cache/mod_mem_cache: Fix handling of CacheIgnoreHeaders
817      directive to correctly remove headers before storing them.
818      [Lars Eilebrecht]
820   *) mod_deflate: revert changes in 2.2.8 that caused an invalid
821      etag to be emitted for on-the-fly gzip content-encoding.
822      PR 39727 will require larger fixes and this fix was far more
823      harmful than the original code. PR 45023. [Roy T. Fielding]
825   *) mod_disk_cache: The module now turns off sendfile support if
826      'EnableSendfile off' is defined globally. PR 41218.
827      [Lars Eilebrecht, Issac Goldstand]
829   *) prefork: Fix child process hang during graceful restart/stop in
830      configurations with multiple listening sockets.  PR 42829.  [Joe Orton,
831      Jeff Trawick]
833   *) mod_ssl: Add SSLRenegBufferSize directive to allow changing the
834      size of the buffer used for the request-body where necessary
835      during a per-dir renegotiation.  PR 39243.  [Joe Orton]
837   *) mod_rewrite: Introduce DiscardPathInfo|DPI flag to stop the troublesome
838      way that per-directory rewrites append the previous notion of PATH_INFO
839      to each substitution before evaluating subsequent rules.
840      PR38642 [Eric Covener]
842   *) mod_authnz_ldap: Reduce number of initialization debug messages and make
843      information more clear. PR 46342 [Dan Poirier]
845   *) mod_cache: Introduce 'no-cache' per-request environment variable
846      to prevent the saving of an otherwise cacheable response.
847      [Eric Covener]
849   *) core: Translate the status line to ASCII on EBCDIC platforms in
850      ap_send_interim_response() and for locally generated "100 Continue"
851      responses.  [Eric Covener]
853   *) CGI: return 504 (Gateway timeout) rather than 500 when a script
854      times out before returning status line/headers.
855      PR 42190 [Nick Kew]
857   *) prefork: Log an error instead of segfaulting when child startup fails
858      due to pollset creation failures.  PR 46467.  [Jeff Trawick]
860   *) mod_ext_filter: fix error handling when the filter prog fails to start,
861      and introduce an onfail configuration option to abort the request
862      or to remove the broken filter and continue.
863      PR 41120 [Nick Kew]
865   *) mod_include: support generating non-ASCII characters as entities in SSI
866      PR 25202 [Nick Kew]
868   *) core/utils: Enhance ap_escape_html API to support escaping non-ASCII
869      chars [Nick Kew]
871   *) mod_rewrite: fix "B" flag breakage by reverting r589343
872      PR 45529 [Bob Ionescu <bobsiegen googlemail.com>]
874   *) mod_cgid: fix segfault problem on solaris.
875      PR 39332 [Masaoki Kobayashi <masaoki techfirm.co.jp>, Jeff Trawick]
877   *) mod_ldap: Avoid a segfault when result->rc is checked in
878      uldap_connection_init when result is NULL. This could happen if LDAP
879      initialization failed.  PR 45994. [Dan Poirier <poirier pobox.com>]
881   *) Set Listen protocol to "https" if port is set to 443 and no proto is
882      specified (as documented but not implemented). PR 46066
883      [Dan Poirier <poirier pobox.com>]
885   *) mod_cache: Correctly save Content-Encoding of cachable entity. PR 46401
886      [Dan Poirier <poirier pobox.com>]
888   *) Output -M and -S dumps (modules and vhosts) to stdout instead of stderr.
889      PR 42571 and PR 44266 (dup).  [Dan Poirier <poirier pobox.com>]
891   *) mod_cache: When an explicit Expires or Cache-Control header is set, cache
892      normally non-cacheable response statuses. PR 46346.
893      [Alex Polvi <alex polvi.net>]
895 Changes with Apache 2.2.11
897   *) core: When the ap_http_header_filter processes an error bucket, cleanup
898      the passed brigade before returning AP_FILTER_ERROR down the filter
899      chain. This unambiguously ensures the same error bucket isn't revisited
900      [Ruediger Pluem]
902   *) core: Error responses set by filters were being coerced into 500 errors,
903      sometimes appended to the original error response. Log entry of:
904      'Handler for (null) returned invalid result code -3'
905      [Eric Covener]
907   *) configure: Don't reject libtool 2.x
908      PR 44817 [Arfrever Frehtes Taifersar Arahesis <Arfrever.FTA gmail.com>]
910   *) mod_autoindex: add configuration option to insert string
911      in HTML HEAD (IndexHeadInsert). [Nick Kew]
913   *) Add new LogFormat parameter, %k, which logs the number of
914      keepalive requests on this connection for this request.
915      PR 45762 [Dan Poirier <poirier pobox.com>, Jim Jagielski]
917   *) Export and install the mod_rewrite.h header to ensure the optional
918      rewrite_mapfunc_t and ap_register_rewrite_mapfunc functions are
919      available to third party modules. [Graham Leggett]
921   *) mod_cache: Convert age of cached object to seconds before comparing it to
922      age supplied by the request when checking whether to send a Warning
923      header for a stale response. PR 39713. [Owen Taylor <otaylor redhat.com>]
925   *) Build: Correctly set SSL_LIBS during openssl detection if pkgconfig is
926      not available. PR 46018 [Ruediger Pluem]
928   *) mod_proxy_ajp: Do not fail if response data is sent before all request
929      data is read. PR 45911 [Ruediger Pluem]
931   *) mod_proxy_balancer: Add in forced recovery for balancer members if
932      all are in error state. [Mladen Turk]
934   *) mod_proxy: Prevent segmentation faults by correctly adjusting the
935      lifetime of the buckets read from the proxy backend. PR 45792
936      [Ruediger Pluem]
938   *) mod_expires: Do not sets negative max-age / Expires header in the past.
939      PR 39774 [Jim Jagielski]
941   *) mod_info: Was displaying the wrong value for the KeepAliveTimeout
942      value. [Jim Jagielski]
944   *) mod_proxy_ajp: Fix wrongly formatted requests where client
945      sets Content-Length header, but doesn't provide a body.
946      Servlet container always expects that next packet is
947      body whenever C-L is present in the headers. This can lead
948      to wrong interpretation of the packets. In this case
949      send the empty body packet, so container can deal with
950      that. [Mladen Turk]
952   *) core: Add ap_timeout_parameter_parse to public API. [Ruediger Pluem]
954   *) mod_proxy: Add the possibility to set the worker parameters
955      connectiontimeout and ping in milliseconds. [Ruediger Pluem]
957   *) Worker MPM: Crosscheck that idle workers are still available before using
958      them and thus preventing an overflow of the worker queue which causes
959      a SegFault. PR 45605 [Denis Ustimenko <denusk gmail.com>]
961   *) Windows: Always build the odbc dbd driver on windows, to be consistent
962      with the apr-util default. [Tom Donovan]
964 Changes with Apache 2.2.10
966   *) SECURITY: CVE-2008-2939 (cve.mitre.org)
967      mod_proxy_ftp: Prevent XSS attacks when using wildcards in the path of
968      the FTP URL. Discovered by Marc Bevand of Rapid7. [Ruediger Pluem]
970   *) Allow for smax to be 0 for balancer members so that all idle
971      connections are able to be dropped should they exceed ttl.
972      PR 43371 [Phil Endecott <spam_from_apache_bugzilla chezphil.org>,
973      Jim Jagielski]
975   *) mod_proxy_http: Don't trigger a retry by the client if a failure to
976      read the response line was the result of a timeout.
977      [Adam Woodworth <mirkperl gmail.com>]
979   *) Support chroot on Unix-family platforms
980      PR 43596 [Dimitar Pashev <mitko banksoft-bg.com>]
982   *) mod_ssl: implement dynamic mutex callbacks for the benefit of
983      OpenSSL.  [Sander Temme]
985   *) mod_proxy_balancer: Add 'bybusyness' load balance method.
986      [Joel Gluth <joelgluth yahoo.com.au>, Jim Jagielski]
988   *) mod_authn_alias: Detect during startup when AuthDigestProvider
989      is configured to use an incompatible provider via AuthnProviderAlias.
990      PR 45196 [Eric Covener]
992   *) mod_proxy: Add 'scolonpathdelim' parameter to allow for ';' to also be
993      used as a session path separator/delim  PR 45158. [Jim Jagielski]
995   *) mod_charset_lite: Avoid dropping error responses by handling meta buckets
996      correctly. PR 45687 [Dan Poirier <poirier pobox.com>]
998   *) mod_proxy_http: Introduce environment variable proxy-initial-not-pooled
999      to avoid reusing pooled connections if the client connection is an
1000      initial connection. PR 37770. [Ruediger Pluem]
1002   *) mod_rewrite: Allow Cookie option to set secure and HttpOnly flags.
1003      PR 44799 [Christian Wenz <christian wenz.org>]
1005   *) mod_ssl: Rewrite shmcb to avoid memory alignment issues.  PR 42101.
1006      [Geoff Thorpe]
1008   *) mod_proxy: Add connectiontimeout parameter for proxy workers in order to
1009      be able to set the timeout for connecting to the backend separately.
1010      PR 45445. [Ruediger Pluem, rahul <rahul sun.com>]
1012   *) mod_dav_fs: Retrieve minimal system information about directory
1013      entries when walking a DAV fs, resolving a performance degradation on
1014      Windows.  PR 45464.  [Joe Orton, Jeff Trawick]
1016   *) mod_cgid: Pass along empty command line arguments from an ISINDEX
1017      query that has consecutive '+' characters in the QUERY_STRING,
1018      matching the behavior of mod_cgi.
1019      [Eric Covener]
1021   *) mod_headers: Prevent Header edit from processing only the first header
1022      of possibly multiple headers with the same name and deleting the
1023      remaining ones. PR 45333.  [Ruediger Pluem]
1025   *) mod_proxy_balancer: Move nonce field in the balancer manager page inside
1026      the html form where it belongs. PR 45578. [Ruediger Pluem]
1028   *) mod_proxy_http: Do not forward requests with 'Expect: 100-continue' to
1029      known HTTP/1.0 servers. Return 'Expectation failed' (417) instead.
1030      [Ruediger Pluem]
1032   *) mod_rewrite: Preserve the query string when [proxy,noescape]. PR 45247.
1033      [Tom Donovan]
1035 Changes with Apache 2.2.9
1037   *) SECURITY: CVE-2008-2364 (cve.mitre.org)
1038      mod_proxy_http: Better handling of excessive interim responses
1039      from origin server to prevent potential denial of service and high
1040      memory usage. Reported by Ryujiro Shibuya. [Ruediger Pluem,
1041      Joe Orton, Jim Jagielski]
1043   *) SECURITY: CVE-2007-6420 (cve.mitre.org)
1044      mod_proxy_balancer: Prevent CSRF attacks against the balancer-manager
1045      interface.  [Joe Orton]
1047   *) core: Fix address-in-use startup failure on some platforms caused
1048      by creating an IPv4 listener which overlaps with an existing IPv6
1049      listener.  [Jeff Trawick]
1051   *) mod_proxy: Make all proxy modules nocanon aware and do not add the
1052      query string again in this case. PR 44803.
1053      [Jim Jagielski, Ruediger Pluem]
1055   *) mod_unique_id: Fix timestamp value in UNIQUE_ID.
1056      PR 37064 [Kobayashi <kobayashi firstserver.co.jp>]
1058   *) htpasswd: Fix salt generation weakness. PR 31440
1059      [Andreas Krennmair <ak synflood.at>, Peter Watkins <peterw tux.org>,
1060      Paul Querna]
1062   *) core: Add the filename of the configuration file to the warning message
1063      about the useless use of AllowOverride. PR 39992.
1064      [Darryl Miles <darryl darrylmiles.org>]
1066   *) scoreboard: Remove unused proxy load balancer elements from scoreboard
1067      image (not scoreboard memory itself).  [Chris Darroch]
1069   *) mod_proxy: Support environment variable interpolation in reverse
1070      proxying directives. [Nick Kew]
1072   *) suexec: When group is given as a numeric gid, validate it by looking up
1073      the actual group name such that the name can be used in log entries.
1074      PR 7862 [<y-koga apache.or.jp>, Leif W <warp-9.9 usa.net>]
1076   *) Fix garbled TRACE response on EBCDIC platforms.
1077      [David Jones <oscaremma gmail.com>]
1079   *) ab: Include <limits.h> earlier if available since we may need
1080      INT_MAX (defined there on Windows) for the definition of MAX_REQUESTS.
1081      PR 45024 [Ruediger Pluem]
1083   *) ab: Improve client performance by clearing connection pool instead
1084      of destroying it. PR 40054 [Brad Roberts <braddr puremagic.com>]
1086   *) ab: Don't stop sending a request if EAGAIN is returned, which
1087      will only happen if both the write and subsequent wait are
1088      returning EAGAIN, and count posted bytes correctly when the initial
1089      write of a request is not complete. PR 10038, 38861, 39679
1090      [Patrick McManus <mcmanus datapower.com>,
1091       Stefan Fleiter <stefan.fleiter web.de>,
1092       Davanum Srinivas, Roy T. Fielding]
1094   *) ab: Overhaul stats collection and reporting to avoid integer
1095      truncation and time divisions within the test loop, retain
1096      native time resolution until output, remove unused data,
1097      consistently round milliseconds, and generally avoid losing
1098      accuracy of calculation due to type casts. PR 44878, 44931.
1099      [Roy T. Fielding]
1101   *) ab: Add -r option to continue after socket receive errors.
1102      [Filip Hanik <devlist hanik.com>]
1104   *) core: Do not allow Options ALL if not all options are allowed to be
1105      overwritten. PR 44262 [Michał Grzędzicki <lazy iq.pl>]
1107   *) mod_cache: Handle If-Range correctly if the cached resource was stale.
1108      PR 44579 [Ruediger Pluem]
1110   *) mod_proxy: Do not try a direct connection if the connection via a
1111      remote proxy failed before and the request has a request body.
1112      [Ruediger Pluem]
1114   *) mod_proxy_ajp: Do not retry request in the case that we either failed to
1115      sent a part of the request body or if the request is not idempotent.
1116      PR 44334 [Ruediger Pluem]
1118   *) mod_rewrite: Initialize hash needed by ap_register_rewrite_mapfunc early
1119      enough. PR 44641 [Daniel Lescohier <daniel.lescohier cnet.com>]
1121   *) mod_dav: Return "method not allowed" if the destination URI of a WebDAV
1122      copy / move operation is no DAV resource. PR 44734 [Ruediger Pluem]
1124   *) http_filters: Don't return 100-continue on redirects. PR 43711
1125      [Ruediger Pluem]
1127   *) mod_ssl: Fix a memory leak with connections that have zlib compression
1128      turned on. PR 44975 [Joe Orton, Amund Elstad <Amund.Elstad ist.com>,
1129      Dr Stephen Henson <steve openssl.org>]
1131   *) mod_proxy: Trigger a retry by the client in the case we fail to read the
1132      response line from the backend by closing the connection to the client.
1133      PR 37770 [Ruediger Pluem]
1135   *) gen_test_char: add double-quote to the list of T_HTTP_TOKEN_STOP.
1136      PR 9727 [Ville Skytt <ville.skytta iki.fi>]
1138   *) core: reinstate location walk to fix config for subrequests
1139      PR 41960 [Jose Kahan <jose w3.org>]
1141   *) rotatelogs: Log the current file size and error code/description
1142      when failing to write to the log file.  [Jeff Trawick]
1144   *) rotatelogs: Added '-f' option to force rotatelogs to create the
1145      logfile as soon as started, and not wait until it reads the
1146      first entry. [Jim Jagielski]
1148   *) rotatelogs: Don't leak memory when reopening the logfile.
1149      PR 40183 [Ruediger Pluem, Takashi Sato <serai lans-tv.com>]
1151   *) rotatelogs: Improve atomicity when using -l and cleaup code.
1152      PR 44004 [Rainer Jung]
1154   *) mod_authn_dbd: Disambiguate and tidy database authentication
1155      error messages.  PR 43210.  [Chris Darroch, Phil Endecott
1156      <spam_from_apache_bugzilla chezphil.org>]
1158   *) mod_headers: Add 'merge' option to avoid duplicate values within
1159      the same header. [Chris Darroch]
1161   *) mod_cgid: Explicitly set permissions of the socket (ScriptSock) shared by
1162      mod_cgid and request processing threads, for OS'es such as HPUX and AIX
1163      that do not use umask for AF_UNIX socket permissions.
1164      [Eric Covener, Jeff Trawick]
1166   *) mod_cgid: Don't try to restart the daemon if it fails to initialize
1167      the socket.  [Jeff Trawick]
1169   *) mod_log_config: Add format options for %p so that the actual local
1170      or remote port can be logged.  PR 43415.  [Adam Hasselbalch Hansen
1171      <ahh@one.com>, Ruediger Pluem, Jeff Trawick]
1173   *) Added 'disablereuse' option for ProxyPass which, essentially,
1174      disables connection pooling for the backend servers.
1175      [Jim Jagielski]
1177   *) mod_speling: remove regression from 1.3/2.0 behavior and
1178      drop dependency between mod_speling and AcceptPathInfo.
1179      PR 43562 [Jose Kahan <jose w3.org>]
1181   *) mod_substitute: The default is now flattening the buckets after
1182      each substitution. The newly added 'q' flag allows for the
1183      quicker, more efficient bucket-splitting if the user so
1184      desires. [Jim Jagielski]
1186   *) http_filters: Don't spin if get an error when reading the
1187      next chunk. PR 44381 [Ruediger Pluem]
1189   *) ab: Do not try to read non existing response bodies of HEAD requests.
1190      PR 34275 [Takashi Sato <serai lans-tv.com>]
1192   *) ab: Use a 64 bit unsigned int instead of a signed long to count the
1193      bytes transferred to avoid integer overflows. PR 44346 [Ruediger Pluem]
1195   *) ProxyPassReverse is now balancer aware. [Jim Jagielski]
1197   *) mod_include: Correctly handle SSI directives split over multiple filter
1198      passes.  PR 44447 [Harald Niesche <harald brokenerror.de>]
1200   *) mod_cache: Revalidate cache entities which have Cache-Control: no-cache
1201      set in their response headers. PR 44511 [Ruediger Pluem]
1203   *) mod_rewrite: Check all files used by DBM maps for freshness, mod_rewrite
1204      didn't pick up on updated sdbm maps due to this.
1205      PR41190 [Niklas Edmundsson]
1207   *) mod_proxy: Lower memory consumption for short lived connections.
1208      PR 44026. [Ruediger Pluem]
1210   *) mod_proxy: Keep connections to the backend persistent in the HTTPS case.
1211      [Ruediger Pluem]
1213   *) Don't add bogus duplicate Content-Language entries
1214      PR 11035 [Davi Arnaut]
1216   *) Worker / Event MPM: Fix race condition in pool recycling that leads to
1217      segmentation faults under load.  PR 44402
1218      [Basant Kumar Kukreja <basant.kukreja sun.com>]
1220   *) mod_proxy_ftp: Fix base for directory listings.
1221      PR 27834 [Nick Kew]
1223   *) mod_logio: Provide optional function to allow modules to adjust the
1224      bytes_in count [Eric Covener]
1226   *) http_filters: Don't return 100-continue on client error
1227      PR 43711 [Chetan Reddy <chetanreddy gmail.com>]
1229   *) mod_charset_lite: Add TranslateAllMimeTypes sub-option to
1230      CharsetOptions, allowing the administrator to skip the
1231      mimetype checking that precedes translation.
1232      PR 44458 [Eric Covener]
1234   *) mod_proxy_http: Fix processing of chunked responses if
1235      Connection: Transfer-Encoding is set in the response of the proxied
1236      system. PR 44311 [Ruediger Pluem]
1238   *) mod_proxy_http: Return HTTP status codes instead of apr_status_t
1239      values for errors encountered while forwarding the request body
1240      PR 44165 [Eric Covener]
1242   *) mod_rewrite: Don't canonicalise URLs with [P,NE]
1243      PR 43319 [<rahul sun.com>]
1245 Changes with Apache 2.2.8
1247   *) core: Fix regression in 2.2.7 in chunk filtering with massively
1248      chunked requests.  [Ruediger Pluem, Nick Kew]
1250   *) winnt_mpm: Resolve modperl issues by redirecting console mode stdout
1251      to /Device/Nul as the server is starting up, mirroring unix MPM's.
1252      PR: 43534  [Tom Donovan <Tom.Donovan acm.org>, William Rowe]
1254   *) winnt_mpm: Restore Win32DisableAcceptEx On directive and Win9x platform
1255      by recreating the bucket allocator each time the trans pool is cleared.
1256      PR: 11427 #16 (follow-on)  [Tom Donovan <Tom.Donovan acm.org>]
1258   *) mod_dav: Fix evaluation of If-Match * and If-None-Match * conditionals.
1259      PR 38034 [Paritosh Shah <shah.paritosh gmail.com>]
1261 Changes with Apache 2.2.7 (not released)
1263   *) SECURITY: CVE-2007-6421 (cve.mitre.org)
1264      mod_proxy_balancer: Correctly escape the worker route and the worker
1265      redirect string in the HTML output of the balancer manager.
1266      Reported by SecurityReason. [Ruediger Pluem]
1268   *) SECURITY: CVE-2007-6422 (cve.mitre.org)
1269      Prevent crash in balancer manager if invalid balancer name is passed
1270      as parameter. Reported by SecurityReason. [Ruediger Pluem]
1272   *) SECURITY: CVE-2007-6388 (cve.mitre.org)
1273      mod_status: Ensure refresh parameter is numeric to prevent
1274      a possible XSS attack caused by redirecting to other URLs.
1275      Reported by SecurityReason.  [Mark Cox, Joe Orton]
1277   *) SECURITY: CVE-2007-5000 (cve.mitre.org)
1278      mod_imagemap: Fix a cross-site scripting issue.  Reported by JPCERT.
1279      [Joe Orton]
1281   *) SECURITY: CVE-2008-0005 (cve.mitre.org)
1282      Introduce the ProxyFtpDirCharset directive, allowing the administrator
1283      to identify a default, or specific servers or paths which list their
1284      contents in other-than ISO-8859-1 charset (e.g. utf-8). [Ruediger Pluem]
1286   *) mod_dav: Adjust etag generation to produce identical results on 32-bit
1287      and 64-bit platforms and avoid a regression with conditional PUT's on
1288      lock and etag. PR 44152.
1289      [Michael Clark <michael metaparadigm.com>, Ruediger Pluem]
1291   *) mod_ssl: Fix handling of the buffered request body during a per-location
1292      renegotiation, when an internal redirect occurs.  PR 43738.
1293      [Joe Orton]
1295   *) mod_ldap: Try to establish a new backend LDAP connection when the
1296      Microsoft LDAP client library returns LDAP_UNAVAILABLE, e.g. after the
1297      LDAP server has closed the connection due to a timeout.
1298      PR 39095 [Eric Covener]
1300   *) log.c: Ensure Win32 resurrects its lost robust logger processes.
1301      [William Rowe]
1303   *) mod_disk_cache: Delete temporary files if they cannot be renamed to their
1304      final name. [Davi Arnaut <davi haxent.com.br>]
1306   *) Add explicit charset to the output of various modules to work around
1307      possible cross-site scripting flaws affecting web browsers that do not
1308      derive the response character set as required by  RFC2616.  One of these
1309      reported by SecurityReason [Joe Orton]
1311   *) http_protocol: Escape request method in 405 error reporting.
1312      This has no security impact since the browser cannot be tricked
1313      into sending arbitrary method strings.  [Jeff Trawick]
1315   *) mod_ssl: Fix SSL client certificate extensions parsing bug. PR 44073.
1316      [yl <yl bee-ware.net>]
1318   *) mod_proxy_ajp: Use 64K as maximum AJP packet size. This is the maximum
1319      length we can squeeze inside the AJP message packet.
1320      [Mladen Turk]
1322   *) core: Lower memory consumption of ap_r* functions by reusing the brigade
1323      instead of recreating it during each filter pass.
1324      [Stefan Fritsch <sf sfritsch.de>]
1326   *) core: Lower memory consumption in case that flush buckets are passed thru
1327      the chunk filter as last bucket of a brigade. PR 23567.
1328      [Stefan Fritsch <sf sfritsch.de>]
1330   *) core: Fix broken chunk filtering that causes all non blocking reads to be
1331      converted into blocking reads.  PR 19954, 41056.
1332      [Jean-Frederic Clere, Jim Jagielski]
1334   *) mod_rewrite: Add the novary flag to RewriteCond.
1335      [Ruediger Pluem]
1337   *) core: Change etag generation to produce identical results on
1338      32-bit and 64-bit platforms.  PR 40064.  [Joe Orton]
1340   *) http_protocol: Escape request method in 413 error reporting.
1341      Determined to be not generally exploitable, but a flaw in any case.
1342      PR 44014 [Victor Stinner <victor.stinner inl.fr>]
1344   *) mod_filter: Don't segfault on (unsupported) chained FilterProvider usage.
1345      PR 43956 [Nick Kew, Ruediger Pluem]
1347   *) core: Handle unrecognised transfer-encodings.
1348      PR 43882 [Nick Kew, Jeff Trawick]
1350   *) mod_include: Add an "if" directive syntax to test whether an URL
1351      is accessible, and if so, conditionally display content. This
1352      allows a webmaster to hide a link to a private page when the user
1353      has no access to that page. [Graham Leggett]
1355   *) Various code cleanups. PR 38699, 39518, 42005, 42006, 42007, 42008, 42009
1356      [Christophe Jaillet <christophe.jaillet wanadoo.fr>]
1358   *) mod_proxy_http: Correctly forward unexpected interim (HTTP 1xx)
1359      responses from the backend according to RFC2616.  But make it
1360      configurable in case something breaks on it.
1361      PR 16518 [Nick Kew]
1363   *) mod_substitute: Added a new output filter, which performs
1364      inline response content pattern matching (including regex)
1365      and substitution.  [Jim Jagielski, Ruediger Pluem]
1367   *) rotatelogs: Change command-line parsing to report more types
1368      of errors.  Allow local timestamps to be used when rotating based
1369      on file size.  [Jeff Trawick]
1371   *) mod_proxy: Canonicalisation improvements. Add "nocanon" keyword to
1372      ProxyPass, to suppress URI-canonicalisation in a reverse proxy. Also,
1373      don't escape/unescape forward-proxied URLs.
1374      PR 41798, 42592 [Nick Kew, Ruediger Pluem, Roy Fielding, Jim Jagielski]
1376   *) mod_status: Add SeeRequestTail directive, which determines if
1377      ExtendedStatus displays the 1st 63 characters of the request
1378      or the last 63. Useful for those requests with large string
1379      lengths and which only vary with the last several characters.
1380      [Jim Jagielski]
1382   *) mod_ssl: Prevent memory corruption of version string.
1383      PR 43865, 43334 [William Rowe, Joe Orton]
1385   *) core: Avoid some unexpected connection closes by telling the client
1386      that the connection is not persistent if the MPM process handling
1387      the request is already exiting when the response header is built.
1388      [Jeff Trawick]
1390   *) mod_autoindex: Generate valid XHTML output by adding the xhtml
1391      namespace. PR 43649 [Jose Kahan <jose w3.org>]
1393   *) mod_ldap: Give callers a reference to data copied into the request
1394      pool instead of references directly into the cache
1395      PR 43786 [Eric Covener]
1397   *) mod_ldap: Stop passing a reference to pconf around for
1398      (limited) use during request processing, avoiding possible
1399      memory corruption and crashes.  [Eric Covener]
1401   *) Event MPM: Add support for running under mod_ssl, by reverting to the
1402      Worker MPM behaviors, when run under an input filter that buffers
1403      its own data. [Paul Querna]
1405   *) mod_charset_lite: Don't crash when the request has no associated
1406      filename.  [Jeff Trawick]
1408   *) Core: fix possible crash at startup in case of nonexistent DocumentRoot.
1409      PR 39722 [Adrian Buckley <adrian.buckley ntlworld.com>]
1411   *) HTTP protocol: Add "DefaultType none" option.
1412      PR 13986 and PR 16139 [Nick Kew]
1414   *) mod_rewrite: Add option to suppress URL unescaping
1415      PR 34602 [Guenther Gsenger <guenther.gsenger gmail.com>]
1417   *) mpm_winnt: Eliminate wait_for_many_objects.  Allows the clean
1418      shutdown of the server when the MaxClients is higher then 257,
1419      in a more responsive manner [Mladen Turk, William Rowe]
1421   *) mod_proxy_http: Remove Warning headers with wrong date
1422      PR 16138 [Nick Kew]
1424   *) mod_proxy_http: Correctly parse all Connection headers in proxy.
1425      PR 43509 [Nick Kew]
1427   *) mod_proxy_http: add Via header correctly (if enabled) to
1428      response, even where other Via headers exist.
1429      PR 19439 [Nick Kew]
1431   *) http_core: OPTIONS * no longer maps to local storage or URI
1432      space. Note that unlike previous versions, OPTIONS * no
1433      longer returns an Allow: header. PR 43519 [Jim Jagielski]
1435   *) mod_proxy_http: strip hop-by-hop response headers
1436      PR 43455 [Nick Kew]
1438   *) mod_proxy: Don't by default violate RFC2616 by setting
1439      Max-Forwards when the client didn't send it to us.
1440      Leave that as a configuration option.
1441      PR 16137 [Nick Kew]
1443   *) scoreboard: improve error message on apr_shm_create failure
1444      PR 40037 [Nick Kew]
1446   *) proxy: Fix persistent backend connections.
1447      PR 43472 [Ruediger Pluem]
1449   *) mod_deflate: initialise inflate-out filter correctly when the
1450      first brigade contains no data buckets.
1451      PR 43512 [Nick Kew]
1453   *) mod_proxy_ajp: Ignore any ajp13 flush packets received before
1454      we send the response headers. See Tomcat PR 43478.
1455      [Jim Jagielski]
1457   *) mod_proxy_balancer: Do not reset lbstatus, lbfactor and lbset when
1458      starting a new child.
1459      PR 39907 [Vinicius Petrucci <vpetrucci gmail.com>, Ruediger Pluem]
1461   *) mod_proxy_http: Propagate Proxy-Authorization header correctly.
1462      PR 25947 [Nick Kew]
1464   *) mod_proxy_ajp: Differentiate within AJP between GET and HEAD
1465      requests. PR 43060 [Jim Jagielski]
1467   *) Don't send spurious "100 Continue" response lines.
1468      PR 38014 [Basant Kumar Kukreja <basant.kukreja sun.com>]
1470   *) mod_proxy_ftp: Don't segfault on bad line in FTP listing
1471      PR 40733 [Ulf Harnhammar <metaur telia.com>]
1473   *) mod_proxy: escape error-notes correctly
1474      PR 40952 [Thijs Kinkhorst <thijs debian.org>]
1476   *) mod_proxy: check ProxyBlock for all blocked addresses
1477      PR 36987 [Timo Viipuri <timo.viipuri f-secure.com>]
1479   *) mod_proxy: Don't lose bytes when a response line arrives in small chunks.
1480      PR 40894 [Andrew Rucker Jones <arjones simultan.dyndns.org>]
1482 Changes with Apache 2.2.6
1484   *) SECURITY: CVE-2007-3847 (cve.mitre.org)
1485      mod_proxy: Prevent reading past the end of a buffer when parsing
1486      date-related headers.  PR 41144.
1487      [Davi Arnaut, Nick Kew]
1489   *) SECURITY: CVE-2007-1863 (cve.mitre.org)
1490      mod_cache: Prevent a segmentation fault if attributes are listed in a
1491      Cache-Control header without any value.
1492      [Niklas Edmundsson <nikke acc.umu.se>]
1494   *) SECURITY: CVE-2007-3304 (cve.mitre.org)
1495      prefork, worker, event MPMs: Ensure that the parent process cannot
1496      be forced to kill processes outside its process group.
1497      [Joe Orton, Jim Jagielski]
1499   *) SECURITY: CVE-2006-5752 (cve.mitre.org)
1500      mod_status: Fix a possible XSS attack against a site with a public
1501      server-status page and ExtendedStatus enabled, for browsers which
1502      perform charset "detection".  Reported by Stefan Esser.  [Joe Orton]
1504   *) SECURITY: CVE-2007-1862 (cve.mitre.org)
1505      mod_mem_cache: Copy headers into longer lived storage; header names and
1506      values could previously point to cleaned up storage.  PR 41551.
1507      [Davi Arnaut <davi haxent.com.br>]
1509   *) mod_info: mod_info outputs invalid XHTML 1.0 transitional.
1510      PR 42847 [Rici Lake <rici ricilake.net>]
1512   *) mod_ssl: Fix spurious hostname mismatch warning for valid
1513      wildcard certificates.  PR 37911.  [Nick Burch <nick torchbox.com>]
1515   *) mod_mem_cache: Increase the minimum and default value for
1516      MCacheMinObjectSize from 0 to 1, as a MCacheMinObjectSize of 0 does not
1517      make sense and leads to a division by zero.  PR 40576.
1518      [Xuekun Hu <xuekun.hu gmail.com>]
1520   *) mod_cache: Remove expired content from cache that cannot be revalidated.
1521      PR 30370. [Ruediger Pluem]
1523   *) mod_proxy_http: accept proxy-sendchunked/proxy-sendchunks as synonymous.
1524      PR 43183 [Brian Rectanus <Brian.Rectanus breach.com>, Vincent Bray]
1526   *) mod_proxy: Ensure that at least scheme://hostname[:port] matches between
1527      worker and URL when searching for the best fitting worker for a given
1528      URL.  PR 40910 [Ruediger Pluem]
1530   *) mod_proxy: Improve network performance by setting APR_TCP_NODELAY
1531      (disable Nagle algorithm) on sockets if implemented.
1532      PR 42871 [Christian BOITEL <christian_boitel yahoo.fr>, Jim Jagielski]
1534   *) core: Do not replace a Date header set by a proxied backend server.
1535      PR 40232 [Ruediger Pluem]
1537   *) mod_proxy: Add a missing assignment in an error checking code path.
1538      PR 40865 [Andrew Rucker Jones <arjones simultan.dyndns.org>]
1540   *) mod_proxy_connect: avoid segfault on DNS lookup failure.
1541      PR 40756 [Trevin Beattie <tbeattie boingo.com>]
1543   *) mod_proxy: enable Ignore Errors option on ProxyPass Status.
1544      PR 43167 [Francisco Gimeno <kikov kikov.org>
1546   *) mod_proxy_http: Don't try to read body of a HEAD request before
1547      responding.  PR 41644 [Stuart Children <stuart terminus.co.uk>]
1549   *) mod_authnz_ldap: Don't return HTTP_UNAUTHORIZED during authorization when
1550      LDAP authentication is configured but we haven't seen any
1551      'Require ldap-*' directives, allowing authorization to be passed to lower
1552      level modules (e.g. Require valid-user)
1553      PR 43281 [Eric Covener]
1555   *) mod_proxy: don't URLencode tilde in path component
1556      PR 38448 [Stijn Hoop <stijn sandcat.nl>]
1558   *) proxy/ajp_header.c: Fixed header token string comparisons
1559      Matching of header tokens failed to include the trailing NIL byte
1560      and could misinterpret a longer header token for a shorter.
1561      Additionally, a "Content-Type" comparison was made case insensitive.
1562      [Martin Kraemer]
1564   *) proxy/ajp_header.c: Backport of an AJP protocol fix for EBCDIC
1565      On EBCDIC machines, the status_line string was incorrectly converted
1566      twice. [Jean-Frederic Clere, Martin Kraemer]
1568   *) mod_dumpio: Fix for correct dumping of traffic on EBCDIC hosts
1569      Data had been incorrectly converted twice, resulting in
1570      garbled log output. [Martin Kraemer]
1572   *) mod_autoindex: Add in Type and Charset options to IndexOptions
1573      directive. This allows the admin to explicitly set the
1574      content-type and charset of the generated page and is therefore
1575      a viable workaround for buggy browsers affected by CVE-2007-4465
1576      (cve.mitre.org). [Jim Jagielski]
1578   *) log core: ensure we use a special pool for stderr logging, so that
1579      the stderr channel remains valid from the time plog is destroyed,
1580      until the time the open_logs hook is called again.  [William Rowe]
1582   *) mod_negotiation: preserve Query String in resolving a type map
1583      PR 33112 [Jørgen Thomsen <apache jth.net>, Nick Kew]
1585   *) mod_ssl: Version reporting update; displays 'compiled against'
1586      Apache and build-time SSL Library versions at loglevel [info],
1587      while reporting the run-time SSL Library version in the server
1588      info tags.  Helps to identify a mod_ssl built against one flavor
1589      of OpenSSL but running against another (also adds SSL-C version
1590      number reporting.)  [William Rowe]
1592   *) mime.types: Many updates to sync with IANA registry and common
1593      unregistered types that the owners refuse to register.  Admins
1594      are encouraged to update their installed mime.types file.
1595      PR: 35550, 37798, 39317, 31483 [Roy T. Fielding]
1597   *) mod_expires: don't crash on bad configuration data
1598      PR 43213 [Julien Perez <julien.perez epsylonia.net>]
1600   *) mod_dbd: Introduce configuration groups to allow inheritance by virtual
1601      hosts of database configurations from the main server.  Determine the
1602      minimal set of distinct configurations and share connection pools
1603      whenever possible.  Allow virtual hosts to override inherited SQL
1604      statements.  PR 41302.  [Chris Darroch]
1606   *) mod_dbd: Create memory sub-pools for each DB connection and close
1607      DB connections in a pool cleanup function.  Ensure prepared statements
1608      are destroyed before DB connection is closed.  When using reslists,
1609      prevent segfaults when child processes exit, and stop memory leakage
1610      of ap_dbd_t structures.  Avoid use of global s->process->pool, which
1611      isn't destroyed by exiting child processes in most multi-process MPMs.
1612      PR 39985.  [Chris Darroch, Nick Kew]
1614   *) mod_dbd: Handle error conditions in dbd_construct() properly.
1615      Simplify ap_dbd_open() and use correct arguments to apr_dbd_error()
1616      when non-threaded.  Register correct cleanup data in non-threaded
1617      ap_dbd_acquire() and ap_dbd_cacquire().  Clean up configuration data
1618      and merge function.  Use ap_log_error() wherever possible.
1619      [Chris Darroch, Nick Kew]
1621   *) mod_dbd: Stash DBD connections in request_config of initial request
1622      only, or else sub-requests and internal redirections may cause
1623      entire DBD pool to be stashed in a single HTTP request.  [Chris Darroch]
1625   *) main core: Emit errors during the initial apr_app_initialize()
1626      or apr_pool_create() (when apr-based error reporting is not ready).
1627      [William Rowe, Jeff Trawick]
1629   *) log core: fix the new piped logger case where we couldn't connect
1630      the replacement stderr logger's stderr to the NULL stdout stream.
1631      Continue in this case, since the previous alternative of no error
1632      logging at all (/dev/null) is far worse. [William Rowe]
1634   *) mpm_winnt: Prevent the parent-child pipe from leaking into other
1635      spawned processes, and ensure we have a /Device/null handle for
1636      stdout when running as-a-service.  [William Rowe]
1638   *) mod_ldap: Avoid possible crashes, hangs, and busy loops due to
1639      improper merging of the cache lock in vhost config
1640      PR 43164 [Eric Covener]
1642   *) ApacheMonitor: Fix Windows Vista detection. [Mladen Turk]
1644   *) mod_deflate: fix protocol handling in deflate input filter
1645      PR 23287 [Nick Kew]
1647   *) mime.types: add Registered Javascript/ECMAScript MIME types (RFC4329)
1648      PR 40299 [Dave Hodder <dmh dmh.org.uk>]
1650   *) mod_filter: fix integer comparisons in dispatch rules
1651      PR 41835 [Nick Kew]
1653   *) mod_filter: fix merging of ! and = in FilterChain
1654      PR 42186 [Issac Goldstand <margol beamartyr.net>]
1656   *) mod_deflate: don't try to process metadata buckets as data.  what should
1657      have been a 413 error was logged as a 500 and a blank screen appeared
1658      at the browser.
1659      [Greg Ames, Ruediger Pluem]
1661   *) mod_cgi, mod_cgid: Fix use of CGI scripts as ErrorDocuments.
1662      PR 39710.  [Paul Querna, Ruediger Pluem]
1664   *) mod_proxy: Allow to use different values for sessionid
1665      in url encoded id and cookies. PR 41897. [Jean-Frederic Clere]
1667   *) mod_proxy: Fix the 503 returned when session route does
1668      not match any of the balancer members. [Mladen Turk]
1670   *) mod_proxy: Added ProxyPassMatch directive, which is similar
1671      to ProxyPass but takes a regex local path prefix. [Jim Jagielski]
1673   *) mod_cache: Do not set Date or Expires when they are missing from
1674      the original response or are invalid.  [Justin Erenkrantz]
1676   *) mod_cache: Correctly handle HEAD requests on expired cache content.
1677      PR 41230.  [Niklas Edmundsson <nikke acc.umu.se>]
1679   *) mod_cache: Let Cache-Control max-age set the expiration of the cached
1680      representation if Expires is not set.  [Justin Erenkrantz]
1682   *) mod_cache: Allow caching of requests with query arguments when
1683      Cache-Control max-age is explicitly specified.  [Justin Erenkrantz]
1685   *) mod_disk_cache: Allow Vary'd responses to be refreshed properly.
1686      [Justin Erenkrantz]
1688   *) mod_proxy: Print the correct error message for erroneous configured
1689      ProxyPass directives. PR 40439.  [Takashi Sato <serai lans-tv.com>]
1691   *) mod_so: Provide more helpful LoadModule feedback when an error occurs.
1692      [William Rowe]
1694   *) mod_alias: Accept path components (URL part) in Redirects. PR 35314.
1695      [Nick Kew]
1697   *) mod_headers: Allow % at the end of a Header value. PR 36609.
1698      [Nick Kew, Ruediger Pluem]
1700   *) mod_cache: Use the same cache key throughout the whole request processing
1701      to handle escaped URLs correctly.  PR 41475.  [Ruediger Pluem]
1703   *) mod_cache: Add CacheIgnoreQueryString directive. PR 41484.
1704      [Fredrik Widlund <fredrik.widlund qbrick.com>]
1706   *) mod_cache: While serving a cached entity ensure that filters that have
1707      been applied to this cached entity before saving it to the cache are not
1708      applied again. PR 40090.  [Ruediger Pluem]
1710   *) mod_cache: Correctly cache objects whose URL query string has been
1711      modified by mod_rewrite. PR 40805.  [Ruediger Pluem]
1713   *) HTTP proxy ProxyErrorOverride: Leave 1xx and 3xx responses alone.  Only
1714      processing of error responses (4xx, 5xx) will be altered. PR 39245.
1715      [Jeff Trawick, Bart van der Schans <schans hippo.nl>]
1717   *) htdbm: Enable crypt support on platforms with crypt() but not
1718      <crypt.h>, such as z/OS.  [David Jones <oscaremma gmail.com>]
1720   *) mod_ssl: initialize thread locks before initializing the hardware
1721      acceleration library, so the latter can make use of the former.
1722      PR 20951.  [<adunn at ncipher.com>]
1724   *) ab.c: Correct behavior of HTTP request headers sent by ab
1725      in presence of -H command-line overrides. PR 31268, 26554.
1726      [Arvind Srinivasan <arvind.srinivasan  sun.com>]
1728   *) ab.c: The apr_port_t type is unsigned, but ab was using a
1729      signed format code in its reports. PR 42070.
1730      [Takashi Sato <serai  lans-tv.com>]
1732   *) mod_ldap: Remove the hardcoded size limit parameter for
1733      ldap_search_ext_s and replace it with an APR_ defined value that
1734      is set according to the LDAP SDK being used, resolving a problem
1735      with SDKs that define LDAP_NO_LIMIT to something other than -1.
1736      [David Jones <oscaremma gmail com>]
1738   *) core: Correct a regression since 2.0.x in the handling of AllowOverride
1739      Options. PR 41829.  [Torsten Förtsch <torsten.foertsch gmx.net>]
1741   *) mod_proxy_http: Handle request bodies larger than 2 GB by converting
1742      the Content-Length header of the request correctly. PR 40883.
1743      [Ruediger Pluem, toadie <toadie643 gmail.com>]
1745   *) mod_proxy: Fix some proxy setting inheritance problems (eg:
1746      ProxyTimeout). PR 11540.  [Stuart Children <stuart terminus.co.uk>]
1748   *) Unix MPMs: Catch SIGFPE so that exception hooks and CoreDumpDirectory
1749      can work after that terminating signal.
1750      [Eric Covener]
1752   *) Win32: Makefile.win will now build with MS VC 8 (Visual Studio 2005)
1753      including embedding the .manifest information into each binary.
1754      [William Rowe]
1756 There was no Apache 2.2.5
1758 Changes with Apache 2.2.4
1760   *) mod_isapi: Correctly present SERVER_PORT_SECURE.
1761      PR: 40573.  [Matt Eaton <asf divinehawk.com>]
1763   *) Allow htcacheclean, httxt2dbm, and fcgistarter to link apr/apr-util
1764      statically like the older support programs.
1765      [Eric Covener <covener gmail.com>]
1767   *) core: Fix NONBLOCK status of listening sockets on restart/graceful
1768      PR 37680.  [Darius Davis <darius-abz free-range.com.au>]
1770   *) mod_deflate: Rework inflate output and deflate output filter to fix
1771      several issues: Incorrect handling of flush buckets, potential memory
1772      leaks, excessive memory usage in inflate output filter for large
1773      compressed content. PR 39854.
1774      [Ruediger Pluem, Nick Kew, Justin Erenkrantz]
1776   *) mod_mem_cache: Memory leak fix: Unconditionally free the buffer.
1777      [Davi Arnaut <davi haxent.com.br>]
1779   *) Allow mod_dumpio to log at other than DEBUG levels via
1780      the new DumpIOLogLevel directive. [Jim Jagielski]
1782   *) rotatelogs: Improve error message for open failures.  PR 39487.
1783      [Joe Orton]
1785   *) mod_dbd: share per-request database handles across subrequests
1786      and internal redirects [Chris Darroch]
1788   *) mod_dbd: key connection pools to virtual hosts correctly even when
1789      ServerName is unset/unavailable [Graham Leggett]
1791   *) Better detection and clean up of ldap connection that has been
1792      terminated by the ldap server.  PR 40878.
1793      [Rob Baily <rbaily servicebench com>]
1795   *) mod_mem_cache: Convert mod_mem_cache to use APR memory pool functions
1796      by creating a root pool for object persistence across requests. This
1797      also eliminates the need for custom serialization code.
1798      [Davi Arnaut <davi haxent.com.br>]
1800   *) mod_authnz_ldap: Add an AuthLDAPRemoteUserAttribute directive. If
1801      set, REMOTE_USER will be set to this attribute, rather than the
1802      username supplied by the user. Useful for example when you want users
1803      to log in using an email address, but need to supply a userid instead
1804      to the backend.  [Graham Leggett]
1806   *) mod_cgi and mod_cgid: Don't use apr_status_t error return
1807      from input filters as HTTP return value from the handler.
1808      PR 31759.  [Nick Kew]
1810   *) mod_cache: Eliminate a bogus error in the log when a filter returns
1811      AP_FILTER_ERROR.  [Niklas Edmundsson <nikke acc.umu.se>]
1813   *) core: Fix issue which could cause piped loggers to be orphaned and never
1814      terminate after a graceful restart.  PR 40651.
1815      [Joe Orton, Ruediger Pluem]
1817   *) core: Fix address-in-use startup failure caused by corruption of the list
1818      of listen sockets in some configurations with multiple generic Listen
1819      directives.  [Jeff Trawick]
1821   *) mod_headers: Support regexp-based editing of HTTP headers.  [Nick Kew]
1823   *) mod_proxy: Add explicit flushing feature. When Servlet container sends
1824      AJP body message with size 0, this means that Servlet container has asked
1825      for an explicit flush. Create flush bucket in that case. This feature has
1826      been added to the recent Tomcat versions without breaking the AJP
1827      protocol.  [Mladen Turk]
1829   *) mod_proxy_balancer: Set the new environment variable
1830      BALANCER_ROUTE_CHANGED if a worker with a route different from the one
1831      supplied by the client had been chosen or if the client supplied no
1832      routing information for a balancer with sticky sessions.
1833      [Ruediger Pluem]
1835   *) mod_proxy_balancer: Add information about the route, the sticky session
1836      and the worker used during a request as environment variables. PR 39806.
1837      [Brian <brectanu gmail.com>]
1839   *) mod_proxy: Don't try to use dead backend connection. PR 37770.
1840      [Olivier BOEL <ob dorrboel.com>]
1842   *) mod_proxy_balancer: Extract stickysession routing information contained
1843      as parameter in the URL correctly. PR 40400.
1844      [Ruediger Pluem, Tomokazu Harada <harada sysrdc.ns-sol.co.jp>]
1846   *) mod_proxy_ajp: Added cping/cpong support for the AJP protocol.
1847      A new worker directive ping=timeout will cause CPING packet
1848      to be send expecting CPONG packet within defined timeout.
1849      In case the backend is too busy this will fail instead
1850      sending the full header.  [Mladen Turk]
1852   *) mod_disk_cache: Make sure that only positive integers are accepted
1853      for the CacheMaxFileSize and CacheMinFileSize parameters in the
1854      config file. PR39380.  [Niklas Edmundsson <nikke acc.umu.se>]
1856   *) mod_cache: From RFC3986 (section 6.2.3.) if a URI contains an
1857      authority component and an empty path, the empty path is to be equivalent
1858      to "/". It explicitly cites the following four URIs as equivalents:
1859        http://example.com
1860        http://example.com/
1861        http://example.com:/
1862        http://example.com:80/
1863      [Davi Arnaut <davi haxent.com.br>]
1865   *) mod_cache: Don't cache requests with a expires date in the past;
1866      otherwise mod_cache will always try to cache the URL. This bug
1867      might lead to numerous rename() errors on win32 if the URL was
1868      previously cached. [Davi Arnaut <davi haxent.com.br>]
1870   *) core: Deal with the widespread use of apr_status_t return values
1871      as HTTP status codes, as documented in PR#31759 (a bug shared by
1872      the default handler, mod_cgi, mod_cgid, mod_proxy, and probably
1873      others). PR31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
1875   *) mod_ext_filter: Handle filter names which include capital letters.
1876      PR 40323.  [Jeff Trawick]
1878   *) mod_isapi: Avoid double trailing slashes in HSE_REQ_MAP_URL_TO_PATH
1879      support.  Also corrects the slashes for Windows.
1880      PR 15993.  [William Rowe]
1882   *) mod_isapi: Handle "HTTP/1.1 200 OK" style status lines correctly, the
1883      token parser worked while the resulting length was misinterpreted.
1884      PR 29098.  [Brock Bland <bbland serena.com>]
1886   *) mod_isapi: Return 0 (failure) for more of the various ap_pass_brigade
1887      attempts to stream the response at the client.  Log these as well.
1888      PR 30022, 40470.  [William Rowe, Matt Eaton <asf divinehawk.com>]
1890   *) mod_isapi: Ensure we walk through all the methods the developer may have
1891      employed to report their HTTP status result code.  PR 16637 30033 28089
1892      [Matt Lewandowsky <matt iamcode.net>, William Rowe]
1894   *) mod_echo: Fix precedence problem in if statement. PR 40658.
1895      [Larry Cipriani <lvc lucent.com>]
1897   *) mod_mime_magic: Fix precedence problem in if statement. PR 40656.
1898      [Larry Cipriani <lvc lucent.com>]
1900   *) The full server version information is now included in the error log at
1901      startup as well as server status reports, irrespective of the setting
1902      of the ServerTokens directive.  ap_get_server_version() is now
1903      deprecated, and is replaced by ap_get_server_banner() and
1904      ap_get_server_description().  [Jeff Trawick]
1906   *) mod_proxy_balancer: Workers can now be defined as part of
1907      a balancer cluster "set" in which members of a lower-numbered set
1908      are preferred over higher numbered ones.  [Jim Jagielski]
1910   *) mod_proxy_balancer: Workers can now be defined as "hot standby" which
1911      will only be used if all other workers are unusable (eg: in
1912      error or disabled). Also, the balancer-manager displays the election
1913      count and I/O counts of all workers.  [Jim Jagielski]
1915   *) mod_proxy_ajp: Close connection to backend if reading of request body
1916      fails. PR 40310.  [Ian Abel <ianabel mxtelecom.com>]
1918   *) mod_proxy_balancer: Retry worker chosen by route / redirect worker if
1919      it is in error state before sending "Service Temporarily Unavailable".
1920      PR 38962.  [Christian Boitel <cboitel lfdj.com>]
1922 Changes with Apache 2.2.3
1924   *) SECURITY: CVE-2006-3747 (cve.mitre.org)
1925      mod_rewrite: Fix an off-by-one security problem in the ldap scheme
1926      handling.  For some RewriteRules this could lead to a pointer being
1927      written out of bounds.  Reported by Mark Dowd of McAfee.
1928      [Mark Cox]
1930   *) Win32: Minor fixes to build more cleanly under Visual Studio 2005
1931      with command line builds.  [William Rowe]
1933   *) mod_authn_alias: Add a check to make sure that the base provider and the
1934      alias names are different and also that the alias has not been registered
1935      before. PR 40051. [Brad Nicholes]
1937   *) mod_authnz_ldap: Fix a problem with invalid auth error detection for LDAP
1938      client SDKs that don't support the LDAP_SECURITY_ERROR macro. PR 39529.
1939      [Ray Price <dohrayme yahoo.com>, Josh Fenlason <jfenlason ptc.com>]
1941   *) mod_cache: Do not overwrite the Content-Type in the cache, for
1942      successfully revalidated cached objects. PR 39647. [Ruediger Pluem]
1944   *) mod_speling: Add directive to deal with case corrections only
1945      and ignore other misspellings [Olivier Thereaux  <ot w3.org>]
1947   *) mod_dbd: Fix dependence on virtualhost configuration in
1948      defining prepared statements (possible segfault at startup
1949      in user modules such as mod_authn_dbd).  [Nick Kew]
1951   *) Add optional 'scheme://' prefix to ServerName directive,
1952      allowing correct determination of the canonical server URL
1953      for use behind a proxy or offload device handling SSL; fixing
1954      redirect generation in those cases. PR 33398. [Sander Temme]
1956   *) Added server_scheme field to server_rec for above. Minor MMN bump.
1957      [Sander Temme]
1959   *) mod_cache: Make caching of reverse SSL proxies possible again. PR 39593.
1960      [Ruediger Pluem, Joe Orton]
1962   *) Worker MPM: On graceless shutdown or restart, send signals to
1963      each worker thread to wake them up if they're polling on a
1964      Keep-Alive connection.  PR 38737.  [Chris Darroch]
1966   *) worker and event MPMs: fix excessive forking if fork() or child_init
1967      take a long time.  PR 39275.
1968      [Greg Ames, Jeff Trawick, Chris Darroch <chrisd pearsoncmg.com> ]
1970   *) configure: Add "--with-included-apr" flag to force use of the
1971      bundled version of APR at build time.  [Joe Orton]
1973   *) Respect GracefulShutdownTimeout in the worker and event MPMs.
1974      [Chris Darroch, Garrett Rooney]
1976   *) mod_mem_cache: Set content type correctly when delivering data from
1977      cache. PR 39266. [Ruediger Pluem]
1979   *) mod_autoindex: Fix filename escaping with FancyIndexing disabled.
1980      PR 38910.  [Robby Griffin <rmg terc.edu>]
1982   *) mod_charset_lite: Bypass translation when the source and dest charsets
1983      are the same. [Jeff Trawick]
1985 Changes with Apache 2.2.2
1987   *) mod_deflate: work correctly in an internal redirect
1988      [Brian J. France <list firehawksystems com>]
1990   *) mod_proxy_balancer: Initialize members of a balancer correctly.
1991      PR 38227. [James A. Robinson <jim.robinson stanford.edu>]
1993   *) mod_proxy: Do not release connections from connection pool twice.
1994      PR 38793. [Ruediger Pluem, matthias <mk-asf gigacodes.de>]
1996   *) core: Prevent reading uninitialized memory while reading a line of
1997      protocol input.  PR 39282. [Davi Arnaut <davi haxent com br>]
1999   *) mod_dbd: Update defaults, improve error reporting.
2000      [Chris Darroch <chrisd pearsoncmg com>, Nick Kew]
2002   *) mod_dbd: Create own pool and mutex to avoid problem use of
2003      process pool in request processing.
2004      [Chris Darroch <chrisd pearsoncmg com>]
2006   *) HTML-escape the Expect error message.  Not classed as security as
2007      an attacker has no way to influence the Expect header a victim will
2008      send to a target site.  Reported by Thiago Zaninotti
2009      <thiango nstalker.com>. [Mark Cox]
2011   *) htdbm: Fix crash processing -d option in 64-bit mode on HP-UX.
2012      [Jeff Trawick]
2014   *) htdbm: Warn the user when adding a plaintext password on a platform
2015      where it wouldn't work with the server (i.e., anywhere that has
2016      crypt()).  [Jeff Trawick]
2018   *) mod_proxy: don't reuse a connection that may be to the wrong backend
2019      PR 39253 [Ruediger Pluem]
2021   *) Default handler: Don't return output filter apr_status_t values.
2022      PR 31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
2024 Changes with Apache 2.2.1
2026   *) SECURITY: CVE-2005-3357 (cve.mitre.org)
2027      mod_ssl: Fix a possible crash during access control checks if a
2028      non-SSL request is processed for an SSL vhost (such as the
2029      "HTTP request received on SSL port" error message when an 400
2030      ErrorDocument is configured, or if using "SSLEngine optional").
2031      PR 37791.  [Rüdiger Plüm, Joe Orton]
2033   *) SECURITY: CVE-2005-3352 (cve.mitre.org)
2034      mod_imagemap: Escape untrusted referer header before outputting
2035      in HTML to avoid potential cross-site scripting.  Change also
2036      made to ap_escape_html so we escape quotes.  Reported by JPCERT.
2037      [Mark Cox]
2039   *) mod_proxy_ajp: Flushing of the output after each AJP chunk is now
2040      configurable at runtime via the 'flushpackets' and 'flushwait' worker
2041      params. Minor MMN bump. [Jim Jagielski]
2043   *) mod_proxy: Fix incorrect usage of local and shared worker init.
2044      PR 38403. [Jim Jagielski]
2046   *) mod_isapi: Fix compiler errors on Unix platforms.
2047      [William Rowe]
2049   *) mod_proxy_http: Do send keep-alive header if the client sent
2050      connection: keep-alive and do not close backend connection if the client
2051      sent connection: close. PR 38524. [Ruediger Pluem, Joe Orton]
2053   *) mod_disk_cache: Return the correct error codes from bucket read
2054      failures, instead of APR_EGENERAL.
2055      [Brian Akins <brian.akins turner.com>]
2057   *) Add APR/APR-Util Compiled and Runtime Version numbers to the
2058      output of 'httpd -V'. [William Rowe]
2060   *) http: If a connection is aborted while waiting for a chunked line,
2061      flag the connection as errored out.  [Justin Erenkrantz]
2063   *) core: Reject invalid Expect header immediately. PR 38123.
2064      [Ruediger Pluem]
2066   *) Fix mis-shifted 32 bit scope, masked to 64 bits as a method.
2067      [Will Rowe, Joe Orton]
2069   *) mod_proxy: Fix KeepAlives not being allowed and set to
2070      backend servers. PR 38602. [Ruediger Pluem, Jim Jagielski]
2072   *) Fix instdso.sh "sed syntax error" installation issue on some
2073      platforms.  PR 38108.  [Masaoki Kobayashi <masaoki techfirm.co.jp>]
2075   *) mod_ssl: Fix possible crashes in shmcb with gcc 4 on platforms
2076      requiring word-aligned pointers.  PR 38838.  [Joe Orton]
2078   *) mod_proxy: If we get an error reading the upstream response,
2079      close the connection.  [Justin Erenkrantz, Roy T. Fielding,
2080      Jim Jagielski, Ruediger Pluem]
2082   *) mod_proxy_ajp: Support common headers of the AJP protocol in responses.
2083      PR 38340. [Aleksey Pesternikov <apesternikov yahoo.com>]
2085   *) mod_proxy_balancer: Do not overwrite the status of initialized workers
2086      and respect the configured status of uninitilized workers when creating
2087      a new child process. [Ruediger Pluem]
2089   *) mod_proxy_ajp: Crosscheck the length of the body chunk with the length of
2090      the ajp message to prevent mod_proxy_ajp from reading beyond the buffer
2091      boundaries and thus revealing possibly sensitive memory contents to the
2092      client. [Ruediger Pluem]
2094   *) Ensure that the proper status line is written to the client, fixing
2095      incorrect status lines caused by filters which modify r->status without
2096      resetting r->status_line, such as the built-in byterange filter.
2097      [Jeff Trawick]
2099   *) mod_speling: Stop crashing with certain non-file requests.
2100      [Jeff Trawick]
2102   *) mod_cache: Make caching of reverse proxies possible again. PR 38017.
2103      [Ruediger Pluem]
2105   *) Modify apr[util] .h detection to avoid breakage on VPATH builds
2106      using Solaris make (amoung others) and avoid breakage in ./buildconf
2107      when srclib/apr[-util] are symlinks rather than directories proper.
2108      [William Rowe]
2110   *) Avoid Server-driven negotiation when a script has emitted an
2111      explicit Status: header.  PR 38070.  [Nick Kew]
2113   *) Fix to avoid feeding C99 to C++ compilers.  [Joe Orton]
2115   *) Chunk filter: Fix chunk filter to create correct chunks in the case that
2116      a flush bucket is surrounded by data buckets. [Ruediger Pluem]
2118   *) Fix syntax error in httpd.h with strict compilers.  PR 37840.
2119      [Per Olausson <pao darkheim.freeserve.co.uk>]
2121   *) Fix recursive ErrorDocument handling.  PR 36090.
2122      [Chris Darroch <chrisd pearsoncmg.com>]
2124   *) Don't hang on error return from post_read_request.  PR 37790.
2125      [Nick Kew]
2127   *) Fix off-by-one error in proxy_balancer.  PR 37753.
2128      [Kazuhiro Osawa <ko yappo ne jp>]
2130 Changes with Apache 2.2.0
2132   *) mod_negotiation: Minor performance tweak by reusing already calculated
2133      strlen.
2134      [Ruediger Pluem, Christophe Jaillet <christophe.jaillet wanadoo.fr>]
2136   *) Remove support for 'On' and 'Off' for AuthBasicProvider and
2137      AuthDigestProvider.  [Joshua Slive, Justin Erenkrantz]
2139   *) Add in new UseCanonicalPhysicalPort directive, which controls
2140      whether or not Apache will ever use the actual physical port
2141      when constructing the canonical port number. [Jim Jagielski]
2143   *) mod_dav: Fix a null pointer dereference in an error code path during the
2144      handling of MKCOL.
2145      [Ruediger Pluem, Ghassan Misherghi <ghassanm ucdavis.edu>]
2147   *) mod_proxy_balancer: When finding best worker, use case insensitive
2148      match for scheme and host, but case sensitive for the rest of
2149      the path. [Jim Jagielski, Ruediger Pluem]
2151   *) Require use of APR >= 1.2.0 and APR-util >= 1.2.0 when configured
2152      to use external copies of the libraries.  [Joe Orton]
2154   *) Fix DESTDIR=... installation when using bundled copy of APR.
2155      [Torsten Foertsch <torsten.foertsch gmx.net>]
2157   *) mod_dav: Fix handling of unknown state tokens in If: headers.
2158      PR: 37288.  [Joe Orton]
2160   *) Strip out Experimental MPMs that have gone nowhere since 2.0
2161      (perchild, threadpool, leader).  [Nick Kew]
2163 Changes with Apache 2.1.9
2165   *) Add mod_authn_dbd (SQL-based  authentication) [Nick Kew]
2167   *) mod_proxy_ajp: Do not spool the entire response from AJP backend before
2168      sending it up the filter chain.  PR 37100.  [Ruediger Pluem]
2170   *) mod_cache: Create new filters CACHE_OUT_SUBREQ / CACHE_SAVE_SUBREQ which
2171      only differ by the type from CACHE_OUT / CACHE_SAVE to ensure that
2172      subrequests to non-local resources work again.  [Ruediger Pluem]
2174   *) mod_proxy: Do not lowercase the entire worker name of a BalancerMember
2175      since this breaks case sensitive URI's.  PR 36906.  [Ruediger Pluem]
2177   *) core: AddOutputFilterByType is ignored for proxied requests. PR 31226.
2178      [Joe Orton, Ruediger Pluem]
2180   *) mod_proxy_http: Prevent data corruption of POST request bodies when
2181      client accesses proxied resources with SSL.  PR 37145.
2182      [Ruediger Pluem, William Rowe]
2184   *) mod_ssl: Fix issue which could cause spurious warnings about use
2185      of name-based vhosts.  PR 37051.  [Joe Orton]
2187   *) ab: Fix to ensure that only the expected number of requests are run.
2188      PR 36966.  [Joe Orton]
2190   *) mod_proxy_balancer: BalancerManager and proxies correctly handle
2191      member workers with paths.  PR 36816. [Ruediger Pluem, Jim Jagielski]
2193   *) mod_log_config: %{hextid}P will log the thread id in hex with APR
2194      versions 1.2.0 or higher.  [Jeff Trawick]
2196   *) httpd.exe/apachectl -V: display the DYNAMIC_MODULE_LIMIT setting, as
2197      in 1.3.  [Jeff Trawick]
2199   *) Support dbd connection tied to conn_rec in mod_dbd.  [Nick Kew]
2201   *) Fix use of pools in mod_dbd.  [Brian J France, Nick Kew]
2203   *) Promote modules from "experimental": mod_dbd, mod_filter,
2204      mod_charset_lite.  [Nick Kew]
2206   *) mod_proxy_ajp: mod_proxy_ajp sends empty SSL attributes for non SSL
2207      connections.  PR 36883.
2208      [William Barker <william.barker wilshire.com>, Ruediger Pluem]
2210   *) Eliminated the NET_TIME filter, restructuring the timeout logic.
2211      This provides a working mod_echo on all platforms, and ensures any
2212      custom protocol module is at least given an initial timeout value
2213      based on the <VirtualHost > context's Timeout directive.
2214      [William Rowe]
2216   *) mod_proxy: Run the request_status hook also if there are no free workers
2217      or all workers are in error state.
2218      [Ruediger Pluem, Brian Akins <brian.akins turner.com>]
2220   *) mod_proxy_connect: Fix high CPU loop on systems like UnixWare which
2221      trigger POLL_ERR or POLL_HUP on a terminated connection.  PR 36951.
2222      [Jeff Trawick, Ruediger Pluem]
2224   *) mod_proxy_balancer: Fix handling of sticky sessions with Tomcat.
2225      PR 36507.  [Ruediger Pluem]
2227   *) SECURITY: CVE-2005-2970 (cve.mitre.org)
2228      worker MPM: Fix a memory leak which can occur after an aborted
2229      connection in some limited circumstances.  [Greg Ames]
2231   *) Doxygen fixups.  [Neale Ranns <neale ranns.org>, Ian Holsman]
2233   *) mod_cache/mod_dir: Correct a subrequest lookup bug which was preventing
2234      mod_dir from serving indexes correctly with mod_cache enabled.
2235      [Colm MacCarthaigh]
2237 Changes with Apache 2.1.8
2239   *) Fix lingering close implementation to match 1.3.x behaviour.
2240      PR 35292.  [Joe Orton]
2242   *) mod_ssl: Support limited buffering of request bodies to allow
2243      per-location renegotiation to proceed.  PR 12355.  [Joe Orton]
2245   *) Fix regression since 2.0.x in AllowOverride Options handling.
2246      PR 35330.  [kabe <kabe sra-tohoku.co.jp>]
2248   *) mod_ssl: Fix memory leak in ssl_util_algotypeof().
2249      PR 25659.  [David Blake <dblake hp com>, Martin Kraemer]
2251   *) prefork, worker and event MPMs: Support a graceful-stop procedure:
2252      Server will wait until existing requests are finished or until
2253      "GracefulShutdownTimeout" number of seconds before exiting.
2254      [Colm MacCarthaigh, Ken Coar, Bill Stoddard]
2256   *) prefork, worker and event MPMs: Prevent children from holding open
2257      listening ports upon graceful restart or stop. PR 28167.
2258      [Colm MacCarthaigh, Brian Pinkerton <bp thinkpink.com>]
2260   *) SECURITY: CVE-2005-2700 (cve.mitre.org)
2261      mod_ssl: Fix a security issue where "SSLVerifyClient" was not
2262      enforced in per-location context if "SSLVerifyClient optional"
2263      was configured in the vhost configuration.  [Joe Orton]
2265   *) mod_ssl: Catch parse errors from misconfigured or malformed
2266      CRLs.  PR 36438.  [Joe Orton]
2268   *) mod_proxy/mod_proxy_balancer: lbmethods now implemented as
2269      providers. Prevent problems when no Vhost containers were
2270      configured with proxy balancers. [Jim Jagielski]
2272   *) New provider function to list all available provider names in a
2273      specific group and version (ap_list_provider_names). [Jim Jagielski]
2275   *) mod_cache: Enhance CacheEnable/CacheDisable to control caching on a
2276      per-protocol, per-host and per-path basis. Intended for proxy
2277      configurations. [Colm MacCarthaigh]
2279   *) mod_disk_cache: Canonicalise the storage key, for improved hit/miss
2280      ratio. [Colm MacCarthaigh]
2282   *) mod_cgid: Append .PID to the script socket filename and remove the
2283      script socket on exit. [Colm MacCarthaigh, Jim Jagielski]
2285   *) mod_cgid: run the get_suexec_identity hook within the request-handler
2286      instead of within cgid. PR 36410. [Colm MacCarthaigh]
2288   *) Linux 2.0: remove support for threaded MPM's due to linuxthreads use
2289      of SIGUSR1 clashing with graceful restart signal. [Colm MacCarthaigh]
2291 Changes with Apache 2.1.7
2293   *) SECURITY: CVE-2005-2491 (cve.mitre.org):
2294      Fix integer overflows in PCRE in quantifier parsing which could
2295      be triggered by a local user through use of a carefully-crafted
2296      regex in an .htaccess file.  [Philip Hazel]
2298   *) mod_proxy/mod_proxy_balancer: Provide a simple, functional
2299      interface to add additional balancer lb selection methods
2300      without requiring code changes to mod_proxy/mod_proxy_balancer;
2301      these can be implemented via sub-modules now. [Jim Jagielski]
2303   *) mod_cache: Fix incorrectly served 304 responses when expired cache
2304      entity is valid, but cache is unwritable and headers cannot be
2305      updated.  [Colm MacCarthaigh <colm stdlib.net>]
2307   *) mod_cache: Remove entities from the cache when re-validation
2308      receives a 404 or other content-no-longer-present error.
2309      [Rüdiger Plüm ruediger.pluem vodafone.com]
2311   *) mod_disk_cache: Properly remove files from cache when needed.
2312      [Rüdiger Plüm ruediger.pluem vodafone.com]
2314   *) mod_disk_cache: Support htcacheclean removing directories.
2315      [Andreas Steinmetz]
2317   *) htcacheclean: Add -t option to remove empty directories.
2318      [Colm MacCarthaigh <colm stdlib.net>]
2320   *) Remove the base href tag from mod_proxy_ftp, as it breaks relative
2321      links for clients not using an Authorization header. [Graham Leggett,
2322      Jon Snow <jsnow27 gatesec.net>]
2324   *) mod_cache: Restore the HTTP status of cached responses.
2325      [Hansjoerg Pehofer <hansjoerg.pehofer uibk.ac.at>]
2327   *) mod_cache: Store varied contents all in the same prefix for a varied URI.
2328      [Paul Querna]
2330   *) mod_cache: Run the CACHE_SAVE and CACHE_OUT Filters after other content
2331      filters. [Paul Querna]
2333   *) mod_negotiation: Correctly report 404 instead of 403 for missing files.
2334      [Paul Querna]
2336   *) new hook (request_status) that gets ran in proxy_handler just before
2337      the final return.  This gives modules an opportunity to do something
2338      based on the proxy status. (minor MMN bump)
2339      [Brian Akins <bakins turner.com>, Ian Holsman]
2341   *) Add additional SSLSessionCache option, 'nonenotnull', which is
2342      similar to 'none' (disabling any external shared cache) but forces
2343      OpenSSL to provide a non-null session ID.  [Jim Jagielski]
2345   *) Add httxt2dbm to support/ for creating RewriteMap DBM Files.
2346      [Paul Querna]
2348   *) Add SSL_COMPRESS_METHOD variable (included in +StdEnvVars) to note
2349      the negotiated compression.  [Georg v. Zezschwitz <gvz 2scale.de>]
2351   *) Fixed complaints about unpackaged files within the RPM build
2352      after changes to the config files. [Graham Leggett]
2354   *) Fix shutdown for the Worker MPM when an Accept Filter is used. Instead of
2355      just closing the socket, a HTTP request is made, to make sure the child is
2356      always awakened. [Paul Querna]
2358 Changes with Apache 2.1.6
2360   *) Fix htdbm password validation for records which included comments.
2361      [Eric Covener <covener gmail.com>]
2363   *) mod_cgid: Fix buffer overflow processing ScriptSock directive.
2364      [Steve Kemp <steve steve.org.uk>]
2366 Changes with Apache 2.1.5
2368   *) mod_ssl: Setting the Protocol to 'https' can replace the use of the
2369      'SSLEngine on' command. [Paul Querna]
2371   *) core: Refactor the mapping of Accept Filters to Sockets. Add the
2372      AcceptFilter and Protocol directives to aid in mapping filter types.
2373      Extend the Listen directive to optionally take a protocol name.
2374      [Paul Querna]
2376   *) mod_disk_cache: Support storing multiple variations of one URL. PR 35211.
2377      [Paul Querna]
2379   *) mod_disk_cache: Atomically create the header data file. [Paul Querna]
2381   *) mod_cache: Fix 'Vary: *' behavior to be RFC compliant. PR 16125.
2382      [Paul Querna]
2384   *) mod_cache: Rename 'generate_name' to 'ap_cache_generate_name'.
2385      [Paul Querna]
2387   *) mod_mime_magic: Handle CRLF-format magic files so that it works with
2388      the default installation on Windows.  [Jeff Trawick]
2390   *) core: Allow multiple modules to register interest in a single
2391      configuration command. [Paul Querna]
2393   *) authn_provider_alias: Adds the configuration block tag
2394      <AuthnProviderAlias baseProvider Alias>
2395      Authentication directives contained within this block can be
2396      referenced as a new authProvider using the AuthBasicProvider or
2397      AuthDigestProvider directive.  These directives will be merged in to
2398      the per_dir configuration just before the base provider is called.
2399      [Brad Nicholes]
2401   *) ap_getword_conf: Fix backslashes at the end of configuration directives.
2402      PR 34834. [Timo Viipuri <viipuri dlc.fi>]
2404   *) mod_dbd: New additions: mod_dbd.c, mod_dbd.h, mod_dbd.xml
2405      Provide module hooks for apr_dbd; optimise for httpd
2406      threaded and non-threaded arch [Nick Kew]
2408   *) ab: SSL support rewritten, improved, and enabled if SSL is enabled
2409      during the build; -f and -Z arguments added to specify SSL protocol
2410      options.  [Masaoki Kobayashi <masaoki techfirm.co.jp>]
2412   *) mod_info: Show the Quick Handler [Paul Querna]
2414   *) mod_ldap: Add the directive LDAPVerifyServerCert to specify
2415      whether to force verification of the server certificate when
2416      establishing an SSL connection to the LDAP server.
2417      [Brad Nicholes]
2419   *) mod_proxy: Run mod_rewrite before mod_proxy in the translate_name
2420      hook. [Paul Querna]
2422   *) Add AP_INIT_TAKE_ARGV for configuration commands. (minor MMN bump)
2423      [Paul Querna]
2425   *) ap_get_local_host() rewritten for APR. [Jim Jagielski]
2427   *) Add the ap_vhost_iterate_given_conn function to expose the information
2428      used in Name Based Virtual Hosting. (minor MMN bump)
2429      [Paul Querna]
2431   *) Remove the never working ap_method_list_do and ap_method_list_vdo.
2432      [Paul Querna]
2434   *) Added makefile and doc for building mod_ssl on the NetWare
2435      platform. [Guenter Knauf, Brad Nicholes]
2437   *) mod_deflate: Merge the Vary header, isntead of Setting it. Fixes
2438      applications that send the Vary Header themselves, and also apply
2439      mod_deflate as an output filter. [Paul Querna]
2441   *) Change the default (when not present in the config file) setting
2442      for UseCanonicalName to Off.
2443      [Joshua Slive]
2445   *) mod_userdir: The module no longer does any remapping unless the
2446      UserDir directive is present in the config file.
2447      [Joshua Slive]
2449   *) Massively simplify the distributed httpd.conf by removing
2450      many features and many directives that are at their default
2451      setting.  Add a selection of example config excerpts for adding
2452      extra features in the conf/extra/ directory.  Install the
2453      distributed config and the extra config examples in the
2454      conf/original/ directory during make install.
2455      [Joshua Slive, Justin Erenkrantz]
2457   *) NetWare: Reposition mod_asis, mod_actions, mod_cgi, mod_imagemap,
2458      mod_userdir and mod_autoindex as shared modules rather than
2459      built-in modules within the NetWare build.
2460      [Brad Nicholes]
2462   *) Rename mod_imap to mod_imagemap.
2463      [Paul Querna]
2465   *) util_ldap: Eliminate the load ordering of mod_ldap and mod_authnz_ldap
2466      by changing the mod_ldap exported functions to optional functions.
2467      [Brad Nicholes]
2469 Changes with Apache 2.1.4
2471   *) Don't let a subrequest inherit headers describing the original request's
2472      body.  [Greg Ames]
2474   *) Fix Windows CompContext buff size miscalculation
2475      [Allan Edwards]
2477   *) Add ReceiveBufferSize directive to control the TCP receive buffer.
2478      [Eric Covener <covener gmail.com>]
2480   *) mod_proxy: Add proxy-sendextracrlf option to send an extra CRLF at the
2481      end of the request body to work with really old HTTP servers.
2482      [Justin Erenkrantz]
2484   *) util_ldap: Keep track of the number of attributes retrieved from
2485      LDAP so that all the values can be properly cached even if the
2486      value is NULL. PR 33901 [Brad Nicholes]
2488   *) mod_cache: Fix error where incoming Cache-Control would be ignored.
2489      [Justin Erenkrantz]
2491   *) mod_cache: Correctly handle originally conditional requests.
2492      [Sander Striker]
2494   *) mod_disk_cache: Correctly update cached headers on revalidated responses.
2495      [Sander Striker, Justin Erenkrantz]
2497   *) worker MPM/mod_status: Support per-worker tracking of pid and
2498      generation in the scoreboard so that mod_status can accurately
2499      represent workers in processes which are gracefully terminating.
2500      (major MMN bump)
2501      [Jeff Trawick]
2503   *) Correctly export all mod_dav public functions.
2504      [Branko Čibej <brane xbc.nu>]
2506 Changes with Apache 2.1.3
2508   *) mod_ssl: Add ssl_ext_lookup optional function for accessing
2509      certificate extensions.   [David Reid, Joe Orton]
2511   *) Add support for use of an external PCRE library; pass the
2512      --with-pcre flag to configure.  PR 27550.  [Joe Orton,
2513      Andres Salomon <dilinger voxel.net>]
2515   *) Renamed regex interfaces to be namespace-safe, and moved from
2516      pcreposix.h header to ap_regex.h: regex_t->ap_regex_t,
2517      regmatch_t->ap_regmatch_t; REG_*->AP_REG_*; functions
2518      reg*->ap_reg*.  PR 27550.  [Andres Salomon <dilinger voxel.net>,
2519      Joe Orton]
2521   *) Only recompile buildmark.c when we have to relink httpd.
2522      [Justin Erenkrantz]
2524   *) mod_cache: Fix up handling of revalidated responses.
2525      [Justin Erenkrantz]
2527   *) mod_disk_cache: Properly load cached ETag from on-disk structures.
2528      [Justin Erenkrantz]
2530   *) mod_authnz_ldap: Added an optional second parameter to AuthLDAPURL
2531      to allow it to override the connection type set in mod_ldap. This
2532      parameter can be set to NONE, SSL or TLS | STARTTLS.
2533      [Brad Nicholes]
2535   *) Fix --with-apr=/usr and/or --with-apr-util=/usr.  PR 29740.
2536      [Max Bowsher <maxb ukf.net>]
2538   *) mod_proxy: Fix ProxyRemoteMatch directive.  PR 33170.
2539      [Rici Lake <rici ricilake.net>]
2541   *) mod_proxy: Fix ap_proxy_canonenc API.
2542      PR 32459. [Jim Jagielski]
2544   *) mod_cache: Add CacheStorePrivate and CacheStoreNoStore directive.
2545      [Justin Erenkrantz]
2547   *) Add --enable-pie flag to configure, to build httpd as a Position
2548      Independent Executable where supported (GCC/binutils).
2549      [Joe Orton]
2551   *) proxy_balancer: Add in load-balancing via weighted traffic
2552      byte count. [Jim Jagielski]
2554   *) mod_disk_cache: Cache r->err_headers_out headers.  This allows CGI
2555      scripts to be properly cached.  [Justin Erenkrantz, Sander Striker]
2557   *) mod_ldap: Updated to use the new apr-util v1.1 apr_ldap_*_option()
2558      API for the setting of server and client SSL certificates. Replaced
2559      LDAPTrustedCA directive with LDAPTrustedGlobalCert and
2560      LDAPTrustedClientCert directives to correctly support global certs
2561      (CA certs / Netware client certs) and per connection client certs
2562      as supported by Netware, OpenLDAP and Netscape/Mozilla.
2563      [Graham Leggett]
2565   *) mod_cache: Remove unimplemented CacheForceCompletion directive.
2566      [Justin Erenkrantz]
2568   *) support/check_forensic: Fix temp file usage
2569      [Javier Fernandez-Sanguino Pen~a <jfs computer.org>]
2571   *) mod_ssl: Add SSLCADNRequestFile and SSLCADNRequestPath directives
2572      which can be used to configure a specific list of CA names to send
2573      in a client certificate request.  PR 32848.
2574      [Tim Taylor <tim.taylor dfas.mil>]
2576   *) --with-module can now take more than one module to be statically
2577      linked: --with-module=<modtype>:<modfile>,<modtype>:<modfile>,...
2578      If the <modtype>-subdirectory doesn't exist it will be created and
2579      populated with a standard Makefile.in.  [Erik Abele]
2581   *) Remove some compiler warnings within the LDAP modules [Graham Leggett]
2583   *) Add a build script to create a solaris package. [Graham Leggett]
2585   *) ap_http_scheme() replaced with ap_http_method() - this function
2586      returns the scheme (http v.s. https).
2587      [William Rowe]
2589   *) mod_proxy: Fix a request corruption problem and a buffering problem
2590      which sometimes prevented proxy-sendchunks from working.
2591      [Jeff Trawick]
2593   *) Fix the RPM spec file so that an RPM build now works. An RPM
2594      build now requires system installations of APR and APR-util.
2595      [Graham Leggett]
2597   *) Significantly simplify the load balancer scheduling algorithm
2598      for the proxy BalancerMember weighting. loadfactors (lbfactors)
2599      are now normalized with respect to each other. [Jim Jagielski]
2601   *) mod_dumpio: Added to the available module suite; it is an
2602      I/O logging/dumping module. Placed in the (new) debug module
2603      subdirectory. mod_bucketeer moved to that directory as well.
2604      [Jim Jagielski]
2606   *) core: Add support for APR_TCP_DEFER_ACCEPT to defer accepting
2607      of a connection until data is available.
2608      [Paul Querna]
2610 Changes with Apache 2.1.2
2612   *) mod_proxy: Respect errors reported by pre_connection hooks.
2613      [Jeff Trawick]
2615   *) core: Error out on sections that are missing an argument instead of
2616      silently consuming the section. PR 25460.
2617      [Geoffrey Young, Paul Querna]
2619   *) mod_cache/mod_mem_cache/mod_disk_cache: Move out of experimental.
2621   *) Upgraded PCRE to version 5.0. [Brian Pane]
2623   *) mod_cgid: Catch configuration problem where two web server instances
2624      share same ServerRoot but admin forgot to use ScriptSock.
2625      [Jeff Trawick]
2627   *) mod_cgi: Ensure that all stderr is logged for a script which returns
2628      a Location header to generate a non-local redirect.  PR 20111.
2629      [Joe Orton]
2631   *) Added the Event MPM to more efficiently handle clients during a
2632      Keep Alive request.
2633      [Paul Querna, Greg Ames]
2635 Changes with Apache 2.1.1
2637   *) mod_proxy_http: Stream content better - always flush buffered data to
2638      the client before blocking waiting for new data.  PR 19954.
2639      [Joe Orton]
2641   *) mod_ssl: Add support for command-line option "-t -DDUMP_CERTS" which
2642      will dump the filenames of all configured SSL certificates to stdout.
2643      [Joe Orton]
2645   *) mod_disk_cache: Remove a bunch of non-implemented garbage collection
2646      and cache size directives that are now available through htcacheclean.
2647      [Justin Erenkrantz]
2649   *) Add htcacheclean to support/ for assistance with mod_disk_cache.
2650      [Andreas Steinmetz]
2652   *) mod_authnz_ldap: Added the directive "Requires ldap-filter" that
2653      allows the module to authorize a user based on a complex LDAP
2654      search filter.  [Brad Nicholes]
2656   *) mod_usertrack: Run the fixups hook before other modules.
2657      PR 29755.  [Paul Querna]
2659   *) Allow mod_authnz_ldap authorization functionality to be used
2660      without requiring the user to also be authenticated through
2661      mod_authnz_ldap. This allows other authentication modules to
2662      take advantage of LDAP authorization only [PR 28253]
2663      [Jari Ahonen jah progress.com, Brad Nicholes]
2665   *) Log the client IP address when an error occurs disabling nagle on a
2666      connection, but log at a severity of debug since this error
2667      generally means that the connection was dropped before data was
2668      sent.  Log the client IP address when reporting errors in the core
2669      output filter.  [Jeff Trawick]
2671   *) core: Add a warning message if the request line read fails.
2672      [Paul Querna]
2674   *) mod_rewrite: Removed the MaxRedirects option in favor of the
2675      core LimitInternalRecursion directive.  [André Malo]
2677   *) mod_info: Added listing of the Request Hooks and added more build
2678      information like 'httpd -V' contains. Changed output to XHTML.
2679      [Paul Querna]
2681   *) mod_info: Rewrote config tree walk using a recursive function.
2682      Added ?config option. Added printout of config filename and line numbers.
2683      [Rici Lake <rici ricilake.net>, Paul Querna]
2685   *) mod_proxy: Fix type error that prevents proxy-sendchunks from working.
2686      [Justin Erenkrantz]
2688   *) mod_proxy: Fix data corruption by properly setting aside buckets.
2689      [Justin Erenkrantz]
2691   *) mod_proxy: If a request has a blank body and has a 0 Content-Length
2692      headers, pass that to the proxy.  [Justin Erenkrantz]
2694   *) Recognize QSA flag in mod_rewrite again.
2695      [Jan Kratochvil <rcpt-dev.AT.httpd.apache.org jankratochvil.net>]
2697   *) Restructured mod_auth_ldap to fit the new authentication model.
2698      The module is now called authnz_ldap and has been moved out of
2699      the modules/experimental area and into modules/aaa with the other
2700      auth modules.  Both the authn_ldap provider and the authz_ldap
2701      handler are contained within the authnz_ldap module.  The
2702      authz_ldap handler introduces 3 new "requires" values for handling
2703      authorization.  These handlers are ldap-user, ldap-group and
2704      ldap-dn. [Brad Nicholes]
2706   *) Fix some compiler warnings in proxy
2707      [Geoffrey Young <geoff@modperlcookbook.org>]
2709   *) mod_ssl: Add SSL_CLIENT_V_REMAIN variable, representing the
2710      number of days until the client cert expires.  [Joe Orton]
2712   *) Add test_config hook, run only if httpd is invoked using -t.
2713      [Joe Orton]
2715   *) Improve error handling for corrupted pid files.  [Jeff Trawick]
2717   *) mod_proxy.c and proxy_util.c: Enable compiling on 2.0-HEAD
2718      (for backwards compatibility):
2719      Avoids mod_ssl.h (not included in 2.0-HEAD) and
2720      use apr_socket_create_ex for 0.9.x
2721      [Mladen Turk]
2723   *) Added proxy_ajp.c module for proxy support to ajp:// backends.
2724      [Jean Frederic Clere]
2726   *) Fixes the build of proxy on Windows. Since the proxy_module is declared
2727      as extern using AP_MODULE_DECLARE_DATA that expands to dllexport, there
2728      is a LNK2001 error when building proxy_http. [Mladen Turk]
2730   *) Remove LDAP toolkit specific code from util_ldap and mod_auth_ldap.
2731      [Graham Leggett]
2733   *) Remove deprecated/removed APR_STATUS_IS_SUCCESS().  [Justin Erenkrantz]
2735   *) perchild MPM: Fix thread safety problem in the use of longjmp().
2736      [Tsuyoshi SASAMOTO <nazonazo super.win.ne.jp>]
2738   *) Add load balancer support to the scoreboard in preparation for
2739      load balancing support in mod_proxy. [Mladen Turk]
2741   *) mod_nw_ssl: Added the directive NWSSLUpgradeable to mod_nw_ssl to
2742      allow a non-secure connection to be upgraded to secure connections
2743      [Brad Nicholes]
2745   *) core: Add Options= syntax to AllowOverride to specify which options
2746      may be overridden in .htaccess files. PR 29310.
2747      [Tom Alsberg <alsbergt cs.huji.ac.il>, Paul Querna]
2749   *) ab: Handle long URLs with an error instead of an buffer overflow.
2750      PR 28204. [Erik Weide <erik.weidel mplus-technologies.de>, Paul Querna]
2752   *) mod_so, core: Add new command line options to print all loaded
2753      modules. '-t -D DUMP_MODULES' and '-M' will show all static
2754      and shared modules as loaded from the configuration file.
2755      [Paul Querna]
2757   *) mod_autoindex: Add ShowForbidden to IndexOptions to list files
2758      that are not shown because the subrequest returned 401 or 403.
2759      PR 10575.  [Paul Querna]
2761   *) mod_headers: implement "Early" processing option in post_read_request
2762      to enable Header and RequestHeader directives to be used to set up
2763      testcases for pre-fixups request phases [Nick Kew]
2765   *) mod_proxy: multiple bugfixes, principally support cookies in
2766      ProxyPassReverse, and don't canonicalise URL passed to backend.
2767      Documentation correspondingly updated. [Nick Kew <nick webthing.com>]
2769   *) mod_deflate: support gzip flags in inflate_out_filter
2770      [Nick Kew <nick webthing.com>]
2772   *) Drop the ErrorHeader directive which turned out to be a misnomer.
2773      Instead there's a new optional flag for the Header directive
2774      ('always'), which keeps the former ErrorHeader functionality.
2775      [André Malo]
2777   *) mod_deflate: Don't deflate responses with zero length
2778      e.g. proxied 304's [Allan Edwards]
2780   *) <IfModule> now recognizes the module identifier in addition to the
2781      file name. PR 29003.  [Edward Rudd <eddie omegaware.com>, André Malo]
2783   *) mod_ssl: Add "SSLHonorCipherOrder" directive to enable the
2784      OpenSSL 0.9.7 flag which uses the server's cipher order rather
2785      than the client's.  PR 28665.
2786      [Jim Schneider <jschneid netilla.com>]
2788   *) mod_ssl: Drop support for the CompatEnvVars argument to
2789      SSLOptions, which was never actually implemented in 2.0.
2790      [Joe Orton]
2792   *) Fix bug in mod_deflate that unconditionally sent deflate'd output
2793      even when Accept-Encoding is not present.  [Justin Erenkrantz]
2795   *) Pass environment variables through to piped loggers and start
2796      them via the shell, resolving regressions since 1.3.  PR 28815
2797      [Ken Coar, Jeff Trawick]
2799   *) External rewrite map responses are no longer limited to 2048
2800      bytes.  [André Malo]
2802   *) Proxy server was deleting cookies that Apache had already
2803      assigned if the origin server had set any cookies. PR 27023.
2804      [Jim Jagielski]
2806   *) Removed old and unmaintained ap_add_named_module API and changed
2807      the following APIs to return an error instead of hard exiting:
2808      ap_add_module, ap_add_loaded_module, ap_setup_prelinked_modules,
2809      and ap_process_resource_config.  [André Malo]
2811   *) mod_headers: Allow %% in header values to represent a literal %.
2812      [André Malo]
2814   *) mod_headers: Allow env clauses also for 'echo' and 'unset' actions.
2815      [André Malo]
2817   *) mod_headers: Allow 'echo' also for ErrorHeaders.  [André Malo]
2819   *) mod_deflate: New option for DEFLATE output file (force-gzip),
2820      new output filter 'INFLATE' for uncompressing responses.
2821      [Nick Kew <Nick at WebThing dot com>, Ian Holsman]
2823   *) Added new module mod_version, which provides version dependent
2824      configuration containers.  [André Malo]
2826   *) mod_log_config now logs all Set-Cookie headers if the %{Set-Cookie}o
2827      format is used.  PR 27787.  [André Malo]
2829   *) Allow Digest providers to return AUTH_DENIED to propagate a 401
2830      status and terminate the provider chain prior to checking the password.
2831      [Geoffrey Young]
2833   *) mod_cgid: Don't allow Scriptsock to be specified inside VirtualHost;
2834      Don't place script socket inside default server root instead of
2835      actual server root.  PR 27886.  [Jeff Trawick]
2837   *) mod_proxy: Fix handling of non-200 success status codes when
2838      "ProxyErrorOverride On" is configured.  PR 20183.
2839      [Marcus Janson <marcus.janson tre.se>, Joe Orton]
2841   *) Threaded MPMs for Unix and Win32: Add support for ThreadStackSize
2842      directive (previously NetWare-only) to override default thread
2843      stack size for threads which handle client connections.  Required
2844      for some third-party modules on platforms with small default
2845      thread stack size.  [Jeff Trawick]
2847   *) minor mod_auth_basic and mod_auth_digest sync.  mod_auth_basic
2848      now populates r->user with the (possibly unauthenticated) user,
2849      and mod_auth_digest returns 500 when a provider returns
2850      AUTH_GENERAL_ERROR.
2851      [Geoffrey Young]
2853   *) The whole codebase was relicensed and is now available under
2854      the Apache License, Version 2.0 (http://www.apache.org/licenses).
2855      [Apache Software Foundation]
2857   *) Delete some make-generated files in the server directory during
2858      "make clean" processing.  PR 26552.  [Jeff Trawick]
2860   *) Add core version query function (ap_get_server_revision) and
2861      accompanying ap_version_t structure (minor MMN bump).
2862      [André Malo]
2864   *) mod_rewrite: EOLs sent by external rewritemaps are now consumed
2865      as whole. That way, on systems with more than one EOL character
2866      rewritemap programs no longer need to switch stdout to binary
2867      mode. PR 25635.  [André Malo]
2869   *) mod_rewrite: Introduce the ability to force a content handler via
2870      the [handler=...] flag.  [André Malo]
2872   *) mod_rewrite: Introduce the RewriteCond -x check, which returns
2873      true if the pattern is a file with execution permissions.
2874      [André Malo]
2876   *) mod_rewrite: Allow proxying and RewriteRules in directory context
2877      for subrequests.  PR 14648, 15114.  [André Malo]
2879   *) mod_rewrite: Allow setting of any valid HTTP response code.
2880      PR 25917.  [André Malo]
2882   *) mod_rewrite: Cookie creation now works locale independent.
2883      [André Malo]
2885   *) mod_ssl: Add support for distributed session cache using 'distcache'.
2886      [Geoff Thorpe <geoff geoffthorpe.net>]
2888   *) mod_dav: Disallow requests with an unescaped hash character in
2889      the Request-URI.  PR 21779.  [Amit Athavale <amit_athavale lycos.com>]
2891   *) mod_proxy with ProxyErrorOverride On in a reverse-proxy configuration
2892      attaches a body to the 302 response and a wrong Content-Length header.
2893      PR: 22951 [Ermanno Scaglione scaglione ..at.. starnetone.de]
2895   *) Bring ErrorHeader concept forward from 1.3, so that response
2896      header fields can be set for return even on errors or external
2897      redirects.  [Ken Coar]
2899   *) Fix <Limit> and <LimitExcept> parsing to require a closing '>'
2900      in the initial container.  PR 25414.
2901      [Geoffrey Young <geoff apache.org>]
2903   *) Clean up httpd -V output: Instead of displaying the MPM source
2904      directory, display the MPM name and some MPM properties.
2905      [Geoffrey Young <geoff apache.org>]
2907   *) mod_ssl/mod_status: Re-enable support for output of SSL session
2908      cache information in server-status page.  [Joe Orton]
2910   *) mod_ssl: Remove the shmht session cache, shmcb should be used
2911      instead.  [Joe Orton]
2913   *) mod_logio: Account for some bytes handed to the network layer prior to
2914      dropped connections.  [Jeff Trawick]
2916   *) mod_autoindex: new directive IndexStyleSheet
2917     [Tyler Riddle <triddle_1999 yahoo.com>, Paul Querna <chip force-elite.com>]
2919   *) Fix uninitialized gprof directory name in prefork MPM.  PR 24450.
2920      [Chris Knight <Christopher.D.Knight nasa.gov>]
2922   *) Log an error when requests for URIs which fail to map to a valid
2923      filesystem name are rejected with 403.  [Jeff Trawick]
2925   *) Switch to APR 1.0 API.
2927   *) Major overhaul of mod_include's filter parser. The new parser code
2928      is expected to be more robust and should catch all of the edge cases
2929      that were not handled by the previous one. This includes a binary
2930      incompatible change of mod_include's external API.  [André Malo]
2932   *) mod_rewrite: Allow forced mimetypes [T=...] to get expanded.
2933      PR 14223.  [André Malo]
2935   *) mod_rewrite: Fix LA-U and LA-F lookups in directory context. Previously
2936      the current rewrite state was just used as lookup path, which lead to
2937      strange and often useless results. Related to PR 8493.  [André Malo]
2939   *) Change Listen directive to bind to all addresses when a hostname is
2940      not specified.  [Justin Erenkrantz]
2942   *) Correct failure with Listen directives on machines with IPv6 enabled.
2943      [Colm MacCárthaigh <colm stdlib.net>, Justin Erenkrantz]
2945   *) Fix a link failure in mod_ssl when the OpenSSL libraries contain
2946      the ENGINE functions but the engine header files are missing.
2947      [Cliff Woolley]
2949   *) mod_rewrite: RewriteRules in server context using the force
2950      type feature [T=...] no longer disable MultiViews.  [André Malo]
2952   *) mod_rewrite: Allow piped rewrite logs to be relative to ServerRoot.
2953      [André Malo]
2955   *) mod_authz_groupfile: Strip trailing spaces of group names. This
2956      hopefully saves some hours of searching for typos. PR 12863.
2957      [André Malo]
2959   *) mod_actions: Propagate the handler name to the action script via
2960      the REDIRECT_HANDLER environment variable.  [André Malo]
2962   *) mod_actions: Introduce the "virtual" modifier to the Action directive,
2963      which allows the use of handlers for virtual locations. PR 8431.
2964      [André Malo]
2966   *) mod_speling: Recognize AcceptPathInfo setting for the particular
2967      location. Default is to reject path information. PR 21059.
2968      [André Malo]
2970   *) mod_ext_filter: Add the ability to filter request bodies.
2971      [Philipp Reisner <philipp.reisner linbit.com>]
2973   *) Fix some broken log messages in WinNT MPM.
2974      [Juan Rivera <Juan.Rivera citrix.com>]
2976   *) prefork MPM: Use the right permissions for the directory created
2977      for gprof support.  [Jim Carlson <jcarlson jnous.com>]
2979   *) Fix a compile failure with recent OpenSSL and picky compilers
2980      (e.g., OpenSSL 0.9.7a and xlc_r on AIX).  [Jeff Trawick]
2982   *) OpenSSL headers should be included as "openssl/ssl.h", and not rely on
2983      the INCLUDE path to be defined properly.
2984      PR 11310. [Geoff Thorpe <geoff geoffthorpe.net>]
2986   *) Modify APACHE_CHECK_SSL_TOOLKIT to detect SSL-C. [Madhusudan Mathihalli]
2988   *) Replace the APACHE_CHECK_SSL_TOOLKIT method with a cleaner one, using
2989      autoconf tools (AC_CHECK_HEADER, AC_CHECK_LIB etc).
2990      [Geoff Thorpe <geoff geoffthorpe.net>]
2992   *) change directive name from 'compressionlevel' to 'deflatecompressionlevel'
2993      [Ian Holsman, André Malo]
2995   *) mod_negotiation: quality values are now parsed independent from
2996      the current locale. level values are now really parsed as integers.
2997      PR 17564.  [André Malo]
2999   *) Extend mod_negotiation to evaluate the environment variables
3000      no-gzip and gzip-only-text/html the same way as mod_deflate does.
3001      [André Malo]
3003   *) mod_rewrite: Fix some problems reporting errors with mapping
3004      programs (RewriteMap prg:/something).  [Jeff Trawick]
3006   *) Return 413 if chunk-ext-header is too long rather than reading from
3007      the truncated line.  PR 15857.  [Justin Erenkrantz]
3009   *) Allow restart of httpd to occur even with syntax errors in the config
3010      file.  PR 16813.  [Justin Erenkrantz]
3012   *) Use APR_LAYOUT instead of APACHE_LAYOUT in configure.  PR 15679.
3013      [Justin Erenkrantz]
3015   *) Remove files on 'make distclean' that should be.  PR 15592.
3016      [Justin Erenkrantz]
3018   *) Allow apachectl to perform status with links and elinks as well.
3019      [Justin Erenkrantz]
3021   *) mod_log_config change optional hook to return previous handler
3022      [Ian Holsman]
3024   *) Forward port of mod_actions' ability to handle arbitrary methods
3025      with the Script directive.  [André Malo]
3027   *) Let suexec send a message to stderr, if it failed or its policy
3028      was violated. This message appears in the error log and allows
3029      for easier debugging. PR 5381, 7638, 8255, 10773.  [André Malo]
3031   *) Modify buildconf to copy all required files into httpd's tree.
3032      [Thom May <thom planetarytramp.net>]
3034   *) Allow mod_dav to do weak entity comparison functions.
3035      [Justin Erenkrantz]
3037   *) Move RFC 1413 ident requests from core to new module mod_ident.
3038      [André Malo]
3040   *) Add mod_authz_owner - a forward port of "Require file-owner"
3041      and "Require file-group", which was already present in version
3042      1.3.21.  [André Malo]
3044   *) Add mod_dav_lock - a generic subset of the DAV locking implementation.
3045      [Justin Erenkrantz]
3047   *) Replace some of the mutex locking in the worker MPM with
3048      atomic operations for higher concurrency.  [Brian Pane]
3050   *) Allow 'make depend' to work with non-GCC compilers.
3051      [Justin Erenkrantz]
3053   *) If an httpd.conf has commented out AddModule directives,
3054      apxs -i -a will add an un-commented AddModule directive for
3055      the new module, which breaks the config.
3056      PR: 11212 [Joe Orton]
3058   *) Fix mod_proxy handling of filtered input bodies.  [Justin Erenkrantz]
3060   *) Move the check of the Expect request header field after the hook
3061      for ap_post_read_request, since that is the only opportunity for
3062      modules to handle Expect extensions.  [Justin Erenkrantz]
3064   *) Rewrite of aaa modules to an authn/authz model.
3065      [Dirk-Willem van Gulik, Justin Erenkrantz]
3067   [Apache 2.1.0-dev includes those bug fixes and changes with the
3068    Apache 2.0.xx tree as documented, and except as noted, below.]
3070 Changes with Apache 2.0.x and later:
3072   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup