]> granicus.if.org Git - apache/blob - CHANGES
Be extra careful to only pass the main server config to
[apache] / CHANGES
1                                                          -*- coding: utf-8 -*-
2
3 Changes with Apache 2.3.9
4
5   *) SECURITY: CVE-2010-1623 (cve.mitre.org)
6      Fix a denial of service attack against mod_reqtimeout.
7      [Stefan Fritsch]
8
9   *) core: Fix segfault if per-module LogLevel is on virtual host
10      scope. PR 50117. [Stefan Fritsch]
11
12   *) mod_proxy: Move the ProxyErrorOverride directive to have per
13      directory scope. [Graham Leggett]
14
15   *) mod_allowmethods: New module to deny certain HTTP methods without
16      interfering with authentication/authorization. [Paul Querna,
17      Igor Galić, Stefan Fritsch]
18
19   *) mod_ssl: Log certificate information if client cert verification
20      fails. PR 50094. [Lassi Tuura <lat cern ch>, Stefan Fritsch]
21
22   *) htcacheclean: Teach htcacheclean to limit cache size by number of
23      inodes in addition to size of files. Prevents a cache disk from
24      running out of space when many small files are cached.
25      [Graham Leggett]
26
27   *) core: Rename MaxRequestsPerChild to MaxConnectionsPerChild, which
28      describes more accurately what the directive does. The old name
29      still works but logs a warning. [Stefan Fritsch]
30
31   *) mod_cache: Optionally serve stale data when a revalidation returns a
32      5xx response, controlled by the CacheStaleOnError directive.
33      [Graham Leggett]
34
35   *) htcacheclean: Allow the listing of valid URLs within the cache, with
36      the option to list entry metadata such as sizes and times. [Graham
37      Leggett]
38
39   *) mod_cache: Allow control over the base URL of reverse proxied requests
40      using the CacheKeyBaseURL directive, so that the cache key can be
41      calculated from the endpoint URL instead of the server URL. [Graham
42      Leggett]
43
44   *) mod_cache: CacheLastModifiedFactor, CacheStoreNoStore, CacheStorePrivate,
45      CacheStoreExpired, CacheIgnoreNoLastMod, CacheDefaultExpire,
46      CacheMinExpire and CacheMaxExpire can be set per directory/location.
47      [Graham Leggett]
48
49   *) mod_disk_cache: CacheMaxFileSize, CacheMinFileSize, CacheReadSize and
50      CacheReadTime can be set per directory/location. [Graham Leggett]
51
52   *) core: Speed up config parsing if using a very large number of config
53      files. PR 50002 [andrew cloudaccess net]
54
55   *) mod_cache: Support the caching of HEAD requests. [Graham Leggett]
56
57   *) htcacheclean: Allow the option to round up file sizes to a given
58      block size, improving the accuracy of disk usage. [Graham Leggett]
59
60   *) mod_ssl: Add authz providers for use with mod_authz_core and its
61      RequireAny/RequireAll containers: 'ssl' (equivalent to SSLRequireSSL),
62      'ssl-verify-client' (for use with 'SSLVerifyClient optional'), and
63      'ssl-require' (expressions with same syntax as SSLRequire).
64      [Stefan Fritsch]
65
66   *) mod_ssl: Make the ssl expression parser thread-safe. It now requires
67      bison instead of yacc. [Stefan Fritsch]
68
69   *) mod_disk_cache: Change on-disk header file format to support the
70      link of the device/inode of the data file to the matching header
71      file, and to support the option of not writing a data file when
72      the data file is empty. [Graham Leggett]
73
74   *) core/mod_unique_id: Add generate_log_id hook to allow to use
75      the ID generated by mod_unique_id as error log ID for requests.
76      [Stefan Fritsch]
77
78   *) mod_cache: Make sure that we never allow a 304 Not Modified response
79      that we asked for to leak to the client should the 304 response be
80      uncacheable. PR45341 [Graham Leggett]
81
82   *) mod_cache: Add the cache_status hook to register the final cache
83      decision hit/miss/revalidate. Add optional support for an X-Cache
84      and/or an X-Cache-Detail header to add the cache status to the
85      response. PR48241 [Graham Leggett]
86
87   *) mod_authz_host: Add 'local' provider that matches connections originating
88      on the local host. PR 19938. [Stefan Fritsch]
89
90   *) Event MPM: Fix crash accessing pollset on worker thread when child
91      process is exiting.  [Jeff Trawick]
92
93   *) core: For process invocation (cgi, fcgid, piped loggers and so forth)
94      pass the system library path (LD_LIBRARY_PATH or platform-specific
95      variables) along with the system PATH, by default.  Both should be 
96      overridden together as desired using PassEnv etc; see mod_env.
97      [William Rowe]
98
99   *) mod_cache: Introduce CacheStoreExpired, to allow administrators to
100      capture a stale backend response, perform If-Modified-Since requests
101      against the backend, and serving from the cache all 304 responses.
102      This restores pre-2.2.4 cache behavior.  [William Rowe]
103
104   *) mod_rewrite: Introduce <=, >= string comparison operators, and integer
105      comparators -lt, -le, -eq, -ge, and -gt.  To help bash users and drop
106      the ambiguity of the symlink test "-ltest", introduce -h or -L as
107      symlink test operators.  [William Rowe]
108
109   *) mod_cache: Give the cache provider the opportunity to choose to cache
110      or not cache based on the buckets present in the brigade, such as the
111      presence of a FILE bucket.
112      [Graham Leggett]
113
114   *) mod_authz_core: Allow authz providers to check args while reading the
115      config and allow to cache parsed args. Move 'all' and 'env' authz
116      providers from mod_authz_host to mod_authz_core. Add 'method' authz
117      provider depending on the HTTP method.  [Stefan Fritsch]
118
119   *) mod_include: Move the request_rec within mod_include to be
120      exposed within include_ctx_t. [Graham Leggett]
121
122   *) mod_include: Reinstate support for UTF-8 character sets by allowing a
123      variable being echoed or set to be decoded and then encoded as separate
124      steps. PR47686 [Graham Leggett]
125
126   *) mod_cache: Add a discrete commit_entity() provider function within the
127      mod_cache provider interface which is called to indicate to the
128      provider that caching is complete, giving the provider the opportunity
129      to commit temporary files permanently to the cache in an atomic
130      fashion. Replace the inconsistent use of error cleanups with a formal
131      set of pool cleanups attached to a subpool, which is destroyed on error.
132      [Graham Leggett]
133
134   *) mod_cache: Change the signature of the store_body() provider function
135      within the mod_cache provider interface to support an "in" brigade
136      and an "out" brigade instead of just a single input brigade. This
137      gives a cache provider the option to consume only part of the brigade
138      passed to it, rather than the whole brigade as was required before.
139      This fixes an out of memory and a request timeout condition that would
140      occur when the original document was a large file. Introduce
141      CacheReadSize and CacheReadTime directives to mod_disk_cache to control
142      the amount of data to attempt to cache at a time. [Graham Leggett]
143
144   *) core: Add ErrorLogFormat to allow configuring error log format, including
145      additional information that is logged once per connection or request. Add
146      error log IDs for connections and request to allow correlating error log
147      lines and the corresponding access log entry. [Stefan Fritsch]
148
149   *) core: Disable sendfile by default. [Stefan Fritsch]
150
151   *) mod_cache: Check the request to determine whether we are allowed
152      to return cached content at all, and respect a "Cache-Control:
153      no-cache" header from a client. Previously, "no-cache" would
154      behave like "max-age=0". [Graham Leggett]
155
156   *) mod_cache: Use a proper filter context to hold filter data instead
157      of misusing the per-request configuration. Fixes a segfault on trunk
158      when the normal handler is used. [Graham Leggett]
159
160   *) mod_cgid: Log a warning if the ScriptSock path is truncated because
161      it is too long. PR 49388.  [Stefan Fritsch]
162
163   *) vhosts: Do not allow _default_ in NameVirtualHost, or mixing *
164      and non-* ports on NameVirtualHost, or multiple NameVirtualHost
165      directives for the same address:port, or NameVirtualHost
166      directives with no matching VirtualHosts, or multiple ip-based
167      VirtualHost sections for the same address:port.  These were
168      previously accepted with a warning, but the behavior was
169      undefined.  [Dan Poirier]
170
171   *) mod_remoteip: Fix a segfault when using mod_remoteip in conjunction with
172      Allow/Deny. PR 49838.  [Andrew Skalski <voltara gmail.com>]
173
174   *) core: DirectoryMatch can now match on the end of line character ($),
175      and sub-directories of matched directories are no longer implicitly
176      matched.  PR49809 [Eric Covener]
177
178   *) Regexps: introduce new higher-level regexp utility including parsing
179      and executing perl-style regexp ops (e.g s/foo/bar/i) and regexp memory
180      [Nick Kew]
181
182 Changes with Apache 2.3.8
183
184   *) suexec: Support large log files. PR 45856. [Stefan Fritsch]
185
186   *) core: Abort with sensible error message if no or more than one MPM is
187      loaded. [Stefan Fritsch]
188
189   *) mod_proxy: Rename erroronstatus to failonstatus.
190      [Daniel Ruggeri <DRuggeri primary.net>]
191
192   *) mod_dav_fs: Fix broken "creationdate" property.
193      Regression in version 2.3.7. [Rainer Jung]
194
195 Changes with Apache 2.3.7
196
197   *) SECURITY: CVE-2010-1452 (cve.mitre.org)
198      mod_dav, mod_cache, mod_session: Fix Handling of requests without a path 
199      segment. PR: 49246 [Mark Drayton, Jeff Trawick]
200
201   *) mod_ldap: Properly check the result returned by apr_ldap_init. PR 46076.
202      [Stefan Fritsch]
203
204   *) mod_rewrite: Log errors if rewrite map files cannot be opened. PR 49639.
205      [Stefan Fritsch]
206
207   *) mod_proxy_http: Support the 'ping' property for backend HTTP/1.1 servers
208      via leveraging 100-Continue as the initial "request".
209      [Jim Jagielski]
210
211   *) core/mod_authz_core: Introduce new access_checker_ex hook that enables
212      mod_authz_core to bypass authentication if access should be allowed by
213      IP address/env var/... [Stefan Fritsch]
214  
215   *) core: Introduce note_auth_failure hook to allow modules to add support
216      for additional auth types. This makes ap_note_auth_failure() work with
217      mod_auth_digest again. PR 48807. [Stefan Fritsch]
218
219   *) socache modules: return APR_NOTFOUND when a lookup is not found [Nick Kew]
220
221   *) mod_authn_cache: new module [Nick Kew]
222
223   *) configure: Add reallyall option for --enable-mods-shared. [Stefan Fritsch]
224
225   *) Fix Windows build when using VC6. [Gregg L. Smith <lists glewis com>]
226
227   *) mod_rewrite: Allow to set environment variables without explicitly
228      giving a value. [Rainer Jung]
229
230   *) mod_rewrite: Remove superfluous EOL from rewrite logging. [Rainer Jung]
231
232   *) mod_include: recognise "text/html; parameters" as text/html
233      PR 49616 [Andrey Chernov <ache nagual.pp.ru>]
234
235   *) CGI vars: allow PATH to be set by SetEnv, consistent with LD_LIBRARY_PATH
236      PR 43906 [Nick Kew]
237
238   *) Core: Extra robustness: don't try authz and segfault if authn
239      fails to set r->user.  Log bug and return 500 instead.
240      PR 42995 [Nick Kew]
241
242   *) HTTP protocol filter: fix handling of longer chunk extensions
243      PR 49474 [<tee.bee gmx.de>]
244
245   *) Update SSL cipher suite and add example for SSLHonorCipherOrder.
246      [Lars Eilebrecht, Rainer Jung]
247
248   *) move AddOutputFilterByType from core to mod_filter.  This should
249      fix nasty side-effects that happen when content_type is set
250      more than once in processing a request, and make it fully
251      compatible with dynamic and proxied contents. [Nick Kew]
252
253   *) mod_log_config: Implement logging for sub second timestamps and
254      request end time.  [Rainer Jung]
255
256 Changes with Apache 2.3.6
257
258   *) SECURITY: CVE-2009-3555 (cve.mitre.org)
259      mod_ssl: Comprehensive fix of the TLS renegotiation prefix injection
260      attack when compiled against OpenSSL version 0.9.8m or later. Introduces
261      the 'SSLInsecureRenegotiation' directive to reopen this vulnerability
262      and offer unsafe legacy renegotiation with clients which do not yet
263      support the new secure renegotiation protocol, RFC 5746.
264      [Joe Orton, and with thanks to the OpenSSL Team]
265
266   *) SECURITY: CVE-2009-3555 (cve.mitre.org)
267      mod_ssl: A partial fix for the TLS renegotiation prefix injection attack
268      by rejecting any client-initiated renegotiations. Forcibly disable
269      keepalive for the connection if there is any buffered data readable. Any
270      configuration which requires renegotiation for per-directory/location
271      access control is still vulnerable, unless using OpenSSL >= 0.9.8l.
272      [Joe Orton, Ruediger Pluem, Hartmut Keil <Hartmut.Keil adnovum.ch>]
273
274   *) SECURITY: CVE-2010-0408 (cve.mitre.org)
275      mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent
276      when request headers indicate a request body is incoming; not a case of
277      HTTP_INTERNAL_SERVER_ERROR.  [Niku Toivola <niku.toivola sulake.com>]
278
279   *) SECURITY: CVE-2010-0425 (cve.mitre.org)
280      mod_isapi: Do not unload an isapi .dll module until the request
281      processing is completed, avoiding orphaned callback pointers.
282      [Brett Gervasoni <brettg senseofsecurity.com>, Jeff Trawick]
283
284   *) core: Filter init functions are now run strictly once per request
285      before handler invocation.  The init functions are no longer run
286      for connection filters.  PR 49328.  [Joe Orton]
287
288   *) core: Adjust the output filter chain correctly in an internal
289      redirect from a subrequest, preserving filters from the main
290      request as necessary.  PR 17629.  [Joe Orton]
291
292   *) mod_cache: Explicitly allow cache implementations to cache a 206 Partial
293      Response if they so choose to do so. Previously an attempt to cache a 206
294      was arbitrarily allowed if the response contained an Expires or
295      Cache-Control header, and arbitrarily denied if both headers were missing.
296      [Graham Leggett]
297
298   *) core: Add microsecond timestamp fractions, process id and thread id
299      to the error log. [Rainer Jung]
300
301   *) configure: The "most" module set gets build by default.  [Rainer Jung]
302
303   *) configure: Building dynamic modules (DSO) by default.  [Rainer Jung]
304
305   *) configure: Fix broken VPATH build when using included APR.
306      [Rainer Jung]
307
308   *) mod_session_crypto: Fix configure problem when building
309      with APR 2 and for VPATH builds with included APR.
310      [Rainer Jung]
311
312   *) mod_session_crypto: API compatibility with APR 2 crypto and
313      APR Util 1.x crypto. [Rainer Jung]
314
315   *) ab: Fix memory leak with -v2 and SSL. PR 49383.
316      [Pavel Kankovsky <peak argo troja mff cuni cz>]
317
318   *) core: Add per-module and per-directory loglevel configuration.
319            Add some more trace logging.
320      mod_rewrite: Replace RewriteLog/RewriteLogLevel with trace log levels.
321      mod_ssl: Replace LogLevelDebugDump with trace log levels.
322      mod_ssl/mod_proxy*: Adjust loglevels to be less verbose at levels info
323            and debug.
324      mod_dumpio:  Replace DumpIOLogLevel with trace log levels.
325      [Stefan Fritsch]
326
327   *) mod_ldap: LDAP caching was suppressed (and ldap-status handler returns 
328      title page only) when any mod_ldap directives were used in VirtualHost 
329      context.  [Eric Covener]
330
331   *) mod_disk_cache: Decline the opportunity to cache if the response is
332      a 206 Partial Content. This stops a reverse proxied partial response
333      from becoming cached, and then being served in subsequent responses.
334      [Graham Leggett]
335
336   *) mod_deflate: avoid the risk of forwarding data before headers are set.
337      PR 49369 [Matthew Steele <mdsteele google.com>]
338
339   *) mod_authnz_ldap: Ensure nested groups are checked when the 
340      top-level group doesn't have any direct non-group members
341      of attributes in AuthLDAPGroupAttribute. [Eric Covener]
342
343   *) mod_authnz_ldap: Search or Comparison during authorization phase
344      can use the credentials from the authentication phase
345      (AuthLDAPSearchAsUSer,AuthLDAPCompareAsUser).
346      PR 48340 [Domenico Rotiroti, Eric Covener]
347
348   *) mod_authnz_ldap: Allow the initial DN search during authentication
349      to use the HTTP username/pass instead of an anonymous or hard-coded
350      LDAP id (AuthLDAPInitialBindAsUser, AuthLDAPInitialBindPattern).  
351      [Eric Covener]
352
353   *) mod_authnz_ldap: Publish requested LDAP data with an AUTHORIZE_ prefix
354      when this module is used for authorization. See AuthLDAPAuthorizePrefix.
355      PR 45584 [Eric Covener]
356
357   *) apxs -q: Stop filtering out ':' characters from the reported values.
358      PR 45343.  [Bill Cole]
359
360   *) prefork MPM: Work around possible crashes on child exit in APR reslist
361      cleanup code.  PR 43857.  [Tom Donovan]
362
363   *) ab: fix number of requests sent by ab when keepalive is enabled.  PR 48497.
364      [Bryn Dole <dole blekko.com>]
365
366   *) Log an error for failures to read a chunk-size, and return 408 instead of
367      413 when this is due to a read timeout.  This change also fixes some cases 
368      of two error documents being sent in the response for the same scenario. 
369      [Eric Covener] PR49167
370
371   *) mod_proxy_balancer: Add new directive BalancerNonce to allow admin
372      to control/set the nonce used in the balancer-manager application.
373      [Jim Jagielski]
374
375   *) mod_proxy_connect: Support port ranges in AllowConnect. PR 23673.
376      [Stefan Fritsch]
377
378   *) Proxy balancer: support setting error status according to HTTP response
379      code from a backend.  PR 48939.  [Daniel Ruggeri <DRuggeri primary.net>]
380
381   *) htcacheclean: Introduce the ability to clean specific URLs from the
382      cache, if provided as an optional parameter on the command line.
383      [Graham Leggett]
384
385   *) core: Introduce the IncludeStrict directive, which explicitly fails
386      server startup if no files or directories match a wildcard path.
387      [Graham Leggett]
388
389   *) htcacheclean: Report additional statistics about entries deleted.
390      PR 48944. [Mark Drayton mark markdrayton.info]
391
392   *) Introduce SSLFIPS directive to support OpenSSL FIPS_mode; permits all
393      builds of mod_ssl to use 'SSLFIPS off' for portability, but the proper
394      build of openssl is required for 'SSLFIPS on'.  PR 46270.
395      [Dr Stephen Henson <steve openssl.org>, William Rowe]
396
397   *) mod_proxy_http: Log the port of the remote server in various messages.
398      PR 48812. [Igor Galić <i galic brainsware org>] 
399
400   *) mod_reqtimeout: Do not wrongly enforce timeouts for mod_proxy's backend
401      connections and other protocol handlers (like mod_ftp). [Stefan Fritsch]
402
403   *) mod_proxy_ajp: Really regard the operation a success, when the client
404      aborted the connection. In addition adjust the log message if the client
405      aborted the connection. [Ruediger Pluem]
406
407   *) mod_ssl: Add the 'SSLInsecureRenegotiation' directive, which
408      allows insecure renegotiation with clients which do not yet
409      support the secure renegotiation protocol.  [Joe Orton]
410
411   *) mod_ssl: Fix a potential I/O hang if a long list of trusted CAs
412      is configured for client cert auth. PR 46952.  [Joe Orton]
413
414   *) core: Only log a 408 if it is no keepalive timeout. PR 39785
415      [Ruediger Pluem,  Mark Montague <markmont umich.edu>]
416
417   *) support/rotatelogs: Add -L option to create a link to the current
418      log file.  PR 48761 [<lyndon orthanc.ca>, Dan Poirier]
419
420   *) mod_ldap: Update LDAPTrustedClientCert to consistently be a per-directory
421      setting only, matching most of the documentation and examples. 
422      PR 46541 [Paul Reder, Eric Covener] 
423
424   *) mod_ldap: LDAPTrustedClientCert now accepts CA_DER/CA_BASE64 argument 
425      types previously allowed only in LDAPTrustedGlobalCert. [Eric Covener]
426
427   *) mod_negotiation: Preserve query string over multiviews negotiation.
428      This buglet was fixed for type maps in 2.2.6, but the same issue
429      affected multiviews and was overlooked.
430      PR 33112 [Joergen Thomsen <apache jth.net>]
431
432   *) mod_ldap: Eliminate a potential crash with multiple LDAPTrustedClientCert
433      when some are not password-protected. [Eric Covener]
434
435   *) Fix startup segfault when the Mutex directive is used but no loaded 
436      modules use httpd mutexes.  PR 48787.  [Jeff Trawick]
437
438   *) Proxy: get the headers right in a HEAD request with
439      ProxyErrorOverride, by checking for an overridden error
440      before not after going into a catch-all code path.
441      PR 41646.  [Nick Kew, Stuart Children]
442
443   *) support/rotatelogs: Support the simplest log rotation case, log
444      truncation. Useful when the log is being processed in real time
445      using a command like tail. [Graham Leggett]
446
447   *) support/htcacheclean: Teach it how to write a pid file (modelled on
448      httpd's writing of a pid file) so that it becomes possible to run
449      more than one instance of htcacheclean on the same machine.
450      [Graham Leggett]
451
452   *) Log command line on startup, so there's a record of command line
453      arguments like -f.  PR 48752.  [Dan Poirier]
454
455   *) Introduce mod_reflector, a handler capable of reflecting POSTed
456      request bodies back within the response through the output filter
457      stack. Can be used to turn an output filter into a web service.
458      [Graham Leggett]
459
460   *) mod_proxy_http: Make sure that when an ErrorDocument is served
461      from a reverse proxied URL, that the subrequest respects the status
462      of the original request. This brings the behaviour of proxy_handler
463      in line with default_handler. PR 47106. [Graham Leggett]
464
465   *) Support wildcards in both the directory and file components of
466      the path specified by the Include directive. [Graham Leggett]
467
468   *) mod_proxy, mod_proxy_http: Support remote https proxies
469      by using HTTP CONNECT.  PR 19188.  
470      [Philippe Dutrueux <lilas evidian.com>, Rainer Jung]
471
472   *) apxs: Fix -A and -a options to ignore whitespace in httpd.conf
473      [Philip M. Gollucci]
474
475   *) worker: Don't report server has reached MaxClients until it has.
476      Add message when server gets within MinSpareThreads of MaxClients.
477      PR 46996.  [Dan Poirier]
478
479   *) mod_session: Session expiry was being initialised, but not updated
480      on each session save, resulting in timed out sessions when there
481      should not have been. Fixed. [Graham Leggett]
482
483   *) mod_log_config: Add the R option to log the handler used within the
484      request. [Christian Folini <christian.folini netnea com>]
485
486   *) mod_include: Allow fine control over the removal of Last-Modified and
487      ETag headers within the INCLUDES filter, making it possible to cache
488      responses if desired. Fix the default value of the SSIAccessEnable
489      directive.  [Graham Leggett]
490
491   *) Add new UnDefine directive to undefine a variable. PR 35350.
492      [Stefan Fritsch]
493
494   *) Make ap_pregsub(), used by AliasMatch and friends, use the same syntax
495      for regex backreferences as mod_rewrite and mod_include: Remove the use
496      of '&' as an alias for '$0' and allow to escape any character with a
497      backslash. PR 48351. [Stefan Fritsch]
498
499   *) mod_authnz_ldap: If AuthLDAPCharsetConfig is set, also convert the
500      password to UTF-8. PR 45318.
501      [Johannes Müller <joh_m gmx.de>, Stefan Fritsch]
502
503   *) ab: Fix calculation of requests per second in HTML output. PR 48594.
504      [Stefan Fritsch]
505
506   *) mod_authnz_ldap: Failures to map a username to a DN, or to check a user
507      password now result in an informational level log entry instead of 
508      warning level.  [Eric Covener]
509
510 Changes with Apache 2.3.5
511
512   *) SECURITY: CVE-2010-0434 (cve.mitre.org)
513      Ensure each subrequest has a shallow copy of headers_in so that the
514      parent request headers are not corrupted.  Eliminates a problematic
515      optimization in the case of no request body.  PR 48359 
516      [Jake Scott, William Rowe, Ruediger Pluem]
517
518   *) Turn static function get_server_name_for_url() into public
519      ap_get_server_name_for_url() and use it where appropriate. This
520      fixes mod_rewrite generating invalid URLs for redirects to IPv6
521      literal addresses. [Stefan Fritsch]
522
523   *) mod_ldap: Introduce new config option LDAPTimeout to set the timeout
524      for LDAP operations like bind and search. [Stefan Fritsch]
525
526   *) mod_proxy, mod_proxy_ftp: Move ProxyFtpDirCharset from mod_proxy to
527      mod_proxy_ftp. [Takashi Sato]
528
529   *) mod_proxy, mod_proxy_connect: Move AllowCONNECT from mod_proxy to
530      mod_proxy_connect. [Takashi Sato]
531
532   *) mod_cache: Do an exact match of the keys defined by
533      CacheIgnoreURLSessionIdentifiers against the querystring instead of
534      a partial match.  PR 48401.
535      [Dodou Wang <wangdong.08 gmail.com>, Ruediger Pluem]
536
537   *) mod_proxy_balancer: Fix crash in balancer-manager. [Rainer Jung]
538
539   *) Core HTTP: disable keepalive when the Client has sent
540      Expect: 100-continue
541      but we respond directly with a non-100 response.
542      Keepalive here led to data from clients continuing being treated as
543      a new request.
544      PR 47087 [Nick Kew]
545
546   *) Core: reject NULLs in request line or request headers.
547      PR 43039 [Nick Kew]
548
549   *) Core: (re)-introduce -T commandline option to suppress documentroot
550      check at startup.
551      PR 41887 [Jan van den Berg <janvdberg gmail.com>]
552
553   *) mod_autoindex: support XHTML as equivalent to HTML in IndexOptions,
554                     ScanHTMLTitles, ReadmeName, HeaderName
555      PR 48416 [Dmitry Bakshaev <dab18 izhnet.ru>, Nick Kew]
556
557   *) Proxy: Fix ProxyPassReverse with relative URL
558      Derived (slightly erroneously) from PR 38864 [Nick Kew]
559
560   *) mod_headers: align Header Edit with Header Set when used on Content-Type
561      PR 48422 [Cyril Bonté <cyril.bonte free.fr>, Nick Kew>]
562
563   *) mod_headers: Enable multi-match-and-replace edit option
564      PR 46594 [Nick Kew]
565
566   *) mod_filter: enable it to act on non-200 responses.
567      PR 48377 [Nick Kew]
568
569 Changes with Apache 2.3.4
570
571   *) Replace AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex,
572      and WatchdogMutexPath with a single Mutex directive.  Add APIs to
573      simplify setup and user customization of APR proc and global mutexes.  
574      (See util_mutex.h.)  Build-time setting DEFAULT_LOCKFILE is no longer
575      respected; set DEFAULT_REL_RUNTIMEDIR instead.  [Jeff Trawick]
576
577   *) http_core: KeepAlive no longer accepts other than On|Off.
578      [Takashi Sato]
579
580   *) mod_dav: Remove errno from dav_error interface.  Calls to dav_new_error()
581      and dav_new_error_tag() must be adjusted to add an apr_status_t parameter.
582      [Jeff Trawick]
583
584   *) mod_authnz_ldap: Add AuthLDAPBindAuthoritative to allow Authentication to
585      try other providers in the case of an LDAP bind failure.
586      PR 46608 [Justin Erenkrantz, Joe Schaefer, Tony Stevenson]
587
588   *) Build: fix --with-module to work as documented
589      PR 43881 [Gez Saunders <gez.saunders virgin.net>]
590
591 Changes with Apache 2.3.3
592
593   *) SECURITY: CVE-2009-3095 (cve.mitre.org)
594      mod_proxy_ftp: sanity check authn credentials.
595      [Stefan Fritsch <sf fritsch.de>, Joe Orton]
596
597   *) SECURITY: CVE-2009-3094 (cve.mitre.org)
598      mod_proxy_ftp: NULL pointer dereference on error paths.
599      [Stefan Fritsch <sf fritsch.de>, Joe Orton]
600   *) mod_ssl: enable support for ECC keys and ECDH ciphers.  Tested against
601      OpenSSL 1.0.0b3.  [Vipul Gupta <vipul.gupta sun.com>, Sander Temme]
602
603   *) mod_dav: Include uri when logging a PUT error due to connection abort.
604      PR 38149. [Stefan Fritsch]
605
606   *) mod_dav: Return 409 instead of 500 for a LOCK request if the parent
607      resource does not exist or is not a collection. PR 43465. [Stefan Fritsch]
608
609   *) mod_dav_fs: Return 409 instead of 500 for Litmus test case copy_nodestcoll
610      (a COPY request where the parent of the destination resource does not
611      exist). PR 39299. [Stefan Fritsch]
612
613   *) mod_dav_fs: Don't delete the whole file if a PUT with content-range failed.
614      PR 42896. [Stefan Fritsch]
615
616   *) mod_dav_fs: Make PUT create files atomically and no longer destroy the
617      old file if the transfer aborted. PR 39815. [Paul Querna, Stefan Fritsch]
618
619   *) mod_dav_fs: Remove inode keyed locking as this conflicts with atomically
620      creating files. On systems with inode numbers, this is a format change of
621      the DavLockDB. The old DavLockDB must be deleted on upgrade.
622      [Stefan Fritsch]
623
624   *) mod_log_config: Make ${cookie}C correctly match whole cookie names
625      instead of substrings. PR 28037. [Dan Franklin <dan dan-franklin.com>,
626      Stefan Fritsch]
627
628   *) vhost: A purely-numeric Host: header should not be treated as a port.
629      PR 44979 [Nick Kew]
630
631   *) mod_ldap: Avoid 500 errors with "Unable to set LDAP_OPT_REFHOPLIMIT option to 5"
632      when built against openldap by using SDK LDAP_OPT_REFHOPLIMIT defaults unless
633      LDAPReferralHopLimit is explicitly configured.
634      [Eric Covener]
635
636   *) mod_charset_lite: Honor 'CharsetOptions NoImplicitAdd'.
637      [Eric Covener]
638
639   *) mod_ssl: Add support for OCSP Stapling.  PR 43822.  
640      [Dr Stephen Henson <shenson oss-institute.org>]
641
642   *) mod_socache_shmcb: Allow parens in file name if cache size is given.
643      Fixes SSLSessionCache directive mis-parsing parens in pathname.
644      PR 47945. [Stefan Fritsch]
645
646   *) htpasswd: Improve out of disk space handling. PR 30877. [Stefan Fritsch]
647
648   *) htpasswd: Use MD5 hash by default on all platforms. [Stefan Fritsch]
649
650   *) mod_sed: Reduce memory consumption when processing very long lines.
651      PR 48024 [Basant Kumar Kukreja <basant.kukreja sun.com>]
652
653   *) ab: Fix segfault in case the argument for -n is a very large number.
654      PR 47178. [Philipp Hagemeister <oss phihag.de>]
655
656   *) Allow ProxyPreserveHost to work in <Proxy> sections. PR 34901.
657      [Stefan Fritsch]
658
659   *) configure: Fix THREADED_MPMS so that mod_cgid is enabled again 
660      for worker MPM. [Takashi Sato]
661
662   *) mod_dav: Provide a mechanism to obtain the request_rec and pathname
663      from the dav_resource. [Jari Urpalainen <jari.urpalainen nokia.com>,
664      Brian France <brian brianfrance.com>]
665
666   *) Build: Use install instead of cp if available on installing
667      modules to avoid segmentation fault. PR 47951. [hirose31 gmail.com]
668
669   *) mod_cache: correctly consider s-maxage in cacheability
670      decisions.  [Dan Poirier]
671
672   *) mod_logio/core: Report more accurate byte counts in mod_status if
673      mod_logio is loaded. PR 25656. [Stefan Fritsch]
674
675   *) mod_ldap: If LDAPSharedCacheSize is too small, try harder to purge
676      some cache entries and log a warning. Also increase the default
677      LDAPSharedCacheSize to 500000. This is a more realistic size suitable
678      for the default values of 1024 for LdapCacheEntries/LdapOpCacheEntries.
679      PR 46749. [Stefan Fritsch]
680
681   *) mod_rewrite: Make sure that a hostname:port isn't fully qualified if
682      the request is a CONNECT request. [Bill Zajac <billz consultla.com>]
683
684   *) mod_cache: Teach CacheEnable and CacheDisable to work from within a
685      Location section, in line with how ProxyPass works. [Graham Leggett]
686
687   *) mod_reqtimeout: New module to set timeouts and minimum data rates for
688      receiving requests from the client. [Stefan Fritsch]
689
690   *) core: Fix potential memory leaks by making sure to not destroy
691      bucket brigades that have been created by earlier filters.
692      [Stefan Fritsch]
693
694   *) core, mod_deflate, mod_sed: Reduce memory usage by reusing bucket
695      brigades in several places. [Stefan Fritsch]
696
697   *) mod_cache: Fix uri_meets_conditions() so that CacheEnable will
698      match by scheme, or by a wildcarded hostname. PR 40169
699      [Peter Grandi <pg_asf asf.for.sabi.co.uk>, Graham Leggett]
700
701   *) suxec: Allow to log an error if exec fails by setting FD_CLOEXEC
702      on the log file instead of closing it. PR 10744. [Nicolas Rachinsky]
703
704   *) mod_mime: Make RemoveType override the info from TypesConfig.
705      PR 38330. [Stefan Fritsch]
706
707   *) mod_cache: Introduce the option to run the cache from within the
708      normal request handler, and to allow fine grained control over
709      where in the filter chain content is cached. [Graham Leggett]
710
711   *) core: Treat timeout reading request as 408 error, not 400.
712      Log 408 errors in access log as was done in Apache 1.3.x.
713      PR 39785 [Nobutaka Mantani <nobutaka nobutaka.org>, 
714      Stefan Fritsch <sf fritsch.de>, Dan Poirier]
715
716   *) mod_ssl: Reintroduce SSL_CLIENT_S_DN, SSL_CLIENT_I_DN, SSL_SERVER_S_DN,
717      SSL_SERVER_I_DN back to the environment variables to be set by mod_ssl.
718      [Peter Sylvester <peter.sylvester edelweb.fr>]
719
720   *) mod_disk_cache: don't cache incomplete responses, per RFC 2616, 13.8.
721      PR15866.  [Dan Poirier]
722
723   *) ab: ab segfaults in verbose mode on https sites
724      PR46393.  [Ryan Niebur]
725
726   *) mod_dav: Allow other modules to become providers and add resource types
727      to the DAV response. [Jari Urpalainen <jari.urpalainen nokia.com>,
728      Brian France <brian brianfrance.com>]
729
730   *) mod_dav: Allow other modules to add things to the DAV or Allow headers
731      of an OPTIONS request. [Jari Urpalainen <jari.urpalainen nokia.com>,
732      Brian France <brian brianfrance.com>]
733
734   *) core: Lower memory usage of core output filter.
735      [Stefan Fritsch <sf sfritsch.de>]
736
737   *) mod_mime: Detect invalid use of MultiviewsMatch inside Location and
738      LocationMatch sections.  PR47754. [Dan Poirier]
739
740   *) mod_request: Make sure the KeptBodySize directive rejects values
741      that aren't valid numbers. [Graham Leggett]
742
743   *) mod_session_crypto: Sanity check should the potentially encrypted
744      session cookie be too short. [Graham Leggett]
745
746   *) mod_session.c: Prevent a segfault when session is added but not
747      configured. [Graham Leggett]
748
749   *) htcacheclean: 19 ways to fail, 1 error message. Fixed. [Graham Leggett]
750
751   *) mod_auth_digest: Fail server start when nonce count checking
752      is configured without shared memory, or md5-sess algorithm is
753      configured. [Dan Poirier]
754
755   *) mod_proxy_connect: The connect method doesn't work if the client is
756      connecting to the apache proxy through an ssl socket. Fixed.
757      PR29744. [Brad Boyer, Mark Cave-Ayland, Julian Gilbey, Fabrice Durand,
758      David Gence, Tim Dodge, Per Gunnar Hans, Emmanuel Elango,
759      Kevin Croft, Rudolf Cardinal]
760
761   *) mod_ssl: The error message when SSLCertificateFile is missing should
762      at least give the name or position of the problematic virtual host
763      definition. [Stefan Fritsch sf sfritsch.de]
764
765   *) mod_auth_digest: Fix null pointer when qop=none. [Dan Poirier]
766
767   *) Add support for HTTP PUT to ab. [Jeff Barnes <jbarnesweb yahoo.com>]
768
769   *) mod_headers: generalise the envclause to support expression
770      evaluation with ap_expr parser [Nick Kew]
771
772   *) mod_cache: Introduce the thundering herd lock, a mechanism to keep
773      the flood of requests at bay that strike a backend webserver as
774      a cached entity goes stale. [Graham Leggett]
775
776   *) mod_auth_digest: Fix usage of shared memory and re-enable it.
777      PR 16057 [Dan Poirier]
778
779   *) Preserve Port information over internal redirects
780      PR 35999 [Jonas Ringh <jonas.ringh cixit.se>]
781
782   *) Proxy: unable to connect to a backend is SERVICE_UNAVAILABLE,
783      rather than BAD_GATEWAY or (especially) NOT_FOUND.
784      PR 46971 [evanc nortel.com]
785
786   *) Various modules: Do better checking of pollset operations in order to
787      avoid segmentation faults if they fail. PR 46467
788      [Stefan Fritsch <sf sfritsch.de>]
789
790   *) mod_autoindex: Correctly create an empty cell if the description
791      for a file is missing. PR 47682 [Peter Poeml <poeml suse.de>]
792
793   *) ab: Fix broken error messages after resolver or connect() failures.
794      [Jeff Trawick]
795
796   *) SECURITY: CVE-2009-1890 (cve.mitre.org) 
797      Fix a potential Denial-of-Service attack against mod_proxy in a
798      reverse proxy configuration, where a remote attacker can force a
799      proxy process to consume CPU time indefinitely.  [Nick Kew, Joe Orton]
800
801   *) SECURITY: CVE-2009-1191 (cve.mitre.org)
802      mod_proxy_ajp: Avoid delivering content from a previous request which
803      failed to send a request body. PR 46949 [Ruediger Pluem]
804
805   *) htdbm: Fix possible buffer overflow if dbm database has very
806      long values.  PR 30586 [Dan Poirier]
807
808   *) core: Return APR_EOF if request body is shorter than the length announced
809      by the client. PR 33098 [ Stefan Fritsch <sf sfritsch.de>]
810
811   *) mod_suexec: correctly set suexec_enabled when httpd is run by a
812      non-root user and may have insufficient permissions.
813      PR 42175 [Jim Radford <radford blackbean.org>]
814
815   *) mod_ssl: Fix SSL_*_DN_UID variables to use the 'userID' attribute
816      type.  PR 45107.  [Michael Ströder <michael stroeder.com>,
817      Peter Sylvester <peter.sylvester edelweb.fr>]
818
819   *) mod_proxy_http: fix case sensitivity checking transfer encoding
820      PR 47383 [Ryuzo Yamamoto <ryuzo.yamamoto gmail.com>]
821
822   *) mod_alias: ensure Redirect issues a valid URL.
823      PR 44020 [Håkon Stordahl <hakon stordahl.org>]
824
825   *) mod_dir: add FallbackResource directive, to enable admin to specify
826      an action to happen when a URL maps to no file, without resorting
827      to ErrorDocument or mod_rewrite.  PR 47184 [Nick Kew]
828
829   *) mod_cgid: Do not leak the listening Unix socket file descriptor to the
830      CGI process. PR 47335 [Kornél Pál <kornelpal gmail.com>]
831
832   *) mod_rewrite: Remove locking for writing to the rewritelog.
833      PR 46942 [Dan Poirier <poirier pobox.com>]
834
835   *) mod_alias: check sanity in Redirect arguments.
836      PR 44729 [Sönke Tesch <st kino-fahrplan.de>, Jim Jagielski]
837
838   *) mod_proxy_http: fix Host: header for literal IPv6 addresses.
839      PR 47177 [Carlos Garcia Braschi <cgbraschi gmail.com>]
840
841   *) mod_cache: Add CacheIgnoreURLSessionIdentifiers directive to ignore
842      defined session identifiers encoded in the URL when caching.
843      [Ruediger Pluem]
844
845   *) mod_rewrite: Fix the error string returned by RewriteRule.
846      RewriteRule returned "RewriteCond: bad flag delimiters" when the 3rd
847      argument of RewriteRule was not started with "[" or not ended with "]".
848      PR 45082 [Vitaly Polonetsky <m_vitaly topixoft.com>]
849
850   *) Windows: Fix usage message.
851      [Rainer Jung]
852
853   *) apachectl: When passing through arguments to httpd in
854      non-SysV mode, use the "$@" syntax to preserve arguments.
855      [Eric Covener]
856
857   *) mod_dbd: add DBDInitSQL directive to enable SQL statements to
858      be run when a connection is opened.  PR 46827
859      [Marko Kevac <mkevac gmail.com>]
860
861   *) mod_cgid: Improve handling of long AF_UNIX socket names (ScriptSock).  
862      PR 47037.  [Jeff Trawick]
863
864   *) mod_proxy_ajp: Check more strictly that the backend follows the AJP
865      protocol. [Mladen Turk]
866
867   *) mod_proxy_ajp: Forward remote port information by default.
868      [Rainer Jung]
869
870   *) Allow MPMs to be loaded dynamically, as with most other modules.  Use
871      --enable-mpms-shared={list|"all"} to enable.  This required changes to
872      the MPM interfaces.  Removed: mpm.h, mpm_default.h (as an installed 
873      header), APACHE_MPM_DIR, MPM_NAME, ap_threads_per_child,
874      ap_max_daemons_limit, ap_my_generation, etc.  ap_mpm_query() can't be
875      called until after the register-hooks phase.  [Jeff Trawick]
876
877   *) mod_ssl: Add SSLProxyCheckPeerExpire and SSLProxyCheckPeerCN directives
878      to enable stricter checking of remote server certificates.
879      [Ruediger Pluem]
880
881   *) ab: Fix a 100% CPU loop on platforms where a failed non-blocking connect
882      returns EINPROGRESS and a subsequent poll() returns only POLLERR.
883      Observed on HP-UX.  [Eric Covener]
884
885   *) Remove broken support for BeOS, TPF, and even older platforms such
886      as A/UX, Next, and Tandem.  [Jeff Trawick]
887
888   *) mod_proxy_ftp: Add ProxyFtpListOnWildcard directive to allow files with
889      globbing characters to be retrieved instead of converted into a 
890      directory listing.  PR 46789 [Dan Poirier <poirier pobox.com>]
891
892   *) Provide ap_retained_data_create()/ap_retained_data_get() for preservation
893      of module state across unload/load.  [Jeff Trawick]
894
895   *) mod_substitute: Fix a memory leak. PR 44948
896      [Dan Poirier <poirier pobox.com>]
897
898 Changes with Apache 2.3.2
899
900   *) mod_mime_magic: Fix detection of compressed content. [Rainer Jung]
901
902   *) mod_negotiation: Escape pathes of filenames in 406 responses to avoid
903      HTML injections and HTTP response splitting.  PR 46837.
904      [Geoff Keating <geoffk apple.com>]
905
906   *) mod_ssl: add support for type-safe STACK constructs in OpenSSL
907      development HEAD.  PR 45521.  [Kaspar Brand, Sander Temme]
908
909   *) ab: Fix maintenance of the pollset to resolve EALREADY errors 
910      with kqueue (BSD/OS X) and excessive CPU with event ports (Solaris).
911      PR 44584.  Use APR_POLLSET_NOCOPY for better performance with some
912      pollset implementations.  [Jeff Trawick]
913
914   *) mod_disk_cache: The module now turns off sendfile support if
915      'EnableSendfile off' is defined globally. [Lars Eilebrecht]
916
917   *) mod_deflate: Adjust content metadata before bailing out on 304
918      responses so that the metadata does not differ from 200 response.
919      [Roy T. Fielding]
920
921   *) mod_deflate: Fix creation of invalid Etag headers. We now make sure
922      that the Etag value is properly quoted when adding the gzip marker.
923      PR 39727, 45023. [Lars Eilebrecht, Roy T. Fielding]
924
925   *) Added 20x22 icons for ODF, SVG, and XML documents.  PR 37185.
926      [Peter Harlow]
927
928   *) Disabled DefaultType directive and removed ap_default_type()
929      from core.  We now exclude Content-Type from responses for which
930      a media type has not been configured via mime.types, AddType,
931      ForceType, or some other mechanism. PR 13986. [Roy T. Fielding]
932
933   *) mod_rewrite: Add IPV6 variable to RewriteCond
934      [Ryan Phillips <ryan-apache trolocsis.com>]
935
936   *) core: Enhance KeepAliveTimeout to support a value in milliseconds.
937      PR 46275. [Takashi Sato]
938
939   *) rotatelogs: Allow size units B, K, M, G and combination of
940      time and size based rotation. [Rainer Jung]
941
942   *) rotatelogs: Add flag for verbose (debug) output. [Rainer Jung]
943
944   *) mod_ssl: Fix merging of SSLRenegBufferSize directive. PR 46508
945      [<tlhackque yahoo.com>]
946
947   *) core: Translate the the status line to ASCII on EBCDIC platforms in
948      ap_send_interim_response() and for locally generated "100 Continue"
949      responses.  [Eric Covener]
950
951   *) prefork: Fix child process hang during graceful restart/stop in
952      configurations with multiple listening sockets.  PR 42829.  [Joe Orton,
953      Jeff Trawick]
954
955   *) mod_session_crypto: Ensure that SessionCryptoDriver can only be
956      set in the global scope. [Graham Leggett]
957
958   *) mod_ext_filter: We need to detect failure to startup the filter
959      program (a mangled response is not acceptable).  Fix to detect
960      failure, and offer configuration option either to abort or
961      to remove the filter and continue.
962      PR 41120 [Nick Kew]
963
964   *) mod_session_crypto: Rewrite the session_crypto module against the
965      apr_crypto API. [Graham Leggett]
966
967   *) mod_auth_form: Fix a pool lifetime issue, don't remove the subrequest
968      until the main request is cleaned up. [Graham Leggett]
969
970 Changes with Apache 2.3.1
971
972   *) ap_slotmem: Add in new slot-based memory access API impl., including
973      2 providers (mod_sharedmem and mod_plainmem) [Jim Jagielski,
974      Jean-Frederic Clere, Brian Akins <brian.akins turner.com>]
975
976   *) mod_include: support generating non-ASCII characters as entities in SSI
977      PR 25202 [Nick Kew]
978
979   *) core/utils: Enhance ap_escape_html API to support escaping non-ASCII chars
980      PR 25202 [Nick Kew]
981
982   *) mod_rewrite: fix "B" flag breakage by reverting r5589343
983     PR 45529 [Bob Ionescu <bobsiegen googlemail.com>]
984
985   *) CGI: return 504 (Gateway timeout) rather than 500 when a script
986      times out before returning status line/headers.
987      PR 42190 [Nick Kew]
988
989   *) mod_cgid: fix segfault problem on solaris.
990      PR 39332 [Masaoki Kobayashi <masaoki techfirm.co.jp>]
991
992   *) mod_proxy_scgi: Added. [André Malo]
993
994   *) mod_cache: Introduce 'no-cache' per-request environment variable
995      to prevent the saving of an otherwise cacheable response.
996      [Eric Covener]
997
998   *) mod_rewrite: Introduce DiscardPathInfo|DPI flag to stop the troublesome
999      way that per-directory rewrites append the previous notion of PATH_INFO
1000      to each substitution before evaluating subsequent rules. 
1001      PR 38642 [Eric Covener]
1002
1003   *) mod_cgid: Do not add an empty argument when calling the CGI script.
1004      PR 46380 [Ruediger Pluem]
1005
1006   *) scoreboard: Remove unused sb_type from process_score.
1007      [Torsten Foertsch <torsten.foertsch gmx.net>, Chris Darroch]
1008
1009   *) mod_ssl: Add SSLRenegBufferSize directive to allow changing the
1010      size of the buffer used for the request-body where necessary
1011      during a per-dir renegotiation.  PR 39243.  [Joe Orton]
1012
1013   *) mod_proxy_fdpass: New module to pass a client connection over to a separate
1014      process that is reading from a unix daemon socket.
1015
1016   *) mod_ssl: Improve environment variable extraction to be more
1017      efficient and to correctly handle DNs with duplicate tags.
1018      PR 45975.  [Joe Orton]
1019
1020   *) Remove the obsolete serial attribute from the RPM spec file. Compile
1021      against the external pcre. Add missing binaries fcgistarter, and
1022      mod_socache* and mod_session*. [Graham Leggett]
1023
1024 Changes with Apache 2.3.0
1025
1026   *) mod_ratelimit: New module to do bandwidth rate limiting. [Paul Querna]
1027
1028   *) Remove X-Pad header which was added as a work around to a bug in 
1029      Netscape 2.x to 4.0b2. [Takashi Sato <takashi lans-tv.com>]
1030
1031   *) Add DTrace Statically Defined Tracing (SDT) probes.
1032     [Theo Schlossnagle <jesus omniti.com>, Paul Querna]
1033
1034   *) mod_proxy_balancer: Move all load balancing implementations
1035      as individual, self-contained mod_proxy submodules under
1036      modules/proxy/balancers [Jim Jagielski]
1037
1038   *) Rename APIs to include ap_ prefix:
1039         find_child_by_pid -> ap_find_child_by_pid
1040         suck_in_APR -> ap_suck_in_APR
1041         sys_privileges_handlers -> ap_sys_privileges_handlers
1042         unixd_accept -> ap_unixd_accept
1043         unixd_config -> ap_unixd_config
1044         unixd_killpg -> ap_unixd_killpg
1045         unixd_set_global_mutex_perms -> ap_unixd_set_global_mutex_perms
1046         unixd_set_proc_mutex_perms -> ap_unixd_set_proc_mutex_perms
1047         unixd_set_rlimit -> ap_unixd_set_rlimit
1048      [Paul Querna]
1049
1050   *) mod_lbmethod_heartbeat: New module to load balance mod_proxy workers
1051      based on heartbeats. [Paul Querna]
1052
1053   *) mod_heartmonitor: New module to collect heartbeats, and write out a file
1054      so that other modules can load balance traffic as needed. [Paul Querna]
1055
1056   *) mod_heartbeat: New module to generate multicast heartbeats to know if a 
1057      server is online. [Paul Querna]
1058
1059   *) mod_buffer: Honour the flush bucket and flush the buffer in the
1060      input filter. Make sure that metadata buckets are written to
1061      the buffer, not to the final brigade. [Graham Leggett]
1062
1063   *) mod_buffer: Optimise the buffering of heap buckets when the heap
1064      buckets stay exactly APR_BUCKET_BUFF_SIZE long. [Graham Leggett,
1065      Ruediger Pluem]
1066
1067   *) mod_buffer: Optional support for buffering of the input and output
1068      filter stacks. Can collapse many small buckets into fewer larger
1069      buckets, and prevents excessively small chunks being sent over
1070      the wire. [Graham Leggett]
1071
1072   *) mod_privileges: new module to make httpd on Solaris privileges-aware
1073      and to enable different virtualhosts to run with different
1074      privileges and Unix user/group IDs [Nick Kew]
1075
1076   *) mod_mem_cache: this module has been removed. [William Rowe]
1077
1078   *) authn/z: Remove mod_authn_default and mod_authz_default.
1079      [Chris Darroch]
1080
1081   *) authz: Fix handling of authz configurations, make default authz
1082      logic replicate 2.2.x authz logic, and replace <Satisfy*>, Reject,
1083      and AuthzMergeRules directives with Match, <Match*>, and AuthzMerge
1084      directives.  [Chris Darroch]
1085
1086   *) mod_authn_core: Prevent crash when provider alias created to
1087      provider which is not yet registered.  [Chris Darroch]
1088
1089   *) mod_authn_core: Add AuthType of None to support disabling
1090      authentication.  [Chris Darroch]
1091
1092   *) core: Allow <Limit> and <LimitExcept> directives to nest, and
1093      constrain their use to conform with that of other access control
1094      and authorization directives.  [Chris Darroch]
1095
1096   *) unixd: turn existing code into a module, and turn the set user/group
1097      and chroot into a child_init function. [Nick Kew]
1098
1099   *) mod_dir: Support "DirectoryIndex disabled" 
1100      Suggested By André Warnier <aw ice-sa.com> [Eric Covener]
1101
1102   *) mod_ssl: Send Content-Type application/ocsp-request for POST requests to
1103      OSCP responders. PR 46014 [Dr Stephen Henson <steve openssl.org>]
1104
1105   *) mod_authnz_ldap: don't return NULL-valued environment variables to
1106      other modules.  PR 39045 [Francois Pesce <francois.pesce gmail.com>]
1107
1108   *) Don't adjust case in pathname components that are not of interest
1109      to mod_mime.  Fixes mod_negotiation's use of such components.
1110      PR 43250 [Basant Kumar Kukreja <basant.kukreja sun.com>]
1111
1112   *) Be tolerant in what you accept - accept slightly broken
1113      status lines from a backend provided they include a valid status code.
1114      PR 44995 [Rainer Jung <rainer.jung kippdata.de>]
1115
1116   *) New module mod_sed: filter Request/Response bodies through sed
1117      [Basant Kumar Kukreja <basant.kukreja sun.com>]
1118
1119   *) mod_auth_form: Make sure that basic authentication is correctly
1120      faked directly after login. [Graham Leggett]
1121
1122   *) mod_session_cookie, mod_session_dbd: Make sure cookies are set both
1123      within the output headers and error output headers, so that the
1124      session is maintained across redirects. [Graham Leggett]
1125
1126   *) mod_auth_form: Make sure the logged in user is populated correctly
1127      after a form login. Fixes a missing REMOTE_USER variable directly
1128      following a login. [Graham Leggett]
1129
1130   *) mod_session_cookie: Make sure that cookie attributes are correctly
1131      included in the blank cookie when cookies are removed. This fixes an
1132      inability to log out when using mod_auth_form. [Graham Leggett]
1133
1134   *) mod_session: Prevent a segfault when a CGI script sets a cookie with a
1135      null value. [David Shane Holden <dpejesh apache.org>]
1136
1137   *) core, authn/z: Determine registered authn/z providers directly in
1138      ap_setup_auth_internal(), which allows optional functions that just
1139      wrapped ap_list_provider_names() to be removed from authn/z modules.
1140      [Chris Darroch]
1141
1142   *) authn/z: Convert common provider version strings to macros.
1143      [Chris Darroch]
1144
1145   *) core: When testing for slash-terminated configuration paths in
1146      ap_location_walk(), don't look past the start of an empty string
1147      such as that created by a <Location ""> directive.
1148      [Chris Darroch]
1149
1150   *) core, mod_proxy: If a kept_body is present, it becomes safe for
1151      subrequests to support message bodies. Make sure that safety
1152      checks within the core and within the proxy are not triggered
1153      when kept_body is present. This makes it possible to embed
1154      proxied POST requests within mod_include. [Graham Leggett]
1155
1156   *) mod_auth_form: Make sure the input filter stack is properly set
1157      up before reading the login form. Make sure the kept body filter
1158      is correctly inserted to ensure the body can be read a second
1159      time safely should the authn be successful. [Graham Leggett,
1160      Ruediger Pluem]
1161
1162   *) mod_request: Insert the KEPT_BODY filter via the insert_filter
1163      hook instead of during fixups. Add a safety check to ensure the
1164      filters cannot be inserted more than once. [Graham Leggett,
1165      Ruediger Pluem]
1166
1167   *) ap_cache_cacheable_headers_out() will (now) always
1168      merge an error headers _before_ clearing them and _before_
1169      merging in the actual entity headers and doing normal
1170      hop-by-hop cleansing. [Dirk-Willem van Gulik].
1171
1172   *) cache: retire ap_cache_cacheable_hdrs_out() which was used
1173      for both in- and out-put headers; and replace it by a single
1174      ap_cache_cacheable_headers() wrapped in a in- and out-put
1175      specific ap_cache_cacheable_headers_in()/out(). The latter
1176      which will also merge error and ensure content-type. To keep
1177      cache modules consistent with ease. This API change bumps
1178      up the minor MM by one [Dirk-Willem van Gulik].
1179
1180   *) Move the KeptBodySize directive, kept_body filters and the
1181      ap_parse_request_body function out of the http module and into a
1182      new module called mod_request, reducing the size of the core.
1183      [Graham Leggett]
1184
1185   *) mod_dbd: Handle integer configuration directive parameters with a
1186      dedicated function.
1187
1188   *) Change the directives within the mod_session* modules to be valid
1189      both inside and outside the location/directory sections, as
1190      suggested by wrowe. [Graham Leggett]
1191
1192   *) mod_auth_form: Add a module capable of allowing end users to log
1193      in using an HTML form, storing the credentials within mod_session.
1194      [Graham Leggett]
1195
1196   *) Add a function to the http filters that is able to parse an HTML
1197      form request with the type of application/x-www-form-urlencoded.
1198      [Graham Leggett]
1199
1200   *) mod_session_crypto: Initialise SSL in the post config hook.
1201      [Ruediger Pluem, Graham Leggett]
1202
1203   *) mod_session_dbd: Add a session implementation capable of storing
1204      session information in a SQL database via the dbd interface. Useful
1205      for sites where session privacy is important. [Graham Leggett]
1206
1207   *) mod_session_crypto: Add a session encoding implementation capable
1208      of encrypting and decrypting sessions wherever they may be stored.
1209      Introduces a level of privacy when sessions are stored on the
1210      browser. [Graham Leggett]
1211
1212   *) mod_session_cookie: Add a session implementation capable of storing
1213      session information within cookies on the browser. Useful for high
1214      volume sites where server bound sessions are too resource intensive.
1215      [Graham Leggett]
1216
1217   *) mod_session: Add a generic session interface to unify the different
1218      attempts at saving persistent sessions across requests.
1219      [Graham Leggett]
1220
1221   *) core, authn/z: Avoid calling access control hooks for internal requests
1222      with configurations which match those of initial request.  Revert to
1223      original behaviour (call access control hooks for internal requests
1224      with URIs different from initial request) if any access control hooks or
1225      providers are not registered as permitting this optimization.
1226      Introduce wrappers for access control hook and provider registration
1227      which can accept additional mode and flag data.  [Chris Darroch]
1228
1229   *) Introduced ap_expr API for expression evaluation.
1230      This is adapted from mod_include, which is the first module
1231      to use the new API.
1232      [Nick Kew]
1233
1234   *) mod_authz_dbd: When redirecting after successful login/logout per
1235      AuthzDBDRedirectQuery, do not report authorization failure, and use
1236      first row returned by database query instead of last row.
1237      [Chris Darroch]
1238
1239   *) mod_ldap: Correctly return all requested attribute values
1240      when some attributes have a null value. 
1241      PR 44560 [Anders Kaseorg <anders kaseorg.com>]
1242
1243   *) core: check symlink ownership if both FollowSymlinks and
1244      SymlinksIfOwnerMatch are set [Nick Kew]
1245
1246   *) core: fix origin checking in SymlinksIfOwnerMatch
1247      PR 36783 [Robert L Mathews <rob-apache.org.bugs tigertech.net>]
1248
1249   *) Activate mod_cache, mod_file_cache and mod_disk_cache as part of the
1250      'most' set for '--enable-modules' and '--enable-shared-mods'. Include 
1251      mod_mem_cache in 'all' as well. [Dirk-Willem van Gulik]
1252
1253   *) Also install mod_so.h, mod_rewrite.h and mod_cache.h; as these
1254      contain public function declarations which are useful for
1255      third party module authors. PR 42431 [Dirk-Willem van Gulik].
1256
1257   *) mod_dir, mod_negotiation: pass the output filter information
1258      to newly created sub requests; as these are later on used
1259      as true requests with an internal redirect. This allows for
1260      mod_cache et.al. to trap the results of the redirect. 
1261      [Dirk-Willem van Gulik, Ruediger Pluem]
1262
1263   *) mod_ldap: Add support (taking advantage of the new APR capability)
1264      for ldap rebind callback while chasing referrals. This allows direct
1265      searches on LDAP servers (in particular MS Active Directory 2003+)
1266      using referrals without the use of the global catalog.
1267      PRs 26538, 40268, and 42557 [Paul J. Reder]
1268
1269   *) ApacheMonitor.exe: Introduce --kill argument for use by the
1270      installer.  This will permit the installation tool to remove
1271      all running instances before attempting to remove the .exe.
1272      [William Rowe]
1273
1274   *) mod_ssl: Add support for OCSP validation of client certificates.
1275      PR 41123.  [Marc Stern <marc.stern approach.be>, Joe Orton]
1276
1277   *) mod_serf: New module for Reverse Proxying. [Paul Querna]
1278
1279   *) core: Add the option to keep aside a request body up to a certain
1280      size that would otherwise be discarded, to be consumed by filters
1281      such as mod_include. When enabled for a directory, POST requests
1282      to shtml files can be passed through to embedded scripts as POST
1283      requests, rather being downgraded to GET requests. [Graham Leggett]
1284
1285   *) mod_ssl: Fix TLS upgrade (RFC 2817) support.  PR 41231.  [Joe Orton]
1286
1287   *) scoreboard: Correctly declare ap_time_process_request.
1288      PR 43789 [Tom Donovan <Tom.Donovan acm.org>]
1289
1290   *) core; scoreboard: ap_get_scoreboard_worker(sbh) now takes the sbh member
1291      from the connection rec, ap_get_scoreboard_worker(proc, thread) will now
1292      provide the unusual legacy lookup.  [William Rowe]
1293
1294   *) mpm winnt: fix null pointer dereference
1295      PR 42572 [Davi Arnaut]
1296
1297   *) mod_authnz_ldap, mod_authn_dbd: Tidy up the code to expose authn
1298      parameters to the environment. Improve portability to
1299      EBCDIC machines by using apr_toupper(). [Martin Kraemer]
1300
1301   *) mod_ldap, mod_authnz_ldap: Add support for nested groups (i.e. the ability
1302      to authorize an authenticated user via a "require ldap-group X" directive
1303      where the user is not in group X, but is in a subgroup contained in X.
1304      PR 42891 [Paul J. Reder]
1305
1306   *) mod_ssl: Add support for caching SSL Sessions in memcached. [Paul Querna]
1307
1308   *) apxs: Enhance -q flag to print all known variables and their values
1309      when invoked without variable name(s). 
1310      [William Rowe, Sander Temme]
1311
1312   *) apxs: Eliminate run-time check for mod_so.  PR 40653.
1313      [David M. Lee <dmlee crossroads.com>]
1314
1315   *) beos MPM: Create pmain pool and run modules' child_init hooks when
1316      entering ap_mpm_run(), then destroy pmain when exiting ap_mpm_run().
1317      [Chris Darroch]
1318
1319   *) netware MPM: Destroy pmain pool when exiting ap_mpm_run() so that
1320      cleanups registered in modules' child_init hooks are performed.
1321      [Chris Darroch]
1322
1323   *) Fix issue which could cause error messages to be written to access logs
1324      on Win32.  PR 40476.  [Tom Donovan <Tom.Donovan acm.org>]
1325
1326   *) The LockFile directive, which specifies the location of
1327      the accept() mutex lockfile, is deprecated. Instead, the
1328      AcceptMutex directive now takes an optional lockfile
1329      location parameter, ala SSLMutex. [Jim Jagielski]
1330
1331   *) mod_authn_dbd: Export any additional columns queried in the SQL select
1332      into the environment with the name AUTHENTICATE_<COLUMN>. This brings
1333      mod_authn_dbd behaviour in line with mod_authnz_ldap. [Graham Leggett]
1334
1335   *) mod_dbd: Key the storage of prepared statements on the hex string
1336      value of server_rec, rather than the server name, as the server name
1337      may change (eg when the server name is set) at any time, causing
1338      weird behaviour in modules dependent on mod_dbd. [Graham Leggett]
1339
1340   *) mod_proxy_fcgi: Added win32 build. [Mladen Turk]
1341
1342   *) sendfile_nonblocking() takes the _brigade_ as an argument, gets 
1343      the first bucket from the brigade, finds it not to be a FILE
1344      bucket and barfs. The fix is to pass a bucket rather than a brigade.
1345      [Niklas Edmundsson <nikke acc.umu.se>]
1346
1347   *) mod_rewrite: support rewritemap by SQL query [Nick Kew]
1348
1349   *) ap_get_server_version() has been removed.  Third-party modules must 
1350      now use ap_get_server_banner() or ap_get_server_description().
1351      [Jeff Trawick]
1352
1353   *) All MPMs: Introduce a check_config phase between pre_config and
1354      open_logs, to allow modules to review interdependent configuration
1355      directive values and adjust them while messages can still be logged
1356      to the console.  Handle relevant MPM directives during this phase
1357      and format messages for both the console and the error log, as
1358      appropriate.  [Chris Darroch]
1359
1360   *) core: Do not allow internal redirects like the DirectoryIndex of mod_dir
1361      to circumvent the symbolic link checks imposed by FollowSymLinks and
1362      SymLinksIfOwnerMatch. [Nick Kew, Ruediger Pluem, William Rowe]
1363
1364   *) New SSLLogLevelDebugDump [ None (default) | IO (not bytes) | Bytes ]
1365      configures the I/O Dump of SSL traffic, when LogLevel is set to Debug.
1366      The default is none as this is far greater debugging resolution than 
1367      the typical administrator is prepared to untangle.  [William Rowe]
1368
1369   *) mod_disk_cache: If possible, check if the size of an object to cache is
1370      within the configured boundaries before actually saving data.
1371      [Niklas Edmundsson <nikke acc.umu.se>]
1372
1373   *) Worker and event MPMs: Remove improper scoreboard updates which were
1374      performed in the event of a fork() failure.  [Chris Darroch]
1375
1376   *) Add support for fcgi:// proxies to mod_rewrite.
1377      [Markus Schiegl <ms schiegl.com>]
1378
1379   *) Remove incorrect comments from scoreboard.h regarding conditional
1380      loading of worker_score structure with mod_status, and remove unused
1381      definitions relating to old life_status field.
1382      [Chris Darroch <chrisd pearsoncmg.com>]
1383
1384   *) Remove allocation of memory for unused array of lb_score pointers
1385      in ap_init_scoreboard().  [Chris Darroch <chrisd pearsoncmg.com>]
1386
1387   *) Add mod_proxy_fcgi, a FastCGI back end for mod_proxy.
1388      [Garrett Rooney, Jim Jagielski, Paul Querna]
1389
1390   *) Event MPM: Fill in the scoreboard's tid field. PR 38736.
1391      [Chris Darroch <chrisd pearsoncmg.com>]
1392
1393   *) mod_charset_lite: Remove Content-Length when output filter can 
1394      invalidate it.  Warn when input filter can invalidate it.
1395      [Jeff Trawick]
1396
1397   *) Authz: Add the new module mod_authn_core that will provide common
1398      authn directives such as 'AuthType', 'AuthName'.  Move the directives
1399      'AuthType' and 'AuthName' out of the core module and merge mod_authz_alias 
1400      into mod_authn_core. [Brad Nicholes]
1401
1402   *) Authz: Move the directives 'Order', 'Allow', 'Deny' and 'Satisfy' 
1403      into the new module mod_access_compat which can be loaded to provide 
1404      support for these directives.
1405      [Brad Nicholes]
1406
1407   *) Authz: Move the 'Require' directive from the core module as well as 
1408      add the directives '<SatisfyAll>', '<SatisfyOne>', '<RequireAlias>' 
1409      and 'Reject' to mod_authz_core. The new directives introduce 'AND/OR' 
1410      logic into the authorization processing. [Brad Nicholes]
1411
1412   *) Authz: Add the new module mod_authz_core which acts as the 
1413      authorization provider vector and contains common authz 
1414      directives. [Brad Nicholes]
1415
1416   *) Authz: Renamed mod_authz_dbm authz providers from 'group' and 
1417      'file-group' to 'dbm-group' and 'dbm-file-group'. [Brad Nicholes]
1418
1419   *) Authz: Added the new authz providers 'env', 'ip', 'host', 'all' to handle
1420      host-based access control provided by mod_authz_host and invoked 
1421      through the 'Require' directive. [Brad Nicholes]
1422
1423   *) Authz: Convert all of the authz modules from hook based to 
1424      provider based. [Brad Nicholes]
1425
1426   *) mod_cache: Add CacheMinExpire directive to set the minimum time in
1427      seconds to cache a document.
1428      [Brian Akins <brian.akins turner.com>, Ruediger Pluem]
1429
1430   *) mod_authz_dbd: SQL authz with Login/Session support [Nick Kew]
1431
1432   *) Fix typo in ProxyStatus syntax error message.
1433      [Christophe Jaillet <christophe.jaillet wanadoo.fr>]
1434
1435   *) Asynchronous write completion for the Event MPM.  [Brian Pane]
1436
1437   *) Added an End-Of-Request bucket type.  The logging of a request and
1438      the freeing of its pool are now done when the EOR bucket is destroyed.
1439      This has the effect of delaying the logging until right after the last
1440      of the response is sent; ap_core_output_filter() calls the access logger
1441      indirectly when it destroys the EOR bucket.  [Brian Pane]
1442
1443   *) Rewrite of logresolve support utility: IPv6 addresses are now supported
1444      and the format of statistical output has changed. [Colm MacCarthaigh]
1445
1446   *) Rewrite of ap_coreoutput_filter to do nonblocking writes  [Brian Pane]
1447
1448   *) Added new connection states for handler and write completion
1449      [Brian Pane]
1450
1451   *) mod_cgid: Refuse to work on Solaris 10 due to OS bugs.  PR 34264.
1452      [Justin Erenkrantz]
1453
1454   *) Teach mod_ssl to use arbitrary OIDs in an SSLRequire directive,
1455      allowing string-valued client certificate attributes to be used for
1456      access control, as in: SSLRequire "value" in OID("1.3.6.1.4.1.18060.1")
1457      [Martin Kraemer, David Reid]
1458
1459   [Apache 2.3.0-dev includes those bug fixes and changes with the
1460    Apache 2.2.xx tree as documented, and except as noted, below.]
1461
1462 Changes with Apache 2.2.x and later:
1463
1464   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup
1465
1466 Changes with Apache 2.0.x and later:
1467
1468   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup
1469
1470 Changes with Apache 1.3.x and later:
1471
1472   *) http://svn.apache.org/viewvc/httpd/httpd/branches/1.3.x/src/CHANGES?view=markup
1473
1474