]> granicus.if.org Git - apache/blob - CHANGES
DBDPersist takes On or Off
[apache] / CHANGES
1                                                         -*- coding: utf-8 -*-
2 Changes with Apache 2.3.0
3
4   *) mod_ldap: Avoid possible crashes, hangs, and busy loops due to
5      improper merging of the cache lock in vhost config
6      PR 43164 [Eric Covener]
7
8   *) mod_negotiation: preserve Query String in resolving a type map
9      PR 33112 [Jørgen Thomsen <apache jth.net>, Nick Kew]
10
11   *) mod_deflate: fix content_encoding detection in inflate_out filter
12      when it's not in response headers table.
13      PR 42993 [Nick Kew]
14
15   *) mod_proxy: Improve network performance by setting APR_TCP_NODELAY
16      (disable Nagle algorithm) on sockets if implemented.
17      PR 42871 [Christian BOITEL <christian_boitel yahoo.fr>, Jim Jagielski]
18
19   *) mod_info: mod_info outputs invalid XHTML 1.0 transitional.
20      PR 42847 [Rici Lake <rici ricilake.net>]
21
22   *) mime.types: add registered Apple installer type
23      PR 40379 [Peter Bierman <pmb+apache apple.com>]
24    
25   *) mod_ldap, mod_authnzldap: Add support for nested groups (i.e. the ability
26      to authorize an authenticated user via a "require ldap-group X" directive
27      where the user is not in group X, but is in a subgroup contained in X.
28      PR 42891 [Paul J. Reder]
29
30   *) mod_deflate: don't try to process metadata buckets as data.  what should
31      have been a 413 error was logged as a 500 and a blank screen appeared
32      at the browser.
33      [Greg Ames, Ruediger Pluem]
34
35   *) SECURITY: CVE-2007-3304 (cve.mitre.org)
36      prefork, worker, event MPMs: Ensure that the parent process cannot
37      be forced to kill processes outside its process group.  [Joe Orton]
38
39   *) SECURITY: CVE-2006-5752 (cve.mitre.org)
40      mod_status: Fix a possible XSS attack against a site with a public
41      server-status page and ExtendedStatus enabled, for browsers which
42      perform charset "detection".  Reported by Stefan Esser.  [Joe Orton]
43
44   *) Event MPM: Add support for running under mod_ssl, by reverting to the
45      Worker MPM behaviors, when run under an input filter that buffers
46      its own data. [Paul Querna]
47
48   *) mod_ssl: Add support for caching SSL Sessions in memcached. [Paul Querna]
49
50   *) SECURITY: CVE-2007-1862 (cve.mitre.org)
51      mod_mem_cache: Copy headers into longer lived storage; header names and 
52      values could previously point to cleaned up storage
53      PR 41551 [Davi Arnaut <davi haxent.com.br>]
54
55   *) mod_cache: Do not set Date or Expires when they are missing from
56      the original response or are invalid.  [Justin Erenkrantz]
57
58   *) mod_cache: Correctly handle HEAD requests on expired cache content.
59      PR 41230.  [Niklas Edmundsson]
60
61   *) mod_proxy: Added ProxyPassMatch directive, which is similar
62      to ProxyPass but takes a regex local path prefix. [Jim Jagielski]
63
64   *) mod_so: Solve dev's confusion by reporting expected/seen module
65      magic signatures when failing with a 'garbled' message, and solve
66      user's confusion by pointing out 'perhaps compiled for a different
67      version of apache?'.  [William Rowe]
68
69   *) mod_ssl: Version reporting update; displays 'compiled against'
70      Apache and build-time SSL Library versions at loglevel [info],
71      while reporting the run-time SSL Library version in the server
72      info tags.  Helps to identify a mod_ssl built against one flavor
73      of OpenSSL but running against another (also adds SSL-C version
74      number reporting.)  [William Rowe]
75
76   *) core: Change etag generation to produce identical results on 
77      32-bit and 64-bit platforms.  PR 40064.  [Joe Orton]
78
79   *) ab: Add -r option to continue after socket receive errors. 
80      [Filip Hanik <devlist hanik.com>]
81
82   *) mod_ldap: Fix the search limit parameter to ldap_search_ext_s()
83      for SDKs that define LDAP_NO_LIMIT to something other than -1.
84      [David Jones <oscaremma gmail.com>]
85
86   *) mod_dbd: Introduce configuration groups to allow inheritance by virtual
87      hosts of database configurations from the main server.  Determine the
88      minimal set of distinct configurations and share connection pools
89      whenever possible.  Allow virtual hosts to override inherited SQL
90      statements.  PR 41302.  [Chris Darroch]
91
92   *) core: Fix broken chunk filtering that causes all non blocking reads to be
93      converted into blocking reads.  PR 41056. [Jean-Frederic Clere, Jim Jagielski]
94
95   *) apxs: Enhance -q flag to print all known variables and their values
96      when invoked without variable name(s). 
97      [William Rowe, Sander Temme]
98
99   *) mod_dbd: Create memory sub-pools for each DB connection and close
100      DB connections in a pool cleanup function.  Ensure prepared statements
101      are destroyed before DB connection is closed.  When using reslists,
102      prevent segfaults when child processes exit, and stop memory leakage
103      of ap_dbd_t structures.  Avoid use of global s->process->pool, which
104      isn't destroyed by exiting child processes in most multi-process MPMs.
105      PR 39985.  [Chris Darroch, Nick Kew]
106
107   *) apxs: Eliminate run-time check for mod_so.  PR 40653.
108      [David M. Lee <dmlee crossroads.com>]
109
110   *) beos MPM: Create pmain pool and run modules' child_init hooks when
111      entering ap_mpm_run(), then destroy pmain when exiting ap_mpm_run().
112      [Chris Darroch]
113
114   *) netware MPM: Destroy pmain pool when exiting ap_mpm_run() so that
115      cleanups registered in modules' child_init hooks are performed.
116      [Chris Darroch]
117
118   *) mod_dbd: Handle error conditions in dbd_construct() properly.
119      Simplify ap_dbd_open() and use correct arguments to apr_dbd_error()
120      when non-threaded.  Register correct cleanup data in non-threaded
121      ap_dbd_acquire() and ap_dbd_cacquire().  Clean up configuration data
122      and merge function.  Use ap_log_error() wherever possible.
123      [Chris Darroch, Nick Kew]
124
125   *) core: Do not replace a Date header set by a proxied backend server.
126      PR 40232. [Ruediger Pluem]
127
128   *) mod_proxy: Ensure that at least scheme://hostname[:port] matches between
129      worker and URL when searching for the best fitting worker for a given URL.
130      PR 40910. [Ruediger Pluem]
131
132   *) mod_cache: Remove expired content from cache that cannot be revalidated.
133      PR 30370. [Ruediger Pluem]
134
135   *) mod_dbd: Stash DBD connections in request_config of initial request
136      only, or else sub-requests and internal redirections may cause
137      entire DBD pool to be stashed in a single HTTP request.  [Chris Darroch]
138
139   *) mod_proxy: Add a missing assignment in an error checking code path.
140      PR 40865. [Andrew Rucker Jones <arjones simultan.dyndns.org>]
141
142   *) mod_mem_cache: Increase the minimum and default value for
143      MCacheMinObjectSize from 0 to 1, as a MCacheMinObjectSize of 0 does not
144      make sense and leads to a division by zero.  PR 40576.
145      [Xuekun Hu <xuekun.hu gmail.com>]
146
147   *) Fix issue which could cause error messages to be written to access logs
148      on Win32.  PR 40476.  [Tom Donovan <Tom.Donovan acm.org>]
149
150   *) The LockFile directive, which specifies the location of
151      the accept() mutex lockfile, is deprecated. Instead, the
152      AcceptMutex directive now takes an optional lockfile
153      location parameter, ala SSLMutex. [Jim Jagielski]
154
155   *) mod_authn_dbd: Export any additional columns queried in the SQL select
156      into the environment with the name AUTHENTICATE_<COLUMN>. This brings
157      mod_authn_dbd behaviour in line with mod_authnz_ldap. [Graham Leggett]
158
159   *) mod_dbd: Key the storage of prepared statements on the hex string
160      value of server_rec, rather than the server name, as the server name
161      may change (eg when the server name is set) at any time, causing
162      weird behaviour in modules dependent on mod_dbd. [Graham Leggett]
163
164   *) mod_proxy_fcgi: Added win32 build. [Mladen Turk]
165
166   *) sendfile_nonblocking() takes the _brigade_ as an argument, gets 
167      the first bucket from the brigade, finds it not to be a FILE
168      bucket and barfs. The fix is to pass a bucket rather than a brigade.
169      [Niklas Edmundsson <nikke acc.umu.se>]
170
171   *) mod_rewrite: support rewritemap by SQL query [Nick Kew]
172
173   *) ap_get_server_version() has been removed.  Third-party modules must 
174      now use ap_get_server_banner() or ap_get_server_description().
175      [Jeff Trawick]
176
177   *) All MPMs: Introduce a check_config phase between pre_config and
178      open_logs, to allow modules to review interdependent configuration
179      directive values and adjust them while messages can still be logged
180      to the console.  Handle relevant MPM directives during this phase
181      and format messages for both the console and the error log, as
182      appropriate.  [Chris Darroch]
183
184   *) mod_proxy: don't URLencode tilde in path component
185      [Stijn Hoop <stijn sandcat.nl>]
186
187   *) mpm_winnt: Fix return values from wait_for_many_objects.
188      The return value is index to the signaled thread in the
189      creted_threads array. We can not use WAIT_TIMEOUT because
190      his value is defined as 258, thus limiting the MaxThreads
191      to that value. [Mladen Turk]
192
193   *) core: Do not allow internal redirects like the DirectoryIndex of mod_dir
194      to circumvent the symbolic link checks imposed by FollowSymLinks and
195      SymLinksIfOwnerMatch. [Nick Kew, Ruediger Pluem, William Rowe]
196
197   *) mod_proxy: Support environment variable interpolation in reverse
198      proxying directives. [Nick Kew]
199
200   *) core: Add the filename of the configuration file to the warning message
201      about the useless use of AllowOverride. PR 39992.
202      [Darryl Miles <darryl darrylmiles.org>]
203
204   *) New SSLLogLevelDebugDump [ None (default) | IO (not bytes) | Bytes ]
205      configures the I/O Dump of SSL traffic, when LogLevel is set to Debug.
206      The default is none as this is far greater debugging resolution than 
207      the typical administrator is prepared to untangle.  [William Rowe]
208
209   *) mod_disk_cache: If possible, check if the size of an object to cache is
210      within the configured boundaries before actually saving data.
211      [Niklas Edmundsson <nikke acc.umu.se>]
212
213   *) mod_cache: Convert all values to seconds before comparing them when
214      checking whether to send a Warning header for a stale response.
215      PR 39713. [Owen Taylor <otaylor redhat.com>]
216
217   *) mod_disk_cache: Delete temporary files if they cannot be renamed to their
218      final name. [Davi Arnaut <davi haxent.com.br>]
219
220   *) Worker and event MPMs: Remove improper scoreboard updates which were
221      performed in the event of a fork() failure.  [Chris Darroch]
222
223   *) Add support for fcgi:// proxies to mod_rewrite.
224      [Markus Schiegl <ms schiegl.com>]
225
226   *) Remove incorrect comments from scoreboard.h regarding conditional
227      loading of worker_score structure with mod_status, and remove unused
228      definitions relating to old life_status field.
229      [Chris Darroch <chrisd pearsoncmg.com>]
230
231   *) Remove allocation of memory for unused array of lb_score pointers
232      in ap_init_scoreboard().  [Chris Darroch <chrisd pearsoncmg.com>]
233
234   *) Add mod_proxy_fcgi, a FastCGI back end for mod_proxy.
235      [Garrett Rooney, Jim Jagielski, Paul Querna]
236
237   *) Event MPM: Fill in the scoreboard's tid field. PR 38736.
238      [Chris Darroch <chrisd pearsoncmg.com>]
239
240   *) mod_charset_lite: Remove Content-Length when output filter can 
241      invalidate it.  Warn when input filter can invalidate it.
242      [Jeff Trawick]
243
244   *) mod_ssl: Fix spurious hostname mismatch warning for valid
245      wildcard certificates.  PR 37911.  [Nick Burch <nick torchbox.com>]
246
247   *) Authz: Add the new module mod_authn_core that will provide common
248      authn directives such as 'AuthType', 'AuthName'.  Move the directives
249      'AuthType' and 'AuthName' out of the core module and merge mod_authz_alias 
250      into mod_authn_core. [Brad Nicholes]
251
252   *) Authz: Move the directives 'Order', 'Allow', 'Deny' and 'Satisfy' 
253      into the new module mod_access_compat which can be loaded to provide 
254      support for these directives.
255      [Brad Nicholes]
256
257   *) Authz: Move the 'Require' directive from the core module as well as 
258      add the directives '<SatisfyAll>', '<SatisfyOne>', '<RequireAlias>' 
259      and 'Reject' to mod_authz_core. The new directives introduce 'AND/OR' 
260      logic into the authorization processing. [Brad Nicholes]
261
262   *) Authz: Add the new module mod_authz_core which acts as the 
263      authorization provider vector and contains common authz 
264      directives. [Brad Nicholes]
265
266   *) Authz: Renamed mod_authz_dbm authz providers from 'group' and 
267      'file-group' to 'dbm-group' and 'dbm-file-group'. [Brad Nicholes]
268
269   *) Authz: Added the new authz providers 'env', 'ip', 'host', 'all' to handle
270      host-based access control provided by mod_authz_host and invoked 
271      through the 'Require' directive. [Brad Nicholes]
272
273   *) Authz: Convert all of the authz modules from hook based to 
274      provider based. [Brad Nicholes]
275
276   *) mod_cache: Add CacheMinExpire directive to set the minimum time in
277      seconds to cache a document.
278      [Brian Akins <brian.akins turner.com>, Ruediger Pluem]
279
280   *) mod_authz_dbd: SQL authz with Login/Session support [Nick Kew]
281
282   *) Fix typo in ProxyStatus syntax error message.
283      [Christophe Jaillet <christophe.jaillet wanadoo.fr>]
284
285   *) Asynchronous write completion for the Event MPM.  [Brian Pane]
286
287   *) Added an End-Of-Request bucket type.  The logging of a request and
288      the freeing of its pool are now done when the EOR bucket is destroyed.
289      This has the effect of delaying the logging until right after the last
290      of the response is sent; ap_core_output_filter() calls the access logger
291      indirectly when it destroys the EOR bucket.  [Brian Pane]
292
293   *) Rewrite of logresolve support utility: IPv6 addresses are now supported
294      and the format of statistical output has changed. [Colm MacCarthaigh]
295
296   *) Rewrite of ap_coreoutput_filter to do nonblocking writes  [Brian Pane]
297
298   *) Added new connection states for handler and write completion
299      [Brian Pane]
300
301   *) mod_cgid: Refuse to work on Solaris 10 due to OS bugs.  PR 34264.
302      [Justin Erenkrantz]
303
304   *) Teach mod_ssl to use arbitrary OIDs in an SSLRequire directive,
305      allowing string-valued client certificate attributes to be used for
306      access control, as in: SSLRequire "value" in OID("1.3.6.1.4.1.18060.1")
307      [Martin Kraemer, David Reid]
308
309 Changes with Apache 2.2.5
310
311   *) mod_deflate: fix protocol handling in deflate input filter
312      PR 23287 [Nick Kew]
313
314   *) mod_proxy: fix buffer overflow issue
315      PR 41144 [Davi Arnaut]
316
317   *) mime.types: add Registered Javascript/ECMAScript MIME types (RFC4329)
318      PR 40299 [Dave Hodder <dmh dmh.org.uk>]
319
320   *) mod_filter: fix integer comparisons in dispatch rules
321      PR 41835 [Nick Kew]
322
323   *) mod_filter: fix merging of ! and = in FilterChain
324      PR 42186 [Issac Goldstand <margol beamartyr.net>]
325  
326   *) mod_cache: Let Cache-Control max-age set the expiration of the cached
327      representation if Expires is not set.  [Justin Erenkrantz]
328
329   *) mod_disk_cache: Allow Vary'd responses to be refreshed properly.
330      [Justin Erenkrantz]
331
332   *) mod_cache: Allow caching of requests with query arguments when
333      Cache-Control max-age is explicitly specified.  [Justin Erenkrantz]
334
335   *) mod_proxy: Print the correct error message for erroneous configured
336      ProxyPass directives. PR 40439. [serai lans-tv.com]
337
338   *) mod_so: Provide more helpful LoadModule feedback when an error occurs.
339      [William Rowe]
340
341   *) mod_alias: Accept path components (URL part) in Redirects.  PR 35314.
342      [Nick Kew]
343
344   *) mod_headers: Allow % at the end of a Header value.  PR 36609.
345      [Nick Kew, Ruediger Pluem]
346
347   *) mod_cache: Use the same cache key throughout the whole request processing
348      to handle escaped URLs correctly.  PR 41475. [Ruediger Pluem]
349
350   *) mod_cache: Add CacheIgnoreQueryString directive.  PR 41484.
351      [Fredrik Widlund <fredrik.widlund qbrick.com>]
352
353   *) mod_cache: While serving a cached entity ensure that filters that have
354      been applied to this cached entity before saving it to the cache are not
355      applied again. PR 40090. [Ruediger Pluem]
356
357   *) mod_cache: Correctly cache objects whose URL query string has been
358      modified by mod_rewrite. PR 40805. [Ruediger Pluem]
359
360   *) mod_proxy_http: Change handling of ProxyErrorOverride such that
361      3xx responses are no longer over-ridden (handling of 4xx and 5xx
362      responses is unchanged).  PR 39245.
363      [Jeff Trawick, Bart van der Schans <schans hippo.nl>]
364
365   *) htdbm: Enable crypt support on platforms with crypt() but not
366      <crypt.h>, such as z/OS. [David Jones <oscaremma gmail.com>]
367
368   *) mod_ssl: initialize thread locks before initializing the hardware
369      acceleration library, so the latter can make use of the former. 
370      PR 20951. [adunn at ncipher.com]
371
372   *) ab.c: Correct behavior of HTTP request headers sent by ab
373      in presence of -H command-line overrides. PR 31268, 26554.
374      [Arvind Srinivasan <arvind.srinivasan  sun.com>]
375
376   *) ab.c: The apr_port_t type is unsigned, but ab was using a
377      signed format code in its reports. PR 42070.
378      [Takashi Sato <serai  lans-tv.com>]
379
380   *) core: Correct a regression since 2.0.x in the handling of AllowOverride 
381      Options.  PR 41829.  [Torsten Förtsch <torsten.foertsch gmx.net>]
382
383   *) mod_proxy_http: Handle request bodies larger than 2 GB by converting
384      the Content-Length header of the request correctly. PR 40883.
385      [Ruediger Pluem, toadie <toadie643 gmail.com>]
386
387   *) mod_proxy: Fix some proxy setting inheritance problems (eg:
388      ProxyTimeout). PR 11540. [Stuart Children <stuart terminus.co.uk>]
389
390   *) Unix MPMs: Catch SIGFPE so that exception hooks and CoreDumpDirectory
391      can work after that terminating signal.
392      [Eric Covener <covener gmail.com>]
393
394   *) Win32: Makefile.win will now build with MS VC 8 (Visual Studio 2005)
395      including embedding the .manifest information into each binary.
396      [William Rowe]
397
398 Changes with Apache 2.2.4
399
400   *) mod_isapi: Correctly present SERVER_PORT_SECURE.
401      PR: 40573.  [Matt Eaton <asf divinehawk.com>]
402
403   *) Allow htcacheclean, httxt2dbm, and fcgistarter to link apr/apr-util
404      statically like the older support programs.
405      [Eric Covener <covener gmail.com>]
406
407   *) core: Fix NONBLOCK status of listening sockets on restart/graceful
408      PR 37680.  [Darius Davis <darius-abz free-range.com.au>]
409
410   *) mod_deflate: Rework inflate output and deflate output filter to fix several
411      issues: Incorrect handling of flush buckets, potential memory leaks,
412      excessive memory usage in inflate output filter for large compressed
413      content. PR 39854. [Ruediger Pluem, Nick Kew, Justin Erenkrantz]
414
415   *) mod_mem_cache: Memory leak fix: Unconditionally free the buffer.
416      [Davi Arnaut <davi haxent.com.br>]
417
418   *) Allow mod_dumpio to log at other than DEBUG levels via
419      the new DumpIOLogLevel directive. [Jim Jagielski]
420
421   *) rotatelogs: Improve error message for open failures.  PR 39487.
422      [Joe Orton]
423
424   *) Better detection and clean up of ldap connection that has been
425      terminated by the ldap server.  PR 40878.
426      [Rob Baily <rbaily servicebench com>]
427
428   *) mod_mem_cache: Convert mod_mem_cache to use APR memory pool functions
429      by creating a root pool for object persistence across requests. This
430      also eliminates the need for custom serialization code.
431      [Davi Arnaut <davi haxent.com.br>]
432
433   *) mod_authnz_ldap: Add an AuthLDAPRemoteUserAttribute directive. If
434      set, REMOTE_USER will be set to this attribute, rather than the
435      username supplied by the user. Useful for example when you want users
436      to log in using an email address, but need to supply a userid instead
437      to the backend.  [Graham Leggett]
438
439   *) mod_cgi and mod_cgid: Don't use apr_status_t error return
440      from input filters as HTTP return value from the handler.
441      PR 31579.  [Nick Kew]
442
443   *) mod_cache: Eliminate a bogus error in the log when a filter returns
444      AP_FILTER_ERROR.  [Niklas Edmundsson <nikke acc.umu.se>]
445
446   *) core: Fix issue which could cause piped loggers to be orphaned and never
447      terminate after a graceful restart.  PR 40651.  [Joe Orton, Ruediger Pluem]
448
449   *) core: Fix address-in-use startup failure caused by corruption of the list
450      of listen sockets in some configurations with multiple generic Listen
451      directives.  [Jeff Trawick]
452
453   *) mod_headers: Support regexp-based editing of HTTP headers.  [Nick Kew]
454
455   *) mod_proxy: Add explicit flushing feature. When Servlet container sends AJP
456      body message with size 0, this means that Servlet container has asked for
457      an explicit flush. Create flush bucket in that case. This feature has been
458      added to the recent Tomcat versions without breaking the AJP protocol.
459      [Mladen Turk]
460
461   *) mod_proxy_balancer: Set the new environment variable BALANCER_ROUTE_CHANGED
462      if a worker with a route different from the one supplied by the client
463      had been chosen or if the client supplied no routing information for
464      a balancer with sticky sessions. [Ruediger Pluem]
465
466   *) mod_proxy_balancer: Add information about the route, the sticky session
467      and the worker used during a request as environment variables. PR 39806.
468      [Brian <brectanu gmail.com>]
469
470   *) mod_proxy: Don't try to use dead backend connection. PR 37770.
471      [Olivier BOEL <ob dorrboel.com>]
472
473   *) mod_proxy_balancer: Extract stickysession routing information contained as
474      parameter in the URL correctly. PR 40400.
475      [Ruediger Pluem, Tomokazu Harada <harada sysrdc.ns-sol.co.jp>]
476
477   *) mod_proxy_ajp: Added cping/cpong support for the AJP protocol.
478      A new worker directive ping=timeout will cause CPING packet
479      to be send expecting CPONG packet within defined timeout.
480      In case the backend is too busy this will fail instead
481      sending the full header.  [Mladen Turk]
482
483   *) mod_cache: From RFC3986 (section 6.2.3.) if a URI contains an
484      authority component and an empty path, the empty path is to be equivalent
485      to "/". It explicitly cites the following four URIs as equivalents:
486        http://example.com
487        http://example.com/
488        http://example.com:/
489        http://example.com:80/
490      [Davi Arnaut <davi haxent.com.br>]
491
492   *) mod_cache: Don't cache requests with a expires date in the past;
493      otherwise mod_cache will always try to cache the URL. This bug
494      might lead to numerous rename() errors on win32 if the URL was
495      previously cached.  [Davi Arnaut <davi haxent.com.br>]
496
497   *) mod_disk_cache: Make sure that only positive integers are accepted
498      for the CacheMaxFileSize and CacheMinFileSize parameters in the
499      config file. PR39380.  [Niklas Edmundsson <nikke acc.umu.se>]
500
501   *) core: Deal with the widespread use of apr_status_t return values
502      as HTTP status codes, as documented in PR#31759 (a bug shared by
503      the default handler, mod_cgi, mod_cgid, mod_proxy, and probably
504      others). PR31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
505
506   *) mod_ext_filter: Handle filter names which include capital letters.
507      PR 40323.  [Jeff Trawick]
508
509   *) mod_isapi: Avoid double trailing slashes in HSE_REQ_MAP_URL_TO_PATH
510      support.  Also corrects the slashes for Windows.
511      PR 15993.  [William Rowe]
512
513   *) mod_isapi: Handle "HTTP/1.1 200 OK" style status lines correctly, the
514      token parser worked while the resulting length was misinterpreted.
515      PR 29098.  [Brock Bland <bbland serena.com>]
516
517   *) mod_isapi: Return 0 (failure) for more of the various ap_pass_brigade
518      attempts to stream the response at the client.  Log these as well.
519      PR 30022, 40470.  [William Rowe, Matt Eaton <asf divinehawk.com>]
520
521   *) mod_isapi: Ensure we walk through all the methods the developer may have
522      employed to report their HTTP status result code.
523      PR 16637 30033 28089.  [Matt Lewandowsky <matt iamcode.net>, William Rowe]
524
525   *) mod_echo: Fix precedence problem in if statement. PR 40658.
526      [Larry Cipriani <lvc lucent.com>]
527
528   *) mod_mime_magic: Fix precedence problem in if statement. PR 40656.
529      [Larry Cipriani <lvc lucent.com>]
530
531   *) The full server version information is now included in the error log at
532      startup as well as server status reports, irrespective of the setting
533      of the ServerTokens directive.  ap_get_server_version() is now 
534      deprecated, and is replaced by ap_get_server_banner() and 
535      ap_get_server_description().  [Jeff Trawick]
536
537   *) mod_proxy_balancer: Workers can now be defined as part of
538      a balancer cluster "set" in which members of a lower-numbered set
539      are preferred over higher numbered ones.  [Jim Jagielski]
540
541   *) mod_proxy_balancer: Workers can now be defined as "hot standby" which
542      will only be used if all other workers are unusable (eg: in
543      error or disabled). Also, the balancer-manager displays the election
544      count and I/O counts of all workers.  [Jim Jagielski]
545
546   *) mod_proxy_ajp: Close connection to backend if reading of request body
547      fails. PR 40310.  [Ian Abel <ianabel mxtelecom.com>]
548
549   *) mod_proxy_balancer: Retry worker chosen by route / redirect worker if
550      it is in error state before sending "Service Temporarily Unavailable".
551      PR 38962.  [Christian Boitel <cboitel lfdj.com>]
552
553 Changes with Apache 2.2.3
554
555   *) SECURITY: CVE-2006-3747 (cve.mitre.org)
556      mod_rewrite: Fix an off-by-one security problem in the ldap scheme
557      handling.  For some RewriteRules this could lead to a pointer being
558      written out of bounds.  Reported by Mark Dowd of McAfee.
559      [Mark Cox]
560
561   *) mod_authn_alias: Add a check to make sure that the base provider and the
562      alias names are different and also that the alias has not been registered
563      before. PR 40051. [Brad Nicholes]
564
565   *) mod_authnz_ldap: Fix a problem with invalid auth error detection for LDAP
566      client SDKs that don't support the LDAP_SECURITY_ERROR macro. PR 39529.
567      [Ray Price <dohrayme yahoo.com>, Josh Fenlason <jfenlason ptc.com>]
568
569   *) mod_cache: Do not overwrite the Content-Type in the cache, for
570      successfully revalidated cached objects. PR 39647. [Ruediger Pluem]
571
572   *) mod_speling: Add directive to deal with case corrections only
573      and ignore other misspellings [Olivier Thereaux  <ot w3.org>]
574
575   *) mod_dbd: Fix dependence on virtualhost configuration in
576      defining prepared statements (possible segfault at startup
577      in user modules such as mod_authn_dbd).  [Nick Kew]
578
579   *) Add optional 'scheme://' prefix to ServerName directive,
580      allowing correct determination of the canonical server URL
581      for use behind a proxy or offload device handling SSL; fixing
582      redirect generation in those cases. PR 33398. [Sander Temme]
583
584   *) Added server_scheme field to server_rec for above. Minor MMN bump.
585      [Sander Temme]
586
587   *) mod_cache: Make caching of reverse SSL proxies possible again. PR 39593.
588      [Ruediger Pluem, Joe Orton]
589
590   *) Worker MPM: On graceless shutdown or restart, send signals to
591      each worker thread to wake them up if they're polling on a
592      Keep-Alive connection.  PR 38737.  [Chris Darroch]
593
594   *) worker and event MPMs: fix excessive forking if fork() or child_init
595      take a long time.  PR 39275.
596      [Greg Ames, Jeff Trawick, Chris Darroch <chrisd pearsoncmg.com> ]
597
598   *) configure: Add "--with-included-apr" flag to force use of the
599      bundled version of APR at build time.  [Joe Orton]
600
601   *) Respect GracefulShutdownTimeout in the worker and event MPMs.
602      [Chris Darroch, Garrett Rooney]
603
604   *) mod_mem_cache: Set content type correctly when delivering data from
605      cache. PR 39266. [Ruediger Pluem]
606
607   *) mod_autoindex: Fix filename escaping with FancyIndexing disabled.
608      PR 38910.  [Robby Griffin <rmg terc.edu>]
609
610   *) mod_charset_lite: Bypass translation when the source and dest charsets
611      are the same. [Jeff Trawick]
612
613 Changes with Apache 2.2.2
614
615   *) mod_deflate: Allow mod_deflate to handle internal redirects.
616      [Brian J. France <list firehawksystems.com>]
617
618   *) mod_proxy_balancer: Initialize members of a balancer correctly.
619      PR 38227. [James A. Robinson <jim.robinson stanford.edu>]
620
621   *) mod_proxy: Do not release connections from connection pool twice.
622      PR 38793. [Ruediger Pluem, matthias <mk-asf gigacodes.de>]
623
624   *) core: Prevent reading uninitialized memory while reading a line of
625      protocol input.  PR 39282. [Davi Arnaut <davi haxent.com.br>]
626
627   *) mod_dbd: Update defaults, improve error reporting.
628      [Chris Darroch <chrisd pearsoncmg com>, Nick Kew]
629
630   *) mod_dbd: Create own pool and mutex to avoid problem use of
631      process pool in request processing.
632      [Chris Darroch <chrisd pearsoncmg com>]
633
634   *) HTML-escape the Expect error message.  Not classed as security as
635      an attacker has no way to influence the Expect header a victim will
636      send to a target site.  Reported by Thiago Zaninotti
637      <thiango nstalker.com>. [Mark Cox]
638
639   *) htdbm: Fix crash processing -d option in 64-bit mode on HP-UX.
640      [Jeff Trawick]
641
642   *) htdbm: Warn the user when adding a plaintext password on a platform
643      where it wouldn't work with the server (i.e., anywhere that has
644      crypt()).  [Jeff Trawick]
645
646   *) mod_proxy: don't reuse a connection that may be to the wrong backend
647      PR 39253 [Ruediger Pluem]
648
649   *) Default handler: Don't return output filter apr_status_t values.
650      PR 31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
651
652 Changes with Apache 2.2.1
653
654   *) SECURITY: CVE-2005-3357 (cve.mitre.org)
655      mod_ssl: Fix a possible crash during access control checks if a
656      non-SSL request is processed for an SSL vhost (such as the
657      "HTTP request received on SSL port" error message when an 400 
658      ErrorDocument is configured, or if using "SSLEngine optional").
659      PR 37791.  [Rüdiger Plüm, Joe Orton]
660
661   *) SECURITY: CVE-2005-3352 (cve.mitre.org)
662      mod_imagemap: Escape untrusted referer header before outputting
663      in HTML to avoid potential cross-site scripting.  Change also
664      made to ap_escape_html so we escape quotes.  Reported by JPCERT.
665      [Mark Cox]
666
667   *) mod_proxy_ajp: Flushing of the output after each AJP chunk is now
668      configurable at runtime via the 'flushpackets' and 'flushwait' worker
669      params. Minor MMN bump. [Jim Jagielski]
670
671   *) mod_proxy: Fix incorrect usage of local and shared worker init.
672      PR 38403. [Jim Jagielski]
673
674   *) mod_isapi: Fix compiler errors on Unix platforms.
675      [William Rowe]
676
677   *) mod_proxy_http: Send HTTP Keep-Alive Headers. PR 38524.
678      [Rüdiger Plüm, Joe Orton]
679
680   *) mod_disk_cache: Return the correct error codes from bucket read
681      failures, instead of APR_EGENERAL.
682      [Brian Akins <brian.akins turner.com>]
683
684   *) Add APR/APR-Util Compiled and Runtime Version numbers to the
685      output of 'httpd -V'. [William Rowe]
686
687   *) http: If a connection is aborted while waiting for a chunked line,
688      flag the connection as errored out.  [Justin Erenkrantz]
689
690   *) core: Reject invalid Expect header immediately. PR 38123.
691      [Ruediger Pluem]
692
693   *) mod_proxy: Fix KeepAlives not being allowed and set to
694      backend servers. PR 38602. [Ruediger Pluem, Jim Jagielski]
695
696   *) mod_proxy: If we get an error reading the upstream response,
697      close the connection.  [Justin Erenkrantz, Roy T. Fielding,
698      Jim Jagielski, Ruediger Pluem]
699
700   *) mod_proxy_ajp: Support common headers of the AJP protocol in responses.
701      PR 38340. [Aleksey Pesternikov <apesternikov yahoo.com>]
702
703   *) mod_proxy_balancer: Do not overwrite the status of initialized workers and
704      respect the configured status of uninitilized workers when creating a new
705      child process. [Ruediger Pluem]
706
707   *) mod_proxy_ajp: Crosscheck the length of the body chunk with the length of
708      the ajp message to prevent mod_proxy_ajp from reading beyond the buffer
709      boundaries and thus revealing possibly sensitive memory contents to the
710      client. [Ruediger Pluem]
711
712   *) Ensure that the proper status line is written to the client, fixing
713      incorrect status lines caused by filters which modify r->status without 
714      resetting r->status_line, such as the built-in byterange filter.
715      [Jeff Trawick]
716
717   *) mod_speling: Stop crashing with certain non-file requests.  [Jeff Trawick]
718
719   *) mod_cache: Make caching of reverse proxies possible again. PR 38017.
720      [Ruediger Pluem]
721
722   *) Modify apr[util] .h detection to avoid breakage on VPATH builds
723      using Solaris make (amoung others) and avoid breakage in ./buildconf
724      when srclib/apr[-util] are symlinks rather than directories proper.
725      [William Rowe]
726
727   *) Chunk filter: Fix chunk filter to create correct chunks in the case that
728      a flush bucket is surrounded by data buckets. [Ruediger Pluem]
729
730   *) Fix syntax error in httpd.h with strict compilers.  PR 38740.
731      [Per Olausson <pao darkheim.freeserve.co.uk>]
732
733   *) Preserve the Content-Length header for a proxied HEAD response.
734      PR 18757.  [Greg Ames]
735
736   *) Fix recursive ErrorDocument handling.  PR 36090.
737      [Chris Darroch <chrisd pearsoncmg.com>]
738
739   *) Don't hang on error return from post_read_request.  PR37790 [Nick Kew]
740
741   *) Fix off-by-one error in proxy_balancer.  PR37753
742      [Kazuhiro Osawa <ko yappo ne jp>]
743
744 Changes with Apache 2.2.0
745
746   *) mod_negotiation: Minor performance tweak by reusing already calculated
747      strlen.
748      [Ruediger Pluem, Christophe Jaillet <christophe.jaillet wanadoo.fr>]
749
750   *) Remove support for 'On' and 'Off' for AuthBasicProvider and
751      AuthDigestProvider.  [Joshua Slive, Justin Erenkrantz]
752
753   *) Add in new UseCanonicalPhysicalPort directive, which controls
754      whether or not Apache will ever use the actual physical port
755      when constructing the canonical port number. [Jim Jagielski]
756
757   *) mod_dav: Fix a null pointer dereference in an error code path during the
758      handling of MKCOL.
759      [Ruediger Pluem, Ghassan Misherghi <ghassanm ucdavis.edu>]
760
761   *) Fix DESTDIR=... installation when using bundled copy of APR.
762      [Torsten Foertsch <torsten.foertsch gmx.net>]
763
764   *) mod_proxy_balancer: When finding best worker, use case insensitive
765      match for scheme and host, but case sensitive for the rest of
766      the path. [Jim Jagielski, Ruediger Pluem]
767
768
769   [Apache 2.1.0-dev includes those bug fixes and changes with the
770    Apache 2.2.xx tree as documented, and except as noted, below.]
771
772 Changes with Apache 2.2.x and later:
773
774   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup
775
776 Changes with Apache 2.0.x and later:
777
778   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup
779
780 Changes with Apache 1.3.x and later:
781
782   *) http://svn.apache.org/viewvc/httpd/httpd/branches/1.3.x/src/CHANGES?view=markup