]> granicus.if.org Git - apache/blob - CHANGES
Rewrites the 'API Phases' section to give a brief intro to what an API
[apache] / CHANGES
1                                                          -*- coding: utf-8 -*-
2 Changes with Apache 2.3.15
3
4   *) SECURITY: CVE-2011-3348 (cve.mitre.org)
5      mod_proxy_ajp: Respond with HTTP_NOT_IMPLEMENTED when the method is not
6      recognized.  [Jean-Frederic Clere]
7
8   *) SECURITY: CVE-2011-3192 (cve.mitre.org)
9      core: Fix handling of byte-range requests to use less memory, to avoid
10      denial of service. If the sum of all ranges in a request is larger than
11      the original file, ignore the ranges and send the complete file.
12      PR 51714. [Stefan Fritsch, Jim Jagielski, Ruediger Pluem, Eric Covener,
13      <lowprio20 gmail.com>]
14
15   *) mod_setenvif: Remove OID match which is obsoleted by SetEnvIfExpr with
16      PeerExtList(). [Stefan Fritsch]
17
18   *) mpm_prefork, mpm_worker, mpm_event: If a child is created just before
19      graceful restart and then exits because of a missing lock file, don't
20      shutdown the whole server. PR 39311. [Shawn Michael
21      <smichael rightnow com>]
22
23   *) mpm_event: Check the return value from ap_run_create_connection.
24      PR: 41194. [Davi Arnaut]
25
26   *) mod_mime_magic: Add signatures for PNG and SWF to the example config.
27      PR: 48352. [Jeremy Wagner-Kaiser <jwagner-kaiser adknowledge com>]
28
29   *) core, unixd: Add -D DUMP_RUN_CFG option to dump some configuration items
30      from the parsed (or default) config. This is useful for init scripts that
31      need to setup temporary directories and permissions. [Stefan Fritsch]
32
33   *) core, mod_actions, mod_asis: Downgrade error log messages which accompany
34      a 404 request status from loglevel error to info. PR: 35768. [Stefan
35      Fritsch]
36
37   *) core: Fix hook sorting with Perl modules. PR: 45076. [Torsten Foertsch
38      <torsten foertsch gmx net>]
39
40   *) core: Enforce LimitRequestFieldSize after multiple headers with the same
41      name have been merged. [Stefan Fritsch]
42
43   *) mod_ssl: If MaxMemFree is set, ask OpenSSL >= 1.0.0 to reduce memory
44      usage.  PR 51618. [Cristian Rodríguez <crrodriguez opensuse org>,
45      Stefan Fritsch]
46
47   *) mod_ssl: At startup, when checking a server certificate whether it
48      matches the configured ServerName, also take dNSName entries in the
49      subjectAltName extension into account. PR 32652, PR 47051. [Kaspar Brand]
50
51   *) mod_substitute: Reduce memory usage and copying of data. PR 50559.
52      [Stefan Fritsch]
53
54   *) mod_ssl/proxy: enable the SNI extension for backend TLS connections
55      [Kaspar Brand]
56
57   *) Add wrappers for malloc, calloc, realloc that check for out of memory
58      situations and use them in many places. PR 51568, PR 51569, PR 51571.
59      [Stefan Fritsch]
60
61   *) Fix cross-compilation of mod_cgi/mod_cgid when APR_HAVE_STRUCT_RLIMIT is 
62      false but RLIMIT_* are defined.  PR51371. [Eric Covener]
63
64   *) core: Correctly obey ServerName / ServerAlias if the Host header from the
65      request matches the VirtualHost address.
66      PR 51709. [Micha Lenk <micha lenk.info>]
67
68   *) mod_unique_id: Use random number generator to initialize counter.
69      PR 45110. [Stefan Fritsch]
70
71   *) core: Add convenience API for apr_random. [Stefan Fritsch]
72
73   *) core: Add MaxRangeOverlaps and MaxRangeReversals directives to control
74      the number of overlapping and reversing ranges (respectively) permitted
75      before returning the entire resource, with a default limit of 20.
76      [Jim Jagielski]
77
78   *) mod_ldap: Optional function uldap_ssl_supported(r) always returned false
79      if called from a virtual host with mod_ldap directives in it.  Did not
80      affect mod_authnz_ldap's usage of mod_ldap.  [Eric Covener]
81
82   *) mod_filter: Instead of dropping the Accept-Ranges header when a filter
83      registered with AP_FILTER_PROTO_NO_BYTERANGE is present,
84      set the header value to "none". [Eric Covener, Ruediger Pluem]
85
86   *) core: Allow MaxRanges none|unlimited|default and set 'Accept-Ranges: none'
87      in the case Ranges are being ignored with MaxRanges none.
88      [Eric Covener]
89
90   *) mod_ssl: revamp CRL-based revocation checking when validating
91      certificates of clients or proxied servers. Completely delegate
92      CRL processing to OpenSSL, and add a new [Proxy]CARevocationCheck
93      directive for controlling the revocation checking mode. [Kaspar Brand]
94
95   *) core: Add MaxRanges directive to control the number of ranges permitted
96      before returning the entire resource, with a default limit of 200.
97      [Eric Covener]
98
99   *) mod_cache: Ensure that CacheDisable can correctly appear within
100      a LocationMatch. [Graham Leggett]
101
102   *) mod_cache: Fix the moving of the CACHE filter, which erroneously
103      stood down if the original filter was not added by configuration.
104      [Graham Leggett]
105
106   *) mod_ssl: improve certificate error logging. PR 47408. [Kaspar Brand]
107
108   *) mod_authz_groupfile: Increase length limit of lines in the group file to
109      16MB. PR 43084. [Stefan Fritsch]
110
111   *) core: Increase length limit of lines in the configuration file to 16MB.
112      PR 45888. PR 50824. [Stefan Fritsch]
113
114   *) core: Add API for resizable buffers. [Stefan Fritsch]
115
116   *) mod_ldap: Enable LDAPConnectionTimeout for LDAP toolkits that have
117      LDAP_OPT_CONNECT_TIMEOUT instead of LDAP_OPT_NETWORK_TIMEOUT, such
118      as Tivoli Directory Server 6.3 and later. [Eric Covener]
119
120   *) mod_ldap: Change default number of retries from 10 to 3, and add
121      an LDAPRetries and LDAPRetryDelay directives. [Eric Covener]
122
123   *) mod_authnz_ldap: Don't retry during authentication, because this just
124      multiplies the ample retries already being done by mod_ldap. [Eric Covener]
125
126   *) configure: Allow to explicitly disable modules even with module selection
127      'reallyall'. [Stefan Fritsch]
128
129   *) mod_rewrite: Check validity of each internal (int:) RewriteMap even if the
130      RewriteEngine is disabled in server context, avoiding a crash while
131      referencing the invalid int: map at runtime. PR 50994.
132      [Ben Noordhuis <info noordhuis nl>]
133
134   *) mod_ssl, configure: require OpenSSL 0.9.7 or later. [Kaspar Brand]
135
136   *) mod_ssl: remove ssl_toolkit_compat layer. [Kaspar Brand]
137
138   *) mod_ssl, configure, ab: drop support for RSA BSAFE SSL-C toolkit.
139      [Kaspar Brand]
140
141   *) mod_usertrack: Run mod_usertrack earlier in the fixups hook to ensure the
142      cookie is set when modules such as mod_rewrite trigger a redirect. Also
143      use r->err_headers_out for the cookie, for the same reason.  PR29755.
144      [Sami J. Mäkinen <sjm almamedia fi>, Eric Covener]
145
146   *) mod_proxy_http, mod_proxy_connect: Add 'proxy-status' and
147      'proxy-source-port' request notes for logging. PR 30195. [Stefan Fritsch]
148
149   *) configure: Enable ldap modules in 'all' and 'most' selections if ldap
150      is compiled into apr-util. [Stefan Fritsch]
151
152   *) core: Add ap_check_cmd_context()-check if a command is executed in
153      .htaccess file. [Stefan Fritsch]
154
155   *) mod_deflate: Fix endless loop if first bucket is metadata. PR 51590.
156      [Torsten Foertsch <torsten foertsch gmx net>]
157
158   *) mod_authn_socache: Fix to work in .htaccess if not configured anywhere
159      in httpd.conf, and introduce an AuthnCacheEnable directive.
160      PR 51991 [Nick Kew]
161
162 Changes with Apache 2.3.14
163
164   *) mod_proxy_ajp: Improve trace logging.  [Rainer Jung]
165
166   *) mod_proxy_ajp: Respect "reuse" flag in END_REPONSE packets.
167      [Rainer Jung]
168
169   *) mod_proxy: enable absolute URLs to be rewritten with ProxyPassReverse,
170      e.g. to reverse proxy "Location: https://other-internal-server/login"
171      [Nick Kew]
172
173   *) prefork, worker, event: Make sure crashes are logged to the error log if
174      httpd has already detached from the console. [Stefan Fritsch]
175
176   *) prefork, worker, event: Reduce period during startup/restart where a
177      successive signal may be lost. PR 43696. [Arun Bhalla <arun shme net>]
178
179   *) mod_allowmethods: Correct Merging of "reset" and do not allow an
180      empty parameter list for the AllowMethods directive. [Rainer Jung]
181
182   *) configure: Update selection of modules for 'all' and 'most'. 'all' will
183      now enable all modules except for example and test modules. Make the
184      selection for 'most' more useful (including ssl and proxy). Both 'all'
185      and 'most' will now disable modules if dependencies are missing instead
186      of aborting. If a specific module is requested with --enable-XXX=yes,
187      missing dependencies will still cause configure to exit with an error.
188      [Stefan Fritsch]
189
190   *) mod_ldap: Revert the integration of apr-ldap as ap_ldap which was done
191      in 2.3.13. [Stefan Fritsch]
192
193   *) core: For '*' or '_default_' vhosts, use a wildcard address of any
194      address family, rather than IPv4 only.  [Joe Orton]
195
196   *) core, mod_rewrite, mod_ssl, mod_nw_ssl: Make the SERVER_NAME variable
197      include [ ] for literal IPv6 addresses, as mandated by RFC 3875.
198      PR 26005. [Stefan Fritsch]
199
200   *) mod_negotiation: Fix parsing of Content-Length in type maps. PR 42203.
201      [Nagae Hidetake <nagae eagan jp>]
202
203   *) core: Add more logging to ap_scan_script_header_err* functions. Add
204      ap_scan_script_header_err*_ex functions that take a module index for
205      logging.
206      mod_cgi, mod_cgid, mod_proxy_fcgi, mod_proxy_scgi, mod_isapi: Use the
207      new functions in order to make logging configurable per-module.
208      [Stefan Fritsch]
209
210   *) mod_dir: Add DirectoryIndexRedirect to send an external redirect to
211      the proper index.  [Eric Covener]
212
213   *) mod_deflate: Don't try to compress requests with a zero sized body.
214      PR 51350. [Stefan Fritsch]
215
216   *) core: Fix startup on IP6-only systems. PR 50592. [Joe Orton,
217      <root linkage white-void net>]
218
219   *) suexec: Add environment variables CONTEXT_DOCUMENT_ROOT, CONTEXT_PREFIX,
220      REDIRECT_ERROR_NOTES, REDIRECT_SCRIPT_FILENAME, REQUEST_SCHEME to the
221      whitelist in suexec. PR 51499. [Graham Laverty <graham reg ca>,
222      Stefan Fritsch]
223
224   *) mod_rewrite: Fix regexp RewriteCond with NoCase. [Stefan Fritsch]
225
226   *) mod_log_debug: New module that allows to log custom messages at various
227      phases in the request processing. [Stefan Fritsch]
228
229   *) mod_ssl: Add some debug logging when loading server certificates.
230      PR 37912. [Nick Burch <nick burch alfresco com>]
231
232   *) configure: Support reallyall option also for --enable-mods-static.
233      [Rainer Jung]
234
235   *) mod_socache_dc: add --with-distcache to configure for choosing
236      the distcache installation directory. [Rainer Jung]
237
238   *) mod_socache_dc: use correct build variable MOD_SOCACHE_DC_LDADD
239      instead of MOD_SOCACHE_LDADD in build macro. [Rainer Jung]
240
241   *) mod_lua, mod_deflate: respect platform specific runpath linker
242      flag. [Rainer Jung]
243
244   *) configure: Only link the httpd binary against PCRE. No other support
245      binary needs PCRE. [Rainer Jung]
246
247   *) configure: tolerate dependency checking failures for modules if
248      they have been enabled implicitely. [Rainer Jung]
249
250   *) configure: Allow to specify module specific custom linker flags via
251      the MOD_XXX_LDADD variables. [Rainer Jung]
252
253 Changes with Apache 2.3.13
254
255   *) ab: Support specifying the local address to use. PR 48930.
256      [Peter Schuller <scode spotify com>]
257
258   *) core: Add support to ErrorLogFormat for logging the system unique
259      thread id under Linux. [Stefan Fritsch]
260
261   *) event: New AsyncRequestWorkerFactor directive to influence how many
262      connections will be accepted per process. [Stefan Fritsch]
263
264   *) prefork, worker, event: Rename MaxClients to MaxRequestWorkers which
265      describes more accurately what it does. [Stefan Fritsch]
266
267   *) rotatelogs: Add -p argument to specify custom program to invoke
268      after a log rotation.  PR 51285. [Sven Ulland <sveniu ifi.uio.no>,
269      Joe Orton]
270
271   *) mod_ssl: Don't do OCSP checks for valid self-issued certs. [Kaspar Brand]
272
273   *) mod_ssl: Avoid unnecessary renegotiations with SSLVerifyDepth 0.
274      PR 48215. [Kaspar Brand]
275
276   *) mod_status: Display information about asynchronous connections in the
277      server-status. PR 44377. [Stefan Fritsch]
278
279   *) mpm_event: If the number of connections of a process is very high, or if
280      all workers are busy, don't accept new connections in that process.
281      [Stefan Fritsch]
282
283   *) mpm_event: Process lingering close asynchronously instead of tying up
284      worker threads. [Jeff Trawick, Stefan Fritsch]
285
286   *) mpm_event: If MaxMemFree is set, limit the number of pools that is kept
287      around. [Stefan Fritsch]
288
289   *) mpm_event: Fix graceful restart aborting connections. PR 43359.
290      [Takashi Sato <takashi lans-tv com>]
291
292   *) mod_ssl: Disable AECDH ciphers in example config. PR 51363.
293      [Rob Stradling <rob comodo com>]
294
295   *) core: Introduce new function ap_get_conn_socket() to access the socket of
296      a connection. [Stefan Fritsch]
297
298   *) mod_data: Introduce a filter to support RFC2397 data URLs. [Graham
299      Leggett]
300
301   *) mod_userdir/mod_alias/mod_vhost_alias: Correctly set DOCUMENT_ROOT,
302      CONTEXT_DOCUMENT_ROOT, CONTEXT_PREFIX. PR 26052. PR 46198.
303      [Stefan Fritsch]
304
305   *) core: Allow to override document_root on a per-request basis. Introduce
306      new context_document_root and context_prefix which provide information
307      about non-global URI-to-directory mappings (from e.g. mod_userdir or
308      mod_alias) to scripts. PR 49705. [Stefan Fritsch]
309
310   *) core: Add <ElseIf> and <Else> to complement <If> sections.
311      [Stefan Fritsch]
312
313   *) mod_ext_filter: Remove DebugLevel option in favor of per-module loglevel.
314      [Stefan Fritsch]
315
316   *) mod_include: Make the "#if expr" element use the new "ap_expr" expression
317      parser. The old parser can still be used by setting the new directive
318      SSILegacyExprParser. [Stefan Fritsch]
319
320   *) core: Add some features to ap_expr for use by mod_include: a restricted
321      mode that does not allow to bypass request access restrictions; new
322      variables DOCUMENT_URI (alias for REQUEST_URI), LAST_MODIFIED; -A as an
323      alias for -U; an additional data entry in ap_expr_eval_ctx_t for use by
324      the consumer; an extensible ap_expr_exec_ctx() API that allows to use that
325      data entry. [Stefan Fritsch]
326
327   *) mod_include: Merge directory configs instead of one SSI* config directive
328      causing all other per-directory SSI* config directives to be reset.
329      [Stefan Fritsch]
330
331   *) mod_charset_lite: Remove DebugLevel option in favour of per-module
332      loglevel. [Stefan Fritsch]
333
334   *) core: Add ap_regexec_len() function that works with non-null-terminated
335      strings. PR 51231. [Yehezkel Horowitz <horowity checkpoint com>]
336
337   *) mod_authnz_ldap: If the LDAP server returns constraint violation,
338      don't treat this as an error but as "auth denied". [Stefan Fritsch]
339
340   *) mod_proxy_fcgi|scgi: Add support for "best guess" of PATH_INFO
341      for SCGI/FCGI. PR 50880, 50851. [Mark Montague <mark catseye.org>,
342      Jim Jagielski]
343
344   *) mod_cache: When content is served stale, and there is no means to
345      revalidate the content using ETag or Last-Modified, and we have
346      mandated no stale-on-error behaviour, stand down and don't cache.
347      Saves a cache write that will never be read.
348      [Graham Leggett]
349
350   *) mod_reqtimeout: Fix a timed out connection going into the keep-alive
351      state after a timeout when discarding a request body. PR 51103.
352      [Stefan Fritsch]
353
354   *) core: Add various file existance test operators to ap_expr.
355      [Stefan Fritsch]
356
357   *) mod_proxy_express: New mass reverse-proxy switch extension for
358      mod_proxy. [Jim Jagielski]
359
360   *) configure: Fix script error when configuring module set "reallyall".
361      [Rainer Jung]
362
363 Changes with Apache 2.3.12
364
365   *) configure, core: Provide easier support for APR's hook probe
366      capability. [Jim Jagielski, Jeff Trawick]
367
368   *) Silence autoconf 2.68 warnings.  [Rainer Jung]
369
370   *) mod_authnz_ldap: Resolve crash when LDAP is used for authorization only
371      [Scott Hill <shill genscape.com>]
372
373   *) support: Make sure check_forensic works with mod_unique_id loaded
374      [Joe Schaefer]
375
376   *) Add child_status hook for tracking creation/termination of MPM child
377      processes.  Add end_generation hook for notification when the last
378      MPM child of a generation exits. [Jeff Trawick]
379
380   *) mod_ldap: Make LDAPSharedCacheSize 0 create a non-shared-memory cache per
381      process as opposed to disabling caching completely. This allows to use
382      the non-shared-memory cache as a workaround for the shared memory cache
383      not being available during graceful restarts. PR 48958. [Stefan Fritsch]
384
385   *) Add new ap_reserve_module_slots/ap_reserve_module_slots_directive API,
386      necessary if a module (like mod_perl) registers additional modules late
387      in the startup phase. [Stefan Fritsch]
388
389   *) core: Prevent segfault if DYNAMIC_MODULE_LIMIT is reached. PR 51072.
390      [Torsten Förtsch <torsten foertsch gmx net>]
391
392   *) WinNT MPM: Improve robustness under heavy load.  [Jeff Trawick]
393
394   *) MinGW build improvements.  PR 49535.  [John Vandenberg
395      <jayvdb gmail.com>, Jeff Trawick]
396
397   *) core: Support module names with colons in loglevel configuration.
398      [Torsten Förtsch <torsten foertsch gmx net>]
399
400   *) mod_ssl, ab: Support OpenSSL compiled without SSLv2 support.
401      [Stefan Fritsch]
402
403   *) core: Abort if the MPM is changed across restart.  [Jeff Trawick]
404
405   *) mod_proxy_ajp: Add support for 'ProxyErrorOverride on'. PR 50945.
406      [Peter Pramberger <peter pramberger.at>, Jim Jagielski]
407
408   *) mod_proxy_fcgi: Add support for 'ProxyErrorOverride on'. PR 50913.
409      [Mark Montague <mark catseye.org>, Jim Jagielski]
410
411   *) core: Change the APIs of ap_cfg_getline() and ap_cfg_getc() to return an
412      error code. Abort with a nice error message if a config line is too long.
413      Partial fix for PR 50824. [Stefan Fritsch]
414
415   *) mod_info: Dump config to stdout during startup if -DDUMP_CONFIG is
416      specified. PR 31956. [Stefan Fritsch]
417
418   *) Restore visibility of DEFAULT_PIDLOG to core and modules.  MPM
419      helper function ap_remove_pid() added.  [Jeff Trawick]
420
421   *) Enable DEFAULT_REL_RUNTIMEDIR on Windows and NetWare.  [various]
422
423   *) Correct C++ incompatibility with http_log.h.  [Stefan Fritsch, Jeff
424      Trawick]
425
426   *) mod_log_config: Prevent segfault. PR 50861. [Torsten Förtsch
427      <torsten.foertsch gmx.net>]
428
429   *) core: AllowEncodedSlashes new option NoDecode to allow encoded slashes
430      in request URL path info but not decode them. Change behavior of option
431      "On" to decode the encoded slashes as 2.0 and 2.2 do.  PR 35256,
432      PR 46830.  [Dan Poirier]
433
434   *) mod_ssl: Check SNI hostname against Host header case-insensitively.
435      PR 49491.  [Mayank Agrawal <magrawal.08 gmail.com>]
436
437   *) mod_ldap: Add LDAPConnectionPoolTTL to give control over lifetime
438      of bound backend LDAP connections.  PR47634 [Eric Covener]
439
440   *) mod_cache: Make CacheEnable and CacheDisable configurable per
441      directory in addition to per server, making them work from within
442      a LocationMatch. [Graham Leggett]
443
444   *) worker, event, prefork: Correct several issues when built as
445      DSOs; most notably, the scoreboard was reinitialized during graceful
446      restart, such that processes of the previous generation were not
447      observable.  [Jeff Trawick]
448
449 Changes with Apache 2.3.11
450
451   *) mod_win32: Added shebang check for '! so that .vbs scripts work as CGI.
452      Win32's cscript interpreter can only use a single quote as comment char.
453      [Guenter Knauf]
454
455   *) mod_proxy: balancer-manager now uses POST instead of GET.
456      [Jim Jagielski]
457
458   *) core: new util function: ap_parse_form_data(). Previously,
459      this capability was tucked away in mod_request. [Jim Jagielski]
460
461   *) core: new hook: ap_run_pre_read_request. [Jim Jagielski]
462
463   *) mod_cache: When a request other than GET or HEAD arrives, we must
464      invalidate existing cache entities as per RFC2616 13.10. PR 15868.
465      [Graham Leggett]
466
467   *) modules: Fix many modules that were not correctly initializing if they
468      were not active during server startup but got enabled later during a
469      graceful restart. [Stefan Fritsch]
470
471   *) core: Create new ap_state_query function that allows modules to determine
472      if the current configuration run is the initial one at server startup,
473      and if the server is started for testing/config dumping only.
474      [Stefan Fritsch]
475
476   *) mod_proxy: Runtime configuration of many parameters for existing
477      balancers via the balancer-manager. [Jim Jagielski]
478
479   *) mod_proxy: Runtime addition of new workers (BalancerMember) for existing
480      balancers via the balancer-manager. [Jim Jagielski]
481
482   *) mod_cache: When a bad Expires date is present, we need to behave as if
483      the Expires is in the past, not as if the Expires is missing. PR 16521.
484      [Co-Advisor <coad@measurement-factory.com>]
485
486   *) mod_cache: We must ignore quoted-string values that appear in a
487      Cache-Control header. PR 50199. [Graham Leggett]
488
489   *) mod_dav: Revert change to send 501 error if unknown Content-* header is
490     received for a PUT request. PR 42978. [Stefan Fritsch]
491
492   *) mod_cache: Respect s-maxage as described by RFC2616 14.9.3, which must
493      take precedence if present. PR 35247. [Graham Leggett]
494
495   *) mod_ssl: Fix a possible startup failure if multiple SSL vhosts
496      are configured with the same ServerName and private key file.
497      [Masahiro Matsuya <mmatsuya redhat.com>, Joe Orton]
498
499   *) mod_socache_dc: Make module compile by fixing some typos.
500      PR 50735 [Mark Montague <mark catseye.org>]
501
502   *) prefork: Update MPM state in children during a graceful stop or
503      restart.  PR 41743.  [Andrew Punch <andrew.punch 247realmedia.com>]
504
505   *) mod_mime: Ignore leading dots when looking for mime extensions.
506      PR 50434 [Stefan Fritsch]
507
508   *) core: Add support to set variables with the 'Define' directive. The
509      variables that can then be used in the config using the ${VAR} syntax
510      known from envvar interpolation. [Stefan Fritsch]
511
512   *) mod_proxy_http: make adding of X-Forwarded-* headers configurable.
513      ProxyAddHeaders defaults to On. [Vincent Deffontaines]
514
515   *) mod_slotmem_shm: Increase memory alignment for slotmem data.
516      [Rainer Jung]
517
518   *) mod_ssl: Add config options for OCSP: SSLOCSPResponderTimeout,
519      SSLOCSPResponseMaxAge, SSLOCSPResponseTimeSkew.
520      [Kaspar Brand <httpd-dev.2011 velox.ch>]
521
522   *) mod_ssl: Revamp output buffering to reduce network overhead for
523      output fragmented into many buckets, such as chunked HTTP responses.
524      [Joe Orton]
525
526   *) core: Apply <If> sections to all requests, not only to file base requests.
527      Allow to use <If> inside <Directory>, <Location>, and <Files> sections.
528      The merging of <If> sections now happens after the merging of <Location>
529      sections, even if an <If> section is embedded inside a <Directory> or
530      <Files> section.  [Stefan Fritsch]
531
532   *) mod_proxy: Refactor usage of shared data by dropping the scoreboard
533      and using slotmem. Create foundation for dynamic growth/changes of
534      members within a balancer. Remove BalancerNonce in favor of a
535      per-balancer 'nonce' parameter. [Jim Jagielski]
536
537   *) mod_status: Don't show slots which are disabled by MaxClients as open.
538      PR: 47022 [Jordi Prats <jordi prats gmail com>, Stefan Fritsch]
539
540   *) mpm_prefork: Fix ap_mpm_query results for AP_MPMQ_MAX_DAEMONS and
541      AP_MPMQ_MAX_THREADS.
542
543   *) mod_authz_core: Fix bug in merging logic if user-based and non-user-based
544      authorization directives were mixed. [Stefan Fritsch]
545
546   *) mod_authn_socache: change directive name from AuthnCacheProvider
547      to AuthnCacheProvideFor.  The term "provider" is overloaded in
548      this module, and we should avoid confusion between the provider
549      of a backend (AuthnCacheSOCache) and the authn provider(s) for
550      which this module provides cacheing (AuthnCacheProvideFor).
551      [Nick Kew]
552
553   *) mod_proxy_http: Allocate the fake backend request from a child pool
554      of the backend connection, instead of misusing the pool of the frontend
555      request. Fixes a thread safety issue where buckets set aside in the
556      backend connection leak into other threads, and then disappear when
557      the frontend request is cleaned up, in turn causing corrupted buckets
558      to make other threads spin. [Graham Leggett]
559
560   *) mod_ssl: Change the format of the SSL_{CLIENT,SERVER}_{I,S}_DN variables
561      to be RFC 2253 compatible, convert non-ASCII characters to UTF8, and
562      escape other special characters with backslashes. The old format can
563      still be used with the LegacyDNStringFormat argument to SSLOptions.
564
565   *) core, mod_rewrite: Make the REQUEST_SCHEME variable available to
566      scripts and mod_rewrite. [Stefan Fritsch]
567
568   *) mod_rewrite: Allow to use arbitrary boolean expressions (ap_expr) in
569      RewriteCond. [Stefan Fritsch]
570
571   *) mod_rewrite: Allow to unset environment variables using E=!VAR.
572      PR 49512. [Mark Drayton <mark markdrayton info>, Stefan Fritsch]
573
574   *) mod_headers: Restore the 2.3.8 and earlier default for the first
575      argument of the Header directive ("onsuccess").  [Eric Covener]
576
577   *) core: Disallow the mixing of relative and absolute Options PR 33708.
578      [Sönke Tesch <st kino-fahrplan.de>]
579
580   *) core: When exporting request headers to HTTP_* environment variables,
581      drop variables whose names contain invalid characters. Describe in the
582      docs how to restore the old behaviour. [Malte S. Stretz <mss apache org>]
583
584   *) core: When selecting an IP-based virtual host, favor an exact match for
585      the port over a wildcard (or omitted) port instead of favoring the one
586      that came first in the configuration file. [Eric Covener]
587
588   *) core: Overlapping virtual host address/port combinations  now implicitly
589      enable name-based virtual hosting for that address.  The NameVirtualHost
590      directive has no effect, and _default_ is interpreted the same as "*".
591      [Eric Covener]
592
593   *) core: In the absence of any Options directives, the default is now
594      "FollowSymlinks" instead of "All".  [Igor Galić]
595
596   *) rotatelogs: Add -e option to write logs through to stdout for optional
597      further processing. [Graham Leggett]
598
599   *) mod_ssl: Correctly read full lines in input filter when the line is
600      incomplete during first read. PR 50481. [Ruediger Pluem]
601
602   *) mod_authz_core: Add AuthzSendForbiddenOnFailure directive to allow
603      sending '403 FORBIDDEN' instead of '401 UNAUTHORIZED' if authorization
604      fails for an authenticated user. PR 40721. [Stefan Fritsch]
605
606 Changes with Apache 2.3.10
607
608   *) mod_rewrite: Don't implicitly URL-escape the original query string
609      when no substitution has changed it. PR 50447. [Eric Covener]
610
611   *) core: Honor 'AcceptPathInfo OFF' during internal redirects,
612      such as per-directory mod_rewrite substitutions.  PR 50349.
613      [Eric Covener]
614
615   *) mod_rewrite: Add 'RewriteOptions InheritBefore' to put the base
616      rules/conditions before the overridden rules/conditions.  PR 39313.
617      [Jérôme Grandjanny <jerome.grandjanny cea.fr>]
618
619   *) mod_autoindex: add IndexIgnoreReset to reset the list of IndexIgnored
620      filenames in higher precedence configuration sections.  PR 24243.
621      [Eric Covener]
622
623   *) mod_cgid: RLimit* directive support for mod_cgid.  PR 42135
624      [Eric Covener]
625
626   *) core: Fail startup when the argument to ServerName looks like a glob
627      or a regular expression instead of a hostname (*?[]).  PR 39863
628      [Rahul Nair <rahul.g.nair gmail.com>]
629
630   *) mod_userdir: Add merging of enable, disable, and filename arguments
631      to UserDir directive, leaving enable/disable of userlists unmerged.
632      PR 44076 [Eric Covener]
633
634   *) httpd: When no -k option is provided on the httpd command line, the server
635      was starting without checking for an existing pidfile.  PR 50350
636      [Eric Covener]
637
638   *) mod_proxy: Put the worker in error state if the SSL handshake with the
639      backend fails. PR 50332.
640      [Daniel Ruggeri <DRuggeri primary.net>, Ruediger Pluem]
641
642   *) mod_cache_disk: Fix Windows build which was broken after renaming
643      the module. [Gregg L. Smith]
644
645 Changes with Apache 2.3.9
646
647   *) SECURITY: CVE-2010-1623 (cve.mitre.org)
648      Fix a denial of service attack against mod_reqtimeout.
649      [Stefan Fritsch]
650
651   *) mod_headers: Change default first argument of Header directive
652      from "onsuccess" to "always". [Eric Covener]
653
654   *) mod_include: Add the onerror attribute to the include element,
655      allowing an URL to be specified to include on error. [Graham
656      Leggett]
657
658   *) mod_cache_disk: mod_disk_cache renamed to mod_cache_disk, to be
659      consistent with the naming of other modules. [Graham Leggett]
660
661   *) mod_setenvif: Add SetEnvIfExpr directive to set env var depending on
662      expression. [Stefan Fritsch]
663
664   *) mod_proxy: Fix ProxyPassInterpolateEnv directive. PR 50292.
665      [Stefan Fritsch]
666
667   *) suEXEC: Add Suexec directive to disable suEXEC without renaming the
668      binary (Suexec Off), or force startup failure if suEXEC is required
669      but not supported (Suexec On).  Change SuexecUserGroup to fail
670      startup instead of just printing a warning if suEXEC is disabled.
671      [Jeff Trawick]
672
673   *) core: Add Error directive for aborting startup or htaccess processing
674      with a specified error message.  [Jeff Trawick]
675
676   *) mod_rewrite: Fix the RewriteEngine directive to work within a
677      location. Previously, once RewriteEngine was switched on globally,
678      it was impossible to switch off. [Graham Leggett]
679
680   *) core, mod_include, mod_ssl: Move the expression parser derived from
681      mod_include back into mod_include. Replace ap_expr with a parser
682      derived from mod_ssl's parser. Make mod_ssl use the new parser. Rework
683      ap_expr's public interface and provide hooks for modules to add variables
684      and functions. [Stefan Fritsch]
685
686   *) core: Do the hook sorting earlier so that the hooks are properly sorted
687      for the pre_config hook and during parsing the config. [Stefan Fritsch]
688
689   *) core: In the absence of any AllowOverride directives, the default is now
690      "None" instead of "All".  PR49823 [Eric Covener]
691
692   *) mod_proxy: Don't allow ProxyPass or ProxyPassReverse in
693      <Directory> or <Files>. PR47765 [Eric Covener]
694
695   *) prefork/worker/event MPMS: default value (when no directive is present)
696      of MaxConnectionsPerChild/MaxRequestsPerChild is changed to 0 from 10000
697      to match default configuration and manual. PR47782 [Eric Covener]
698
699   *) proxy_connect: Don't give up in the middle of a CONNECT tunnel
700      when the child process is starting to exit.  PR50220. [Eric Covener]
701
702   *) mod_autoindex: Fix inheritance of mod_autoindex directives into
703      contexts that don't have any mod_autoindex directives. PR47766.
704      [Eric Covener]
705
706   *) mod_rewrite: Add END flag for RewriteRule to prevent further rounds
707      of rewrite processing when a per-directory substitution occurs.
708      [Eric Covener]
709
710   *) mod_ssl: Make sure to always log an error if loading of CA certificates
711      fails. PR 40312. [Paul Tiemann <issues apache org ourdetour com>]
712
713   *) mod_dav: Send 501 error if unknown Content-* header is received for a PUT
714      request (RFC 2616 9.6). PR 42978. [Stefan Fritsch]
715
716   *) mod_dav: Send 400 error if malformed Content-Range header is received for
717      a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch]
718
719   *) mod_proxy: Release the backend connection as soon as EOS is detected,
720      so the backend isn't forced to wait for the client to eventually
721      acknowledge the data. [Graham Leggett]
722
723   *) mod_proxy: Optimise ProxyPass within a Location so that it is stored
724      per-directory, and chosen during the location walk. Make ProxyPass
725      work correctly from within a LocationMatch. [Graham Leggett]
726
727   *) core: Fix segfault if per-module LogLevel is on virtual host
728      scope. PR 50117. [Stefan Fritsch]
729
730   *) mod_proxy: Move the ProxyErrorOverride directive to have per
731      directory scope. [Graham Leggett]
732
733   *) mod_allowmethods: New module to deny certain HTTP methods without
734      interfering with authentication/authorization. [Paul Querna,
735      Igor Galić, Stefan Fritsch]
736
737   *) mod_ssl: Log certificate information and improve error message if client
738      cert verification fails. PR 50093, PR 50094. [Lassi Tuura <lat cern ch>,
739      Stefan Fritsch]
740
741   *) htcacheclean: Teach htcacheclean to limit cache size by number of
742      inodes in addition to size of files. Prevents a cache disk from
743      running out of space when many small files are cached.
744      [Graham Leggett]
745
746   *) core: Rename MaxRequestsPerChild to MaxConnectionsPerChild, which
747      describes more accurately what the directive does. The old name
748      still works but logs a warning. [Stefan Fritsch]
749
750   *) mod_cache: Optionally serve stale data when a revalidation returns a
751      5xx response, controlled by the CacheStaleOnError directive.
752      [Graham Leggett]
753
754   *) htcacheclean: Allow the listing of valid URLs within the cache, with
755      the option to list entry metadata such as sizes and times. [Graham
756      Leggett]
757
758   *) mod_cache: correctly parse quoted strings in cache headers.
759      PR 50199 [Nick Kew]
760
761   *) mod_cache: Allow control over the base URL of reverse proxied requests
762      using the CacheKeyBaseURL directive, so that the cache key can be
763      calculated from the endpoint URL instead of the server URL. [Graham
764      Leggett]
765
766   *) mod_cache: CacheLastModifiedFactor, CacheStoreNoStore, CacheStorePrivate,
767      CacheStoreExpired, CacheIgnoreNoLastMod, CacheDefaultExpire,
768      CacheMinExpire and CacheMaxExpire can be set per directory/location.
769      [Graham Leggett]
770
771   *) mod_disk_cache: CacheMaxFileSize, CacheMinFileSize, CacheReadSize and
772      CacheReadTime can be set per directory/location. [Graham Leggett]
773
774   *) core: Speed up config parsing if using a very large number of config
775      files. PR 50002 [andrew cloudaccess net]
776
777   *) mod_cache: Support the caching of HEAD requests. [Graham Leggett]
778
779   *) htcacheclean: Allow the option to round up file sizes to a given
780      block size, improving the accuracy of disk usage. [Graham Leggett]
781
782   *) mod_ssl: Add authz providers for use with mod_authz_core and its
783      RequireAny/RequireAll containers: 'ssl' (equivalent to SSLRequireSSL),
784      'ssl-verify-client' (for use with 'SSLVerifyClient optional'), and
785      'ssl-require' (expressions with same syntax as SSLRequire).
786      [Stefan Fritsch]
787
788   *) mod_ssl: Make the ssl expression parser thread-safe. It now requires
789      bison instead of yacc. [Stefan Fritsch]
790
791   *) mod_disk_cache: Change on-disk header file format to support the
792      link of the device/inode of the data file to the matching header
793      file, and to support the option of not writing a data file when
794      the data file is empty. [Graham Leggett]
795
796   *) core/mod_unique_id: Add generate_log_id hook to allow to use
797      the ID generated by mod_unique_id as error log ID for requests.
798      [Stefan Fritsch]
799
800   *) mod_cache: Make sure that we never allow a 304 Not Modified response
801      that we asked for to leak to the client should the 304 response be
802      uncacheable. PR45341 [Graham Leggett]
803
804   *) mod_cache: Add the cache_status hook to register the final cache
805      decision hit/miss/revalidate. Add optional support for an X-Cache
806      and/or an X-Cache-Detail header to add the cache status to the
807      response. PR48241 [Graham Leggett]
808
809   *) mod_authz_host: Add 'local' provider that matches connections originating
810      on the local host. PR 19938. [Stefan Fritsch]
811
812   *) Event MPM: Fix crash accessing pollset on worker thread when child
813      process is exiting.  [Jeff Trawick]
814
815   *) core: For process invocation (cgi, fcgid, piped loggers and so forth)
816      pass the system library path (LD_LIBRARY_PATH or platform-specific
817      variables) along with the system PATH, by default.  Both should be
818      overridden together as desired using PassEnv etc; see mod_env.
819      [William Rowe]
820
821   *) mod_cache: Introduce CacheStoreExpired, to allow administrators to
822      capture a stale backend response, perform If-Modified-Since requests
823      against the backend, and serving from the cache all 304 responses.
824      This restores pre-2.2.4 cache behavior.  [William Rowe]
825
826   *) mod_rewrite: Introduce <=, >= string comparison operators, and integer
827      comparators -lt, -le, -eq, -ge, and -gt.  To help bash users and drop
828      the ambiguity of the symlink test "-ltest", introduce -h or -L as
829      symlink test operators.  [William Rowe]
830
831   *) mod_cache: Give the cache provider the opportunity to choose to cache
832      or not cache based on the buckets present in the brigade, such as the
833      presence of a FILE bucket.
834      [Graham Leggett]
835
836   *) mod_authz_core: Allow authz providers to check args while reading the
837      config and allow to cache parsed args. Move 'all' and 'env' authz
838      providers from mod_authz_host to mod_authz_core. Add 'method' authz
839      provider depending on the HTTP method.  [Stefan Fritsch]
840
841   *) mod_include: Move the request_rec within mod_include to be
842      exposed within include_ctx_t. [Graham Leggett]
843
844   *) mod_include: Reinstate support for UTF-8 character sets by allowing a
845      variable being echoed or set to be decoded and then encoded as separate
846      steps. PR47686 [Graham Leggett]
847
848   *) mod_cache: Add a discrete commit_entity() provider function within the
849      mod_cache provider interface which is called to indicate to the
850      provider that caching is complete, giving the provider the opportunity
851      to commit temporary files permanently to the cache in an atomic
852      fashion. Replace the inconsistent use of error cleanups with a formal
853      set of pool cleanups attached to a subpool, which is destroyed on error.
854      [Graham Leggett]
855
856   *) mod_cache: Change the signature of the store_body() provider function
857      within the mod_cache provider interface to support an "in" brigade
858      and an "out" brigade instead of just a single input brigade. This
859      gives a cache provider the option to consume only part of the brigade
860      passed to it, rather than the whole brigade as was required before.
861      This fixes an out of memory and a request timeout condition that would
862      occur when the original document was a large file. Introduce
863      CacheReadSize and CacheReadTime directives to mod_disk_cache to control
864      the amount of data to attempt to cache at a time. [Graham Leggett]
865
866   *) core: Add ErrorLogFormat to allow configuring error log format, including
867      additional information that is logged once per connection or request. Add
868      error log IDs for connections and request to allow correlating error log
869      lines and the corresponding access log entry. [Stefan Fritsch]
870
871   *) core: Disable sendfile by default. [Stefan Fritsch]
872
873   *) mod_cache: Check the request to determine whether we are allowed
874      to return cached content at all, and respect a "Cache-Control:
875      no-cache" header from a client. Previously, "no-cache" would
876      behave like "max-age=0". [Graham Leggett]
877
878   *) mod_cache: Use a proper filter context to hold filter data instead
879      of misusing the per-request configuration. Fixes a segfault on trunk
880      when the normal handler is used. [Graham Leggett]
881
882   *) mod_cgid: Log a warning if the ScriptSock path is truncated because
883      it is too long. PR 49388.  [Stefan Fritsch]
884
885   *) vhosts: Do not allow _default_ in NameVirtualHost, or mixing *
886      and non-* ports on NameVirtualHost, or multiple NameVirtualHost
887      directives for the same address:port, or NameVirtualHost
888      directives with no matching VirtualHosts, or multiple ip-based
889      VirtualHost sections for the same address:port.  These were
890      previously accepted with a warning, but the behavior was
891      undefined.  [Dan Poirier]
892
893   *) mod_remoteip: Fix a segfault when using mod_remoteip in conjunction with
894      Allow/Deny. PR 49838.  [Andrew Skalski <voltara gmail.com>]
895
896   *) core: DirectoryMatch can now match on the end of line character ($),
897      and sub-directories of matched directories are no longer implicitly
898      matched.  PR49809 [Eric Covener]
899
900   *) Regexps: introduce new higher-level regexp utility including parsing
901      and executing perl-style regexp ops (e.g s/foo/bar/i) and regexp memory
902      [Nick Kew]
903
904   *) Proxy: support setting source address.  PR 29404
905      [Multiple contributors iterating through bugzilla,
906       Aron Ujvari <xanco nikhok.hu>, Aleksey Midenkov <asm uezku.kemsu.ru>,
907       <dan listening-station.net; trunk version Nick Kew]
908
909   *) HTTP protocol: return 400 not 503 if we have to abort due to malformed
910      chunked encoding. [Nick Kew]
911
912 Changes with Apache 2.3.8
913
914   *) suexec: Support large log files. PR 45856. [Stefan Fritsch]
915
916   *) core: Abort with sensible error message if no or more than one MPM is
917      loaded. [Stefan Fritsch]
918
919   *) mod_proxy: Rename erroronstatus to failonstatus.
920      [Daniel Ruggeri <DRuggeri primary.net>]
921
922   *) mod_dav_fs: Fix broken "creationdate" property.
923      Regression in version 2.3.7. [Rainer Jung]
924
925 Changes with Apache 2.3.7
926
927   *) SECURITY: CVE-2010-1452 (cve.mitre.org)
928      mod_dav, mod_cache, mod_session: Fix Handling of requests without a path
929      segment. PR: 49246 [Mark Drayton, Jeff Trawick]
930
931   *) mod_ldap: Properly check the result returned by apr_ldap_init. PR 46076.
932      [Stefan Fritsch]
933
934   *) mod_rewrite: Log errors if rewrite map files cannot be opened. PR 49639.
935      [Stefan Fritsch]
936
937   *) mod_proxy_http: Support the 'ping' property for backend HTTP/1.1 servers
938      via leveraging 100-Continue as the initial "request".
939      [Jim Jagielski]
940
941   *) core/mod_authz_core: Introduce new access_checker_ex hook that enables
942      mod_authz_core to bypass authentication if access should be allowed by
943      IP address/env var/... [Stefan Fritsch]
944
945   *) core: Introduce note_auth_failure hook to allow modules to add support
946      for additional auth types. This makes ap_note_auth_failure() work with
947      mod_auth_digest again. PR 48807. [Stefan Fritsch]
948
949   *) socache modules: return APR_NOTFOUND when a lookup is not found [Nick Kew]
950
951   *) mod_authn_socache: new module [Nick Kew]
952
953   *) configure: Add reallyall option for --enable-mods-shared. [Stefan Fritsch]
954
955   *) Fix Windows build when using VC6. [Gregg L. Smith <lists glewis com>]
956
957   *) mod_rewrite: Allow to set environment variables without explicitly
958      giving a value. [Rainer Jung]
959
960   *) mod_rewrite: Remove superfluous EOL from rewrite logging. [Rainer Jung]
961
962   *) mod_include: recognise "text/html; parameters" as text/html
963      PR 49616 [Andrey Chernov <ache nagual.pp.ru>]
964
965   *) CGI vars: allow PATH to be set by SetEnv, consistent with LD_LIBRARY_PATH
966      PR 43906 [Nick Kew]
967
968   *) Core: Extra robustness: don't try authz and segfault if authn
969      fails to set r->user.  Log bug and return 500 instead.
970      PR 42995 [Nick Kew]
971
972   *) HTTP protocol filter: fix handling of longer chunk extensions
973      PR 49474 [<tee.bee gmx.de>]
974
975   *) Update SSL cipher suite and add example for SSLHonorCipherOrder.
976      [Lars Eilebrecht, Rainer Jung]
977
978   *) move AddOutputFilterByType from core to mod_filter.  This should
979      fix nasty side-effects that happen when content_type is set
980      more than once in processing a request, and make it fully
981      compatible with dynamic and proxied contents. [Nick Kew]
982
983   *) mod_log_config: Implement logging for sub second timestamps and
984      request end time.  [Rainer Jung]
985
986 Changes with Apache 2.3.6
987
988   *) SECURITY: CVE-2009-3555 (cve.mitre.org)
989      mod_ssl: Comprehensive fix of the TLS renegotiation prefix injection
990      attack when compiled against OpenSSL version 0.9.8m or later. Introduces
991      the 'SSLInsecureRenegotiation' directive to reopen this vulnerability
992      and offer unsafe legacy renegotiation with clients which do not yet
993      support the new secure renegotiation protocol, RFC 5746.
994      [Joe Orton, and with thanks to the OpenSSL Team]
995
996   *) SECURITY: CVE-2009-3555 (cve.mitre.org)
997      mod_ssl: A partial fix for the TLS renegotiation prefix injection attack
998      by rejecting any client-initiated renegotiations. Forcibly disable
999      keepalive for the connection if there is any buffered data readable. Any
1000      configuration which requires renegotiation for per-directory/location
1001      access control is still vulnerable, unless using OpenSSL >= 0.9.8l.
1002      [Joe Orton, Ruediger Pluem, Hartmut Keil <Hartmut.Keil adnovum.ch>]
1003
1004   *) SECURITY: CVE-2010-0408 (cve.mitre.org)
1005      mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent
1006      when request headers indicate a request body is incoming; not a case of
1007      HTTP_INTERNAL_SERVER_ERROR.  [Niku Toivola <niku.toivola sulake.com>]
1008
1009   *) SECURITY: CVE-2010-0425 (cve.mitre.org)
1010      mod_isapi: Do not unload an isapi .dll module until the request
1011      processing is completed, avoiding orphaned callback pointers.
1012      [Brett Gervasoni <brettg senseofsecurity.com>, Jeff Trawick]
1013
1014   *) core: Filter init functions are now run strictly once per request
1015      before handler invocation.  The init functions are no longer run
1016      for connection filters.  PR 49328.  [Joe Orton]
1017
1018   *) core: Adjust the output filter chain correctly in an internal
1019      redirect from a subrequest, preserving filters from the main
1020      request as necessary.  PR 17629.  [Joe Orton]
1021
1022   *) mod_cache: Explicitly allow cache implementations to cache a 206 Partial
1023      Response if they so choose to do so. Previously an attempt to cache a 206
1024      was arbitrarily allowed if the response contained an Expires or
1025      Cache-Control header, and arbitrarily denied if both headers were missing.
1026      [Graham Leggett]
1027
1028   *) core: Add microsecond timestamp fractions, process id and thread id
1029      to the error log. [Rainer Jung]
1030
1031   *) configure: The "most" module set gets build by default.  [Rainer Jung]
1032
1033   *) configure: Building dynamic modules (DSO) by default.  [Rainer Jung]
1034
1035   *) configure: Fix broken VPATH build when using included APR.
1036      [Rainer Jung]
1037
1038   *) mod_session_crypto: Fix configure problem when building
1039      with APR 2 and for VPATH builds with included APR.
1040      [Rainer Jung]
1041
1042   *) mod_session_crypto: API compatibility with APR 2 crypto and
1043      APR Util 1.x crypto. [Rainer Jung]
1044
1045   *) ab: Fix memory leak with -v2 and SSL. PR 49383.
1046      [Pavel Kankovsky <peak argo troja mff cuni cz>]
1047
1048   *) core: Add per-module and per-directory loglevel configuration.
1049            Add some more trace logging.
1050      mod_rewrite: Replace RewriteLog/RewriteLogLevel with trace log levels.
1051      mod_ssl: Replace LogLevelDebugDump with trace log levels.
1052      mod_ssl/mod_proxy*: Adjust loglevels to be less verbose at levels info
1053            and debug.
1054      mod_dumpio:  Replace DumpIOLogLevel with trace log levels.
1055      [Stefan Fritsch]
1056
1057   *) mod_ldap: LDAP caching was suppressed (and ldap-status handler returns
1058      title page only) when any mod_ldap directives were used in VirtualHost
1059      context.  [Eric Covener]
1060
1061   *) mod_disk_cache: Decline the opportunity to cache if the response is
1062      a 206 Partial Content. This stops a reverse proxied partial response
1063      from becoming cached, and then being served in subsequent responses.
1064      [Graham Leggett]
1065
1066   *) mod_deflate: avoid the risk of forwarding data before headers are set.
1067      PR 49369 [Matthew Steele <mdsteele google.com>]
1068
1069   *) mod_authnz_ldap: Ensure nested groups are checked when the
1070      top-level group doesn't have any direct non-group members
1071      of attributes in AuthLDAPGroupAttribute. [Eric Covener]
1072
1073   *) mod_authnz_ldap: Search or Comparison during authorization phase
1074      can use the credentials from the authentication phase
1075      (AuthLDAPSearchAsUSer,AuthLDAPCompareAsUser).
1076      PR 48340 [Domenico Rotiroti, Eric Covener]
1077
1078   *) mod_authnz_ldap: Allow the initial DN search during authentication
1079      to use the HTTP username/pass instead of an anonymous or hard-coded
1080      LDAP id (AuthLDAPInitialBindAsUser, AuthLDAPInitialBindPattern).
1081      [Eric Covener]
1082
1083   *) mod_authnz_ldap: Publish requested LDAP data with an AUTHORIZE_ prefix
1084      when this module is used for authorization. See AuthLDAPAuthorizePrefix.
1085      PR 45584 [Eric Covener]
1086
1087   *) apxs -q: Stop filtering out ':' characters from the reported values.
1088      PR 45343.  [Bill Cole]
1089
1090   *) prefork MPM: Work around possible crashes on child exit in APR reslist
1091      cleanup code.  PR 43857.  [Tom Donovan]
1092
1093   *) ab: fix number of requests sent by ab when keepalive is enabled.  PR 48497.
1094      [Bryn Dole <dole blekko.com>]
1095
1096   *) Log an error for failures to read a chunk-size, and return 408 instead of
1097      413 when this is due to a read timeout.  This change also fixes some cases
1098      of two error documents being sent in the response for the same scenario.
1099      [Eric Covener] PR49167
1100
1101   *) mod_proxy_balancer: Add new directive BalancerNonce to allow admin
1102      to control/set the nonce used in the balancer-manager application.
1103      [Jim Jagielski]
1104
1105   *) mod_proxy_connect: Support port ranges in AllowConnect. PR 23673.
1106      [Stefan Fritsch]
1107
1108   *) Proxy balancer: support setting error status according to HTTP response
1109      code from a backend.  PR 48939.  [Daniel Ruggeri <DRuggeri primary.net>]
1110
1111   *) htcacheclean: Introduce the ability to clean specific URLs from the
1112      cache, if provided as an optional parameter on the command line.
1113      [Graham Leggett]
1114
1115   *) core: Introduce the IncludeStrict directive, which explicitly fails
1116      server startup if no files or directories match a wildcard path.
1117      [Graham Leggett]
1118
1119   *) htcacheclean: Report additional statistics about entries deleted.
1120      PR 48944. [Mark Drayton mark markdrayton.info]
1121
1122   *) Introduce SSLFIPS directive to support OpenSSL FIPS_mode; permits all
1123      builds of mod_ssl to use 'SSLFIPS off' for portability, but the proper
1124      build of openssl is required for 'SSLFIPS on'.  PR 46270.
1125      [Dr Stephen Henson <steve openssl.org>, William Rowe]
1126
1127   *) mod_proxy_http: Log the port of the remote server in various messages.
1128      PR 48812. [Igor Galić <i galic brainsware org>]
1129
1130   *) mod_reqtimeout: Do not wrongly enforce timeouts for mod_proxy's backend
1131      connections and other protocol handlers (like mod_ftp). [Stefan Fritsch]
1132
1133   *) mod_proxy_ajp: Really regard the operation a success, when the client
1134      aborted the connection. In addition adjust the log message if the client
1135      aborted the connection. [Ruediger Pluem]
1136
1137   *) mod_ssl: Add the 'SSLInsecureRenegotiation' directive, which
1138      allows insecure renegotiation with clients which do not yet
1139      support the secure renegotiation protocol.  [Joe Orton]
1140
1141   *) mod_ssl: Fix a potential I/O hang if a long list of trusted CAs
1142      is configured for client cert auth. PR 46952.  [Joe Orton]
1143
1144   *) core: Only log a 408 if it is no keepalive timeout. PR 39785
1145      [Ruediger Pluem,  Mark Montague <markmont umich.edu>]
1146
1147   *) support/rotatelogs: Add -L option to create a link to the current
1148      log file.  PR 48761 [<lyndon orthanc.ca>, Dan Poirier]
1149
1150   *) mod_ldap: Update LDAPTrustedClientCert to consistently be a per-directory
1151      setting only, matching most of the documentation and examples.
1152      PR 46541 [Paul Reder, Eric Covener]
1153
1154   *) mod_ldap: LDAPTrustedClientCert now accepts CA_DER/CA_BASE64 argument
1155      types previously allowed only in LDAPTrustedGlobalCert. [Eric Covener]
1156
1157   *) mod_negotiation: Preserve query string over multiviews negotiation.
1158      This buglet was fixed for type maps in 2.2.6, but the same issue
1159      affected multiviews and was overlooked.
1160      PR 33112 [Joergen Thomsen <apache jth.net>]
1161
1162   *) mod_ldap: Eliminate a potential crash with multiple LDAPTrustedClientCert
1163      when some are not password-protected. [Eric Covener]
1164
1165   *) Fix startup segfault when the Mutex directive is used but no loaded
1166      modules use httpd mutexes.  PR 48787.  [Jeff Trawick]
1167
1168   *) Proxy: get the headers right in a HEAD request with
1169      ProxyErrorOverride, by checking for an overridden error
1170      before not after going into a catch-all code path.
1171      PR 41646.  [Nick Kew, Stuart Children]
1172
1173   *) support/rotatelogs: Support the simplest log rotation case, log
1174      truncation. Useful when the log is being processed in real time
1175      using a command like tail. [Graham Leggett]
1176
1177   *) support/htcacheclean: Teach it how to write a pid file (modelled on
1178      httpd's writing of a pid file) so that it becomes possible to run
1179      more than one instance of htcacheclean on the same machine.
1180      [Graham Leggett]
1181
1182   *) Log command line on startup, so there's a record of command line
1183      arguments like -f.  PR 48752.  [Dan Poirier]
1184
1185   *) Introduce mod_reflector, a handler capable of reflecting POSTed
1186      request bodies back within the response through the output filter
1187      stack. Can be used to turn an output filter into a web service.
1188      [Graham Leggett]
1189
1190   *) mod_proxy_http: Make sure that when an ErrorDocument is served
1191      from a reverse proxied URL, that the subrequest respects the status
1192      of the original request. This brings the behaviour of proxy_handler
1193      in line with default_handler. PR 47106. [Graham Leggett]
1194
1195   *) Support wildcards in both the directory and file components of
1196      the path specified by the Include directive. [Graham Leggett]
1197
1198   *) mod_proxy, mod_proxy_http: Support remote https proxies
1199      by using HTTP CONNECT.  PR 19188.
1200      [Philippe Dutrueux <lilas evidian.com>, Rainer Jung]
1201
1202   *) apxs: Fix -A and -a options to ignore whitespace in httpd.conf
1203      [Philip M. Gollucci]
1204
1205   *) worker: Don't report server has reached MaxClients until it has.
1206      Add message when server gets within MinSpareThreads of MaxClients.
1207      PR 46996.  [Dan Poirier]
1208
1209   *) mod_session: Session expiry was being initialised, but not updated
1210      on each session save, resulting in timed out sessions when there
1211      should not have been. Fixed. [Graham Leggett]
1212
1213   *) mod_log_config: Add the R option to log the handler used within the
1214      request. [Christian Folini <christian.folini netnea com>]
1215
1216   *) mod_include: Allow fine control over the removal of Last-Modified and
1217      ETag headers within the INCLUDES filter, making it possible to cache
1218      responses if desired. Fix the default value of the SSIAccessEnable
1219      directive.  [Graham Leggett]
1220
1221   *) Add new UnDefine directive to undefine a variable. PR 35350.
1222      [Stefan Fritsch]
1223
1224   *) Make ap_pregsub(), used by AliasMatch and friends, use the same syntax
1225      for regex backreferences as mod_rewrite and mod_include: Remove the use
1226      of '&' as an alias for '$0' and allow to escape any character with a
1227      backslash. PR 48351. [Stefan Fritsch]
1228
1229   *) mod_authnz_ldap: If AuthLDAPCharsetConfig is set, also convert the
1230      password to UTF-8. PR 45318.
1231      [Johannes Müller <joh_m gmx.de>, Stefan Fritsch]
1232
1233   *) ab: Fix calculation of requests per second in HTML output. PR 48594.
1234      [Stefan Fritsch]
1235
1236   *) mod_authnz_ldap: Failures to map a username to a DN, or to check a user
1237      password now result in an informational level log entry instead of
1238      warning level.  [Eric Covener]
1239
1240 Changes with Apache 2.3.5
1241
1242   *) SECURITY: CVE-2010-0434 (cve.mitre.org)
1243      Ensure each subrequest has a shallow copy of headers_in so that the
1244      parent request headers are not corrupted.  Eliminates a problematic
1245      optimization in the case of no request body.  PR 48359
1246      [Jake Scott, William Rowe, Ruediger Pluem]
1247
1248   *) Turn static function get_server_name_for_url() into public
1249      ap_get_server_name_for_url() and use it where appropriate. This
1250      fixes mod_rewrite generating invalid URLs for redirects to IPv6
1251      literal addresses. [Stefan Fritsch]
1252
1253   *) mod_ldap: Introduce new config option LDAPTimeout to set the timeout
1254      for LDAP operations like bind and search. [Stefan Fritsch]
1255
1256   *) mod_proxy, mod_proxy_ftp: Move ProxyFtpDirCharset from mod_proxy to
1257      mod_proxy_ftp. [Takashi Sato]
1258
1259   *) mod_proxy, mod_proxy_connect: Move AllowCONNECT from mod_proxy to
1260      mod_proxy_connect. [Takashi Sato]
1261
1262   *) mod_cache: Do an exact match of the keys defined by
1263      CacheIgnoreURLSessionIdentifiers against the querystring instead of
1264      a partial match.  PR 48401.
1265      [Dodou Wang <wangdong.08 gmail.com>, Ruediger Pluem]
1266
1267   *) mod_proxy_balancer: Fix crash in balancer-manager. [Rainer Jung]
1268
1269   *) Core HTTP: disable keepalive when the Client has sent
1270      Expect: 100-continue
1271      but we respond directly with a non-100 response.
1272      Keepalive here led to data from clients continuing being treated as
1273      a new request.
1274      PR 47087 [Nick Kew]
1275
1276   *) Core: reject NULLs in request line or request headers.
1277      PR 43039 [Nick Kew]
1278
1279   *) Core: (re)-introduce -T commandline option to suppress documentroot
1280      check at startup.
1281      PR 41887 [Jan van den Berg <janvdberg gmail.com>]
1282
1283   *) mod_autoindex: support XHTML as equivalent to HTML in IndexOptions,
1284                     ScanHTMLTitles, ReadmeName, HeaderName
1285      PR 48416 [Dmitry Bakshaev <dab18 izhnet.ru>, Nick Kew]
1286
1287   *) Proxy: Fix ProxyPassReverse with relative URL
1288      Derived (slightly erroneously) from PR 38864 [Nick Kew]
1289
1290   *) mod_headers: align Header Edit with Header Set when used on Content-Type
1291      PR 48422 [Cyril Bonté <cyril.bonte free.fr>, Nick Kew>]
1292
1293   *) mod_headers: Enable multi-match-and-replace edit option
1294      PR 46594 [Nick Kew]
1295
1296   *) mod_filter: enable it to act on non-200 responses.
1297      PR 48377 [Nick Kew]
1298
1299 Changes with Apache 2.3.4
1300
1301   *) Replace AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex,
1302      and WatchdogMutexPath with a single Mutex directive.  Add APIs to
1303      simplify setup and user customization of APR proc and global mutexes.
1304      (See util_mutex.h.)  Build-time setting DEFAULT_LOCKFILE is no longer
1305      respected; set DEFAULT_REL_RUNTIMEDIR instead.  [Jeff Trawick]
1306
1307   *) http_core: KeepAlive no longer accepts other than On|Off.
1308      [Takashi Sato]
1309
1310   *) mod_dav: Remove errno from dav_error interface.  Calls to dav_new_error()
1311      and dav_new_error_tag() must be adjusted to add an apr_status_t parameter.
1312      [Jeff Trawick]
1313
1314   *) mod_authnz_ldap: Add AuthLDAPBindAuthoritative to allow Authentication to
1315      try other providers in the case of an LDAP bind failure.
1316      PR 46608 [Justin Erenkrantz, Joe Schaefer, Tony Stevenson]
1317
1318   *) Build: fix --with-module to work as documented
1319      PR 43881 [Gez Saunders <gez.saunders virgin.net>]
1320
1321 Changes with Apache 2.3.3
1322
1323   *) SECURITY: CVE-2009-3095 (cve.mitre.org)
1324      mod_proxy_ftp: sanity check authn credentials.
1325      [Stefan Fritsch <sf fritsch.de>, Joe Orton]
1326
1327   *) SECURITY: CVE-2009-3094 (cve.mitre.org)
1328      mod_proxy_ftp: NULL pointer dereference on error paths.
1329      [Stefan Fritsch <sf fritsch.de>, Joe Orton]
1330   *) mod_ssl: enable support for ECC keys and ECDH ciphers.  Tested against
1331      OpenSSL 1.0.0b3.  [Vipul Gupta <vipul.gupta sun.com>, Sander Temme]
1332
1333   *) mod_dav: Include uri when logging a PUT error due to connection abort.
1334      PR 38149. [Stefan Fritsch]
1335
1336   *) mod_dav: Return 409 instead of 500 for a LOCK request if the parent
1337      resource does not exist or is not a collection. PR 43465. [Stefan Fritsch]
1338
1339   *) mod_dav_fs: Return 409 instead of 500 for Litmus test case copy_nodestcoll
1340      (a COPY request where the parent of the destination resource does not
1341      exist). PR 39299. [Stefan Fritsch]
1342
1343   *) mod_dav_fs: Don't delete the whole file if a PUT with content-range failed.
1344      PR 42896. [Stefan Fritsch]
1345
1346   *) mod_dav_fs: Make PUT create files atomically and no longer destroy the
1347      old file if the transfer aborted. PR 39815. [Paul Querna, Stefan Fritsch]
1348
1349   *) mod_dav_fs: Remove inode keyed locking as this conflicts with atomically
1350      creating files. On systems with inode numbers, this is a format change of
1351      the DavLockDB. The old DavLockDB must be deleted on upgrade.
1352      [Stefan Fritsch]
1353
1354   *) mod_log_config: Make ${cookie}C correctly match whole cookie names
1355      instead of substrings. PR 28037. [Dan Franklin <dan dan-franklin.com>,
1356      Stefan Fritsch]
1357
1358   *) vhost: A purely-numeric Host: header should not be treated as a port.
1359      PR 44979 [Nick Kew]
1360
1361   *) mod_ldap: Avoid 500 errors with "Unable to set LDAP_OPT_REFHOPLIMIT option to 5"
1362      when built against openldap by using SDK LDAP_OPT_REFHOPLIMIT defaults unless
1363      LDAPReferralHopLimit is explicitly configured.
1364      [Eric Covener]
1365
1366   *) mod_charset_lite: Honor 'CharsetOptions NoImplicitAdd'.
1367      [Eric Covener]
1368
1369   *) mod_ssl: Add support for OCSP Stapling.  PR 43822.
1370      [Dr Stephen Henson <shenson oss-institute.org>]
1371
1372   *) mod_socache_shmcb: Allow parens in file name if cache size is given.
1373      Fixes SSLSessionCache directive mis-parsing parens in pathname.
1374      PR 47945. [Stefan Fritsch]
1375
1376   *) htpasswd: Improve out of disk space handling. PR 30877. [Stefan Fritsch]
1377
1378   *) htpasswd: Use MD5 hash by default on all platforms. [Stefan Fritsch]
1379
1380   *) mod_sed: Reduce memory consumption when processing very long lines.
1381      PR 48024 [Basant Kumar Kukreja <basant.kukreja sun.com>]
1382
1383   *) ab: Fix segfault in case the argument for -n is a very large number.
1384      PR 47178. [Philipp Hagemeister <oss phihag.de>]
1385
1386   *) Allow ProxyPreserveHost to work in <Proxy> sections. PR 34901.
1387      [Stefan Fritsch]
1388
1389   *) configure: Fix THREADED_MPMS so that mod_cgid is enabled again
1390      for worker MPM. [Takashi Sato]
1391
1392   *) mod_dav: Provide a mechanism to obtain the request_rec and pathname
1393      from the dav_resource. [Jari Urpalainen <jari.urpalainen nokia.com>,
1394      Brian France <brian brianfrance.com>]
1395
1396   *) Build: Use install instead of cp if available on installing
1397      modules to avoid segmentation fault. PR 47951. [hirose31 gmail.com]
1398
1399   *) mod_cache: correctly consider s-maxage in cacheability
1400      decisions.  [Dan Poirier]
1401
1402   *) mod_logio/core: Report more accurate byte counts in mod_status if
1403      mod_logio is loaded. PR 25656. [Stefan Fritsch]
1404
1405   *) mod_ldap: If LDAPSharedCacheSize is too small, try harder to purge
1406      some cache entries and log a warning. Also increase the default
1407      LDAPSharedCacheSize to 500000. This is a more realistic size suitable
1408      for the default values of 1024 for LdapCacheEntries/LdapOpCacheEntries.
1409      PR 46749. [Stefan Fritsch]
1410
1411   *) mod_rewrite: Make sure that a hostname:port isn't fully qualified if
1412      the request is a CONNECT request. [Bill Zajac <billz consultla.com>]
1413
1414   *) mod_cache: Teach CacheEnable and CacheDisable to work from within a
1415      Location section, in line with how ProxyPass works. [Graham Leggett]
1416
1417   *) mod_reqtimeout: New module to set timeouts and minimum data rates for
1418      receiving requests from the client. [Stefan Fritsch]
1419
1420   *) core: Fix potential memory leaks by making sure to not destroy
1421      bucket brigades that have been created by earlier filters.
1422      [Stefan Fritsch]
1423
1424   *) core, mod_deflate, mod_sed: Reduce memory usage by reusing bucket
1425      brigades in several places. [Stefan Fritsch]
1426
1427   *) mod_cache: Fix uri_meets_conditions() so that CacheEnable will
1428      match by scheme, or by a wildcarded hostname. PR 40169
1429      [Peter Grandi <pg_asf asf.for.sabi.co.uk>, Graham Leggett]
1430
1431   *) suxec: Allow to log an error if exec fails by setting FD_CLOEXEC
1432      on the log file instead of closing it. PR 10744. [Nicolas Rachinsky]
1433
1434   *) mod_mime: Make RemoveType override the info from TypesConfig.
1435      PR 38330. [Stefan Fritsch]
1436
1437   *) mod_cache: Introduce the option to run the cache from within the
1438      normal request handler, and to allow fine grained control over
1439      where in the filter chain content is cached. [Graham Leggett]
1440
1441   *) core: Treat timeout reading request as 408 error, not 400.
1442      Log 408 errors in access log as was done in Apache 1.3.x.
1443      PR 39785 [Nobutaka Mantani <nobutaka nobutaka.org>,
1444      Stefan Fritsch <sf fritsch.de>, Dan Poirier]
1445
1446   *) mod_ssl: Reintroduce SSL_CLIENT_S_DN, SSL_CLIENT_I_DN, SSL_SERVER_S_DN,
1447      SSL_SERVER_I_DN back to the environment variables to be set by mod_ssl.
1448      [Peter Sylvester <peter.sylvester edelweb.fr>]
1449
1450   *) mod_disk_cache: don't cache incomplete responses, per RFC 2616, 13.8.
1451      PR15866.  [Dan Poirier]
1452
1453   *) ab: ab segfaults in verbose mode on https sites
1454      PR46393.  [Ryan Niebur]
1455
1456   *) mod_dav: Allow other modules to become providers and add resource types
1457      to the DAV response. [Jari Urpalainen <jari.urpalainen nokia.com>,
1458      Brian France <brian brianfrance.com>]
1459
1460   *) mod_dav: Allow other modules to add things to the DAV or Allow headers
1461      of an OPTIONS request. [Jari Urpalainen <jari.urpalainen nokia.com>,
1462      Brian France <brian brianfrance.com>]
1463
1464   *) core: Lower memory usage of core output filter.
1465      [Stefan Fritsch <sf sfritsch.de>]
1466
1467   *) mod_mime: Detect invalid use of MultiviewsMatch inside Location and
1468      LocationMatch sections.  PR47754. [Dan Poirier]
1469
1470   *) mod_request: Make sure the KeptBodySize directive rejects values
1471      that aren't valid numbers. [Graham Leggett]
1472
1473   *) mod_session_crypto: Sanity check should the potentially encrypted
1474      session cookie be too short. [Graham Leggett]
1475
1476   *) mod_session.c: Prevent a segfault when session is added but not
1477      configured. [Graham Leggett]
1478
1479   *) htcacheclean: 19 ways to fail, 1 error message. Fixed. [Graham Leggett]
1480
1481   *) mod_auth_digest: Fail server start when nonce count checking
1482      is configured without shared memory, or md5-sess algorithm is
1483      configured. [Dan Poirier]
1484
1485   *) mod_proxy_connect: The connect method doesn't work if the client is
1486      connecting to the apache proxy through an ssl socket. Fixed.
1487      PR29744. [Brad Boyer, Mark Cave-Ayland, Julian Gilbey, Fabrice Durand,
1488      David Gence, Tim Dodge, Per Gunnar Hans, Emmanuel Elango,
1489      Kevin Croft, Rudolf Cardinal]
1490
1491   *) mod_ssl: The error message when SSLCertificateFile is missing should
1492      at least give the name or position of the problematic virtual host
1493      definition. [Stefan Fritsch sf sfritsch.de]
1494
1495   *) mod_auth_digest: Fix null pointer when qop=none. [Dan Poirier]
1496
1497   *) Add support for HTTP PUT to ab. [Jeff Barnes <jbarnesweb yahoo.com>]
1498
1499   *) mod_headers: generalise the envclause to support expression
1500      evaluation with ap_expr parser [Nick Kew]
1501
1502   *) mod_cache: Introduce the thundering herd lock, a mechanism to keep
1503      the flood of requests at bay that strike a backend webserver as
1504      a cached entity goes stale. [Graham Leggett]
1505
1506   *) mod_auth_digest: Fix usage of shared memory and re-enable it.
1507      PR 16057 [Dan Poirier]
1508
1509   *) Preserve Port information over internal redirects
1510      PR 35999 [Jonas Ringh <jonas.ringh cixit.se>]
1511
1512   *) Proxy: unable to connect to a backend is SERVICE_UNAVAILABLE,
1513      rather than BAD_GATEWAY or (especially) NOT_FOUND.
1514      PR 46971 [evanc nortel.com]
1515
1516   *) Various modules: Do better checking of pollset operations in order to
1517      avoid segmentation faults if they fail. PR 46467
1518      [Stefan Fritsch <sf sfritsch.de>]
1519
1520   *) mod_autoindex: Correctly create an empty cell if the description
1521      for a file is missing. PR 47682 [Peter Poeml <poeml suse.de>]
1522
1523   *) ab: Fix broken error messages after resolver or connect() failures.
1524      [Jeff Trawick]
1525
1526   *) SECURITY: CVE-2009-1890 (cve.mitre.org)
1527      Fix a potential Denial-of-Service attack against mod_proxy in a
1528      reverse proxy configuration, where a remote attacker can force a
1529      proxy process to consume CPU time indefinitely.  [Nick Kew, Joe Orton]
1530
1531   *) SECURITY: CVE-2009-1191 (cve.mitre.org)
1532      mod_proxy_ajp: Avoid delivering content from a previous request which
1533      failed to send a request body. PR 46949 [Ruediger Pluem]
1534
1535   *) htdbm: Fix possible buffer overflow if dbm database has very
1536      long values.  PR 30586 [Dan Poirier]
1537
1538   *) core: Return APR_EOF if request body is shorter than the length announced
1539      by the client. PR 33098 [ Stefan Fritsch <sf sfritsch.de>]
1540
1541   *) mod_suexec: correctly set suexec_enabled when httpd is run by a
1542      non-root user and may have insufficient permissions.
1543      PR 42175 [Jim Radford <radford blackbean.org>]
1544
1545   *) mod_ssl: Fix SSL_*_DN_UID variables to use the 'userID' attribute
1546      type.  PR 45107.  [Michael Ströder <michael stroeder.com>,
1547      Peter Sylvester <peter.sylvester edelweb.fr>]
1548
1549   *) mod_proxy_http: fix case sensitivity checking transfer encoding
1550      PR 47383 [Ryuzo Yamamoto <ryuzo.yamamoto gmail.com>]
1551
1552   *) mod_alias: ensure Redirect issues a valid URL.
1553      PR 44020 [HÃ¥kon Stordahl <hakon stordahl.org>]
1554
1555   *) mod_dir: add FallbackResource directive, to enable admin to specify
1556      an action to happen when a URL maps to no file, without resorting
1557      to ErrorDocument or mod_rewrite.  PR 47184 [Nick Kew]
1558
1559   *) mod_cgid: Do not leak the listening Unix socket file descriptor to the
1560      CGI process. PR 47335 [Kornél Pál <kornelpal gmail.com>]
1561
1562   *) mod_rewrite: Remove locking for writing to the rewritelog.
1563      PR 46942 [Dan Poirier <poirier pobox.com>]
1564
1565   *) mod_alias: check sanity in Redirect arguments.
1566      PR 44729 [Sönke Tesch <st kino-fahrplan.de>, Jim Jagielski]
1567
1568   *) mod_proxy_http: fix Host: header for literal IPv6 addresses.
1569      PR 47177 [Carlos Garcia Braschi <cgbraschi gmail.com>]
1570
1571   *) mod_cache: Add CacheIgnoreURLSessionIdentifiers directive to ignore
1572      defined session identifiers encoded in the URL when caching.
1573      [Ruediger Pluem]
1574
1575   *) mod_rewrite: Fix the error string returned by RewriteRule.
1576      RewriteRule returned "RewriteCond: bad flag delimiters" when the 3rd
1577      argument of RewriteRule was not started with "[" or not ended with "]".
1578      PR 45082 [Vitaly Polonetsky <m_vitaly topixoft.com>]
1579
1580   *) Windows: Fix usage message.
1581      [Rainer Jung]
1582
1583   *) apachectl: When passing through arguments to httpd in
1584      non-SysV mode, use the "$@" syntax to preserve arguments.
1585      [Eric Covener]
1586
1587   *) mod_dbd: add DBDInitSQL directive to enable SQL statements to
1588      be run when a connection is opened.  PR 46827
1589      [Marko Kevac <mkevac gmail.com>]
1590
1591   *) mod_cgid: Improve handling of long AF_UNIX socket names (ScriptSock).
1592      PR 47037.  [Jeff Trawick]
1593
1594   *) mod_proxy_ajp: Check more strictly that the backend follows the AJP
1595      protocol. [Mladen Turk]
1596
1597   *) mod_proxy_ajp: Forward remote port information by default.
1598      [Rainer Jung]
1599
1600   *) Allow MPMs to be loaded dynamically, as with most other modules.  Use
1601      --enable-mpms-shared={list|"all"} to enable.  This required changes to
1602      the MPM interfaces.  Removed: mpm.h, mpm_default.h (as an installed
1603      header), APACHE_MPM_DIR, MPM_NAME, ap_threads_per_child,
1604      ap_max_daemons_limit, ap_my_generation, etc.  ap_mpm_query() can't be
1605      called until after the register-hooks phase.  [Jeff Trawick]
1606
1607   *) mod_ssl: Add SSLProxyCheckPeerExpire and SSLProxyCheckPeerCN directives
1608      to enable stricter checking of remote server certificates.
1609      [Ruediger Pluem]
1610
1611   *) ab: Fix a 100% CPU loop on platforms where a failed non-blocking connect
1612      returns EINPROGRESS and a subsequent poll() returns only POLLERR.
1613      Observed on HP-UX.  [Eric Covener]
1614
1615   *) Remove broken support for BeOS, TPF, and even older platforms such
1616      as A/UX, Next, and Tandem.  [Jeff Trawick]
1617
1618   *) mod_proxy_ftp: Add ProxyFtpListOnWildcard directive to allow files with
1619      globbing characters to be retrieved instead of converted into a
1620      directory listing.  PR 46789 [Dan Poirier <poirier pobox.com>]
1621
1622   *) Provide ap_retained_data_create()/ap_retained_data_get() for preservation
1623      of module state across unload/load.  [Jeff Trawick]
1624
1625   *) mod_substitute: Fix a memory leak. PR 44948
1626      [Dan Poirier <poirier pobox.com>]
1627
1628 Changes with Apache 2.3.2
1629
1630   *) mod_mime_magic: Fix detection of compressed content. [Rainer Jung]
1631
1632   *) mod_negotiation: Escape pathes of filenames in 406 responses to avoid
1633      HTML injections and HTTP response splitting.  PR 46837.
1634      [Geoff Keating <geoffk apple.com>]
1635
1636   *) mod_ssl: add support for type-safe STACK constructs in OpenSSL
1637      development HEAD.  PR 45521.  [Kaspar Brand, Sander Temme]
1638
1639   *) ab: Fix maintenance of the pollset to resolve EALREADY errors
1640      with kqueue (BSD/OS X) and excessive CPU with event ports (Solaris).
1641      PR 44584.  Use APR_POLLSET_NOCOPY for better performance with some
1642      pollset implementations.  [Jeff Trawick]
1643
1644   *) mod_disk_cache: The module now turns off sendfile support if
1645      'EnableSendfile off' is defined globally. [Lars Eilebrecht]
1646
1647   *) mod_deflate: Adjust content metadata before bailing out on 304
1648      responses so that the metadata does not differ from 200 response.
1649      [Roy T. Fielding]
1650
1651   *) mod_deflate: Fix creation of invalid Etag headers. We now make sure
1652      that the Etag value is properly quoted when adding the gzip marker.
1653      PR 39727, 45023. [Lars Eilebrecht, Roy T. Fielding]
1654
1655   *) Added 20x22 icons for ODF, SVG, and XML documents.  PR 37185.
1656      [Peter Harlow]
1657
1658   *) Disabled DefaultType directive and removed ap_default_type()
1659      from core.  We now exclude Content-Type from responses for which
1660      a media type has not been configured via mime.types, AddType,
1661      ForceType, or some other mechanism. PR 13986. [Roy T. Fielding]
1662
1663   *) mod_rewrite: Add IPV6 variable to RewriteCond
1664      [Ryan Phillips <ryan-apache trolocsis.com>]
1665
1666   *) core: Enhance KeepAliveTimeout to support a value in milliseconds.
1667      PR 46275. [Takashi Sato]
1668
1669   *) rotatelogs: Allow size units B, K, M, G and combination of
1670      time and size based rotation. [Rainer Jung]
1671
1672   *) rotatelogs: Add flag for verbose (debug) output. [Rainer Jung]
1673
1674   *) mod_ssl: Fix merging of SSLRenegBufferSize directive. PR 46508
1675      [<tlhackque yahoo.com>]
1676
1677   *) core: Translate the the status line to ASCII on EBCDIC platforms in
1678      ap_send_interim_response() and for locally generated "100 Continue"
1679      responses.  [Eric Covener]
1680
1681   *) prefork: Fix child process hang during graceful restart/stop in
1682      configurations with multiple listening sockets.  PR 42829.  [Joe Orton,
1683      Jeff Trawick]
1684
1685   *) mod_session_crypto: Ensure that SessionCryptoDriver can only be
1686      set in the global scope. [Graham Leggett]
1687
1688   *) mod_ext_filter: We need to detect failure to startup the filter
1689      program (a mangled response is not acceptable).  Fix to detect
1690      failure, and offer configuration option either to abort or
1691      to remove the filter and continue.
1692      PR 41120 [Nick Kew]
1693
1694   *) mod_session_crypto: Rewrite the session_crypto module against the
1695      apr_crypto API. [Graham Leggett]
1696
1697   *) mod_auth_form: Fix a pool lifetime issue, don't remove the subrequest
1698      until the main request is cleaned up. [Graham Leggett]
1699
1700 Changes with Apache 2.3.1
1701
1702   *) ap_slotmem: Add in new slot-based memory access API impl., including
1703      2 providers (mod_sharedmem and mod_plainmem) [Jim Jagielski,
1704      Jean-Frederic Clere, Brian Akins <brian.akins turner.com>]
1705
1706   *) mod_include: support generating non-ASCII characters as entities in SSI
1707      PR 25202 [Nick Kew]
1708
1709   *) core/utils: Enhance ap_escape_html API to support escaping non-ASCII chars
1710      PR 25202 [Nick Kew]
1711
1712   *) mod_rewrite: fix "B" flag breakage by reverting r5589343
1713     PR 45529 [Bob Ionescu <bobsiegen googlemail.com>]
1714
1715   *) CGI: return 504 (Gateway timeout) rather than 500 when a script
1716      times out before returning status line/headers.
1717      PR 42190 [Nick Kew]
1718
1719   *) mod_cgid: fix segfault problem on solaris.
1720      PR 39332 [Masaoki Kobayashi <masaoki techfirm.co.jp>]
1721
1722   *) mod_proxy_scgi: Added. [André Malo]
1723
1724   *) mod_cache: Introduce 'no-cache' per-request environment variable
1725      to prevent the saving of an otherwise cacheable response.
1726      [Eric Covener]
1727
1728   *) mod_rewrite: Introduce DiscardPathInfo|DPI flag to stop the troublesome
1729      way that per-directory rewrites append the previous notion of PATH_INFO
1730      to each substitution before evaluating subsequent rules.
1731      PR 38642 [Eric Covener]
1732
1733   *) mod_cgid: Do not add an empty argument when calling the CGI script.
1734      PR 46380 [Ruediger Pluem]
1735
1736   *) scoreboard: Remove unused sb_type from process_score.
1737      [Torsten Foertsch <torsten.foertsch gmx.net>, Chris Darroch]
1738
1739   *) mod_ssl: Add SSLRenegBufferSize directive to allow changing the
1740      size of the buffer used for the request-body where necessary
1741      during a per-dir renegotiation.  PR 39243.  [Joe Orton]
1742
1743   *) mod_proxy_fdpass: New module to pass a client connection over to a separate
1744      process that is reading from a unix daemon socket.
1745
1746   *) mod_ssl: Improve environment variable extraction to be more
1747      efficient and to correctly handle DNs with duplicate tags.
1748      PR 45975.  [Joe Orton]
1749
1750   *) Remove the obsolete serial attribute from the RPM spec file. Compile
1751      against the external pcre. Add missing binaries fcgistarter, and
1752      mod_socache* and mod_session*. [Graham Leggett]
1753
1754 Changes with Apache 2.3.0
1755
1756   *) mod_ratelimit: New module to do bandwidth rate limiting. [Paul Querna]
1757
1758   *) Remove X-Pad header which was added as a work around to a bug in
1759      Netscape 2.x to 4.0b2. [Takashi Sato <takashi lans-tv.com>]
1760
1761   *) Add DTrace Statically Defined Tracing (SDT) probes.
1762     [Theo Schlossnagle <jesus omniti.com>, Paul Querna]
1763
1764   *) mod_proxy_balancer: Move all load balancing implementations
1765      as individual, self-contained mod_proxy submodules under
1766      modules/proxy/balancers [Jim Jagielski]
1767
1768   *) Rename APIs to include ap_ prefix:
1769         find_child_by_pid -> ap_find_child_by_pid
1770         suck_in_APR -> ap_suck_in_APR
1771         sys_privileges_handlers -> ap_sys_privileges_handlers
1772         unixd_accept -> ap_unixd_accept
1773         unixd_config -> ap_unixd_config
1774         unixd_killpg -> ap_unixd_killpg
1775         unixd_set_global_mutex_perms -> ap_unixd_set_global_mutex_perms
1776         unixd_set_proc_mutex_perms -> ap_unixd_set_proc_mutex_perms
1777         unixd_set_rlimit -> ap_unixd_set_rlimit
1778      [Paul Querna]
1779
1780   *) mod_lbmethod_heartbeat: New module to load balance mod_proxy workers
1781      based on heartbeats. [Paul Querna]
1782
1783   *) mod_heartmonitor: New module to collect heartbeats, and write out a file
1784      so that other modules can load balance traffic as needed. [Paul Querna]
1785
1786   *) mod_heartbeat: New module to generate multicast heartbeats to know if a
1787      server is online. [Paul Querna]
1788
1789   *) mod_buffer: Honour the flush bucket and flush the buffer in the
1790      input filter. Make sure that metadata buckets are written to
1791      the buffer, not to the final brigade. [Graham Leggett]
1792
1793   *) mod_buffer: Optimise the buffering of heap buckets when the heap
1794      buckets stay exactly APR_BUCKET_BUFF_SIZE long. [Graham Leggett,
1795      Ruediger Pluem]
1796
1797   *) mod_buffer: Optional support for buffering of the input and output
1798      filter stacks. Can collapse many small buckets into fewer larger
1799      buckets, and prevents excessively small chunks being sent over
1800      the wire. [Graham Leggett]
1801
1802   *) mod_privileges: new module to make httpd on Solaris privileges-aware
1803      and to enable different virtualhosts to run with different
1804      privileges and Unix user/group IDs [Nick Kew]
1805
1806   *) mod_mem_cache: this module has been removed. [William Rowe]
1807
1808   *) authn/z: Remove mod_authn_default and mod_authz_default.
1809      [Chris Darroch]
1810
1811   *) authz: Fix handling of authz configurations, make default authz
1812      logic replicate 2.2.x authz logic, and replace <Satisfy*>, Reject,
1813      and AuthzMergeRules directives with Match, <Match*>, and AuthzMerge
1814      directives.  [Chris Darroch]
1815
1816   *) mod_authn_core: Prevent crash when provider alias created to
1817      provider which is not yet registered.  [Chris Darroch]
1818
1819   *) mod_authn_core: Add AuthType of None to support disabling
1820      authentication.  [Chris Darroch]
1821
1822   *) core: Allow <Limit> and <LimitExcept> directives to nest, and
1823      constrain their use to conform with that of other access control
1824      and authorization directives.  [Chris Darroch]
1825
1826   *) unixd: turn existing code into a module, and turn the set user/group
1827      and chroot into a child_init function. [Nick Kew]
1828
1829   *) mod_dir: Support "DirectoryIndex disabled"
1830      Suggested By André Warnier <aw ice-sa.com> [Eric Covener]
1831
1832   *) mod_ssl: Send Content-Type application/ocsp-request for POST requests to
1833      OSCP responders. PR 46014 [Dr Stephen Henson <steve openssl.org>]
1834
1835   *) mod_authnz_ldap: don't return NULL-valued environment variables to
1836      other modules.  PR 39045 [Francois Pesce <francois.pesce gmail.com>]
1837
1838   *) Don't adjust case in pathname components that are not of interest
1839      to mod_mime.  Fixes mod_negotiation's use of such components.
1840      PR 43250 [Basant Kumar Kukreja <basant.kukreja sun.com>]
1841
1842   *) Be tolerant in what you accept - accept slightly broken
1843      status lines from a backend provided they include a valid status code.
1844      PR 44995 [Rainer Jung <rainer.jung kippdata.de>]
1845
1846   *) New module mod_sed: filter Request/Response bodies through sed
1847      [Basant Kumar Kukreja <basant.kukreja sun.com>]
1848
1849   *) mod_auth_form: Make sure that basic authentication is correctly
1850      faked directly after login. [Graham Leggett]
1851
1852   *) mod_session_cookie, mod_session_dbd: Make sure cookies are set both
1853      within the output headers and error output headers, so that the
1854      session is maintained across redirects. [Graham Leggett]
1855
1856   *) mod_auth_form: Make sure the logged in user is populated correctly
1857      after a form login. Fixes a missing REMOTE_USER variable directly
1858      following a login. [Graham Leggett]
1859
1860   *) mod_session_cookie: Make sure that cookie attributes are correctly
1861      included in the blank cookie when cookies are removed. This fixes an
1862      inability to log out when using mod_auth_form. [Graham Leggett]
1863
1864   *) mod_session: Prevent a segfault when a CGI script sets a cookie with a
1865      null value. [David Shane Holden <dpejesh apache.org>]
1866
1867   *) core, authn/z: Determine registered authn/z providers directly in
1868      ap_setup_auth_internal(), which allows optional functions that just
1869      wrapped ap_list_provider_names() to be removed from authn/z modules.
1870      [Chris Darroch]
1871
1872   *) authn/z: Convert common provider version strings to macros.
1873      [Chris Darroch]
1874
1875   *) core: When testing for slash-terminated configuration paths in
1876      ap_location_walk(), don't look past the start of an empty string
1877      such as that created by a <Location ""> directive.
1878      [Chris Darroch]
1879
1880   *) core, mod_proxy: If a kept_body is present, it becomes safe for
1881      subrequests to support message bodies. Make sure that safety
1882      checks within the core and within the proxy are not triggered
1883      when kept_body is present. This makes it possible to embed
1884      proxied POST requests within mod_include. [Graham Leggett]
1885
1886   *) mod_auth_form: Make sure the input filter stack is properly set
1887      up before reading the login form. Make sure the kept body filter
1888      is correctly inserted to ensure the body can be read a second
1889      time safely should the authn be successful. [Graham Leggett,
1890      Ruediger Pluem]
1891
1892   *) mod_request: Insert the KEPT_BODY filter via the insert_filter
1893      hook instead of during fixups. Add a safety check to ensure the
1894      filters cannot be inserted more than once. [Graham Leggett,
1895      Ruediger Pluem]
1896
1897   *) ap_cache_cacheable_headers_out() will (now) always
1898      merge an error headers _before_ clearing them and _before_
1899      merging in the actual entity headers and doing normal
1900      hop-by-hop cleansing. [Dirk-Willem van Gulik].
1901
1902   *) cache: retire ap_cache_cacheable_hdrs_out() which was used
1903      for both in- and out-put headers; and replace it by a single
1904      ap_cache_cacheable_headers() wrapped in a in- and out-put
1905      specific ap_cache_cacheable_headers_in()/out(). The latter
1906      which will also merge error and ensure content-type. To keep
1907      cache modules consistent with ease. This API change bumps
1908      up the minor MM by one [Dirk-Willem van Gulik].
1909
1910   *) Move the KeptBodySize directive, kept_body filters and the
1911      ap_parse_request_body function out of the http module and into a
1912      new module called mod_request, reducing the size of the core.
1913      [Graham Leggett]
1914
1915   *) mod_dbd: Handle integer configuration directive parameters with a
1916      dedicated function.
1917
1918   *) Change the directives within the mod_session* modules to be valid
1919      both inside and outside the location/directory sections, as
1920      suggested by wrowe. [Graham Leggett]
1921
1922   *) mod_auth_form: Add a module capable of allowing end users to log
1923      in using an HTML form, storing the credentials within mod_session.
1924      [Graham Leggett]
1925
1926   *) Add a function to the http filters that is able to parse an HTML
1927      form request with the type of application/x-www-form-urlencoded.
1928      [Graham Leggett]
1929
1930   *) mod_session_crypto: Initialise SSL in the post config hook.
1931      [Ruediger Pluem, Graham Leggett]
1932
1933   *) mod_session_dbd: Add a session implementation capable of storing
1934      session information in a SQL database via the dbd interface. Useful
1935      for sites where session privacy is important. [Graham Leggett]
1936
1937   *) mod_session_crypto: Add a session encoding implementation capable
1938      of encrypting and decrypting sessions wherever they may be stored.
1939      Introduces a level of privacy when sessions are stored on the
1940      browser. [Graham Leggett]
1941
1942   *) mod_session_cookie: Add a session implementation capable of storing
1943      session information within cookies on the browser. Useful for high
1944      volume sites where server bound sessions are too resource intensive.
1945      [Graham Leggett]
1946
1947   *) mod_session: Add a generic session interface to unify the different
1948      attempts at saving persistent sessions across requests.
1949      [Graham Leggett]
1950
1951   *) core, authn/z: Avoid calling access control hooks for internal requests
1952      with configurations which match those of initial request.  Revert to
1953      original behaviour (call access control hooks for internal requests
1954      with URIs different from initial request) if any access control hooks or
1955      providers are not registered as permitting this optimization.
1956      Introduce wrappers for access control hook and provider registration
1957      which can accept additional mode and flag data.  [Chris Darroch]
1958
1959   *) Introduced ap_expr API for expression evaluation.
1960      This is adapted from mod_include, which is the first module
1961      to use the new API.
1962      [Nick Kew]
1963
1964   *) mod_authz_dbd: When redirecting after successful login/logout per
1965      AuthzDBDRedirectQuery, do not report authorization failure, and use
1966      first row returned by database query instead of last row.
1967      [Chris Darroch]
1968
1969   *) mod_ldap: Correctly return all requested attribute values
1970      when some attributes have a null value.
1971      PR 44560 [Anders Kaseorg <anders kaseorg.com>]
1972
1973   *) core: check symlink ownership if both FollowSymlinks and
1974      SymlinksIfOwnerMatch are set [Nick Kew]
1975
1976   *) core: fix origin checking in SymlinksIfOwnerMatch
1977      PR 36783 [Robert L Mathews <rob-apache.org.bugs tigertech.net>]
1978
1979   *) Activate mod_cache, mod_file_cache and mod_disk_cache as part of the
1980      'most' set for '--enable-modules' and '--enable-shared-mods'. Include
1981      mod_mem_cache in 'all' as well. [Dirk-Willem van Gulik]
1982
1983   *) Also install mod_so.h, mod_rewrite.h and mod_cache.h; as these
1984      contain public function declarations which are useful for
1985      third party module authors. PR 42431 [Dirk-Willem van Gulik].
1986
1987   *) mod_dir, mod_negotiation: pass the output filter information
1988      to newly created sub requests; as these are later on used
1989      as true requests with an internal redirect. This allows for
1990      mod_cache et.al. to trap the results of the redirect.
1991      [Dirk-Willem van Gulik, Ruediger Pluem]
1992
1993   *) mod_ldap: Add support (taking advantage of the new APR capability)
1994      for ldap rebind callback while chasing referrals. This allows direct
1995      searches on LDAP servers (in particular MS Active Directory 2003+)
1996      using referrals without the use of the global catalog.
1997      PRs 26538, 40268, and 42557 [Paul J. Reder]
1998
1999   *) ApacheMonitor.exe: Introduce --kill argument for use by the
2000      installer.  This will permit the installation tool to remove
2001      all running instances before attempting to remove the .exe.
2002      [William Rowe]
2003
2004   *) mod_ssl: Add support for OCSP validation of client certificates.
2005      PR 41123.  [Marc Stern <marc.stern approach.be>, Joe Orton]
2006
2007   *) mod_serf: New module for Reverse Proxying. [Paul Querna]
2008
2009   *) core: Add the option to keep aside a request body up to a certain
2010      size that would otherwise be discarded, to be consumed by filters
2011      such as mod_include. When enabled for a directory, POST requests
2012      to shtml files can be passed through to embedded scripts as POST
2013      requests, rather being downgraded to GET requests. [Graham Leggett]
2014
2015   *) mod_ssl: Fix TLS upgrade (RFC 2817) support.  PR 41231.  [Joe Orton]
2016
2017   *) scoreboard: Correctly declare ap_time_process_request.
2018      PR 43789 [Tom Donovan <Tom.Donovan acm.org>]
2019
2020   *) core; scoreboard: ap_get_scoreboard_worker(sbh) now takes the sbh member
2021      from the connection rec, ap_get_scoreboard_worker(proc, thread) will now
2022      provide the unusual legacy lookup.  [William Rowe]
2023
2024   *) mpm winnt: fix null pointer dereference
2025      PR 42572 [Davi Arnaut]
2026
2027   *) mod_authnz_ldap, mod_authn_dbd: Tidy up the code to expose authn
2028      parameters to the environment. Improve portability to
2029      EBCDIC machines by using apr_toupper(). [Martin Kraemer]
2030
2031   *) mod_ldap, mod_authnz_ldap: Add support for nested groups (i.e. the ability
2032      to authorize an authenticated user via a "require ldap-group X" directive
2033      where the user is not in group X, but is in a subgroup contained in X.
2034      PR 42891 [Paul J. Reder]
2035
2036   *) mod_ssl: Add support for caching SSL Sessions in memcached. [Paul Querna]
2037
2038   *) apxs: Enhance -q flag to print all known variables and their values
2039      when invoked without variable name(s).
2040      [William Rowe, Sander Temme]
2041
2042   *) apxs: Eliminate run-time check for mod_so.  PR 40653.
2043      [David M. Lee <dmlee crossroads.com>]
2044
2045   *) beos MPM: Create pmain pool and run modules' child_init hooks when
2046      entering ap_mpm_run(), then destroy pmain when exiting ap_mpm_run().
2047      [Chris Darroch]
2048
2049   *) netware MPM: Destroy pmain pool when exiting ap_mpm_run() so that
2050      cleanups registered in modules' child_init hooks are performed.
2051      [Chris Darroch]
2052
2053   *) Fix issue which could cause error messages to be written to access logs
2054      on Win32.  PR 40476.  [Tom Donovan <Tom.Donovan acm.org>]
2055
2056   *) The LockFile directive, which specifies the location of
2057      the accept() mutex lockfile, is deprecated. Instead, the
2058      AcceptMutex directive now takes an optional lockfile
2059      location parameter, ala SSLMutex. [Jim Jagielski]
2060
2061   *) mod_authn_dbd: Export any additional columns queried in the SQL select
2062      into the environment with the name AUTHENTICATE_<COLUMN>. This brings
2063      mod_authn_dbd behaviour in line with mod_authnz_ldap. [Graham Leggett]
2064
2065   *) mod_dbd: Key the storage of prepared statements on the hex string
2066      value of server_rec, rather than the server name, as the server name
2067      may change (eg when the server name is set) at any time, causing
2068      weird behaviour in modules dependent on mod_dbd. [Graham Leggett]
2069
2070   *) mod_proxy_fcgi: Added win32 build. [Mladen Turk]
2071
2072   *) sendfile_nonblocking() takes the _brigade_ as an argument, gets
2073      the first bucket from the brigade, finds it not to be a FILE
2074      bucket and barfs. The fix is to pass a bucket rather than a brigade.
2075      [Niklas Edmundsson <nikke acc.umu.se>]
2076
2077   *) mod_rewrite: support rewritemap by SQL query [Nick Kew]
2078
2079   *) ap_get_server_version() has been removed.  Third-party modules must
2080      now use ap_get_server_banner() or ap_get_server_description().
2081      [Jeff Trawick]
2082
2083   *) All MPMs: Introduce a check_config phase between pre_config and
2084      open_logs, to allow modules to review interdependent configuration
2085      directive values and adjust them while messages can still be logged
2086      to the console.  Handle relevant MPM directives during this phase
2087      and format messages for both the console and the error log, as
2088      appropriate.  [Chris Darroch]
2089
2090   *) core: Do not allow internal redirects like the DirectoryIndex of mod_dir
2091      to circumvent the symbolic link checks imposed by FollowSymLinks and
2092      SymLinksIfOwnerMatch. [Nick Kew, Ruediger Pluem, William Rowe]
2093
2094   *) New SSLLogLevelDebugDump [ None (default) | IO (not bytes) | Bytes ]
2095      configures the I/O Dump of SSL traffic, when LogLevel is set to Debug.
2096      The default is none as this is far greater debugging resolution than
2097      the typical administrator is prepared to untangle.  [William Rowe]
2098
2099   *) mod_disk_cache: If possible, check if the size of an object to cache is
2100      within the configured boundaries before actually saving data.
2101      [Niklas Edmundsson <nikke acc.umu.se>]
2102
2103   *) Worker and event MPMs: Remove improper scoreboard updates which were
2104      performed in the event of a fork() failure.  [Chris Darroch]
2105
2106   *) Add support for fcgi:// proxies to mod_rewrite.
2107      [Markus Schiegl <ms schiegl.com>]
2108
2109   *) Remove incorrect comments from scoreboard.h regarding conditional
2110      loading of worker_score structure with mod_status, and remove unused
2111      definitions relating to old life_status field.
2112      [Chris Darroch <chrisd pearsoncmg.com>]
2113
2114   *) Remove allocation of memory for unused array of lb_score pointers
2115      in ap_init_scoreboard().  [Chris Darroch <chrisd pearsoncmg.com>]
2116
2117   *) Add mod_proxy_fcgi, a FastCGI back end for mod_proxy.
2118      [Garrett Rooney, Jim Jagielski, Paul Querna]
2119
2120   *) Event MPM: Fill in the scoreboard's tid field. PR 38736.
2121      [Chris Darroch <chrisd pearsoncmg.com>]
2122
2123   *) mod_charset_lite: Remove Content-Length when output filter can
2124      invalidate it.  Warn when input filter can invalidate it.
2125      [Jeff Trawick]
2126
2127   *) Authz: Add the new module mod_authn_core that will provide common
2128      authn directives such as 'AuthType', 'AuthName'.  Move the directives
2129      'AuthType' and 'AuthName' out of the core module and merge mod_authz_alias
2130      into mod_authn_core. [Brad Nicholes]
2131
2132   *) Authz: Move the directives 'Order', 'Allow', 'Deny' and 'Satisfy'
2133      into the new module mod_access_compat which can be loaded to provide
2134      support for these directives.
2135      [Brad Nicholes]
2136
2137   *) Authz: Move the 'Require' directive from the core module as well as
2138      add the directives '<SatisfyAll>', '<SatisfyOne>', '<RequireAlias>'
2139      and 'Reject' to mod_authz_core. The new directives introduce 'AND/OR'
2140      logic into the authorization processing. [Brad Nicholes]
2141
2142   *) Authz: Add the new module mod_authz_core which acts as the
2143      authorization provider vector and contains common authz
2144      directives. [Brad Nicholes]
2145
2146   *) Authz: Renamed mod_authz_dbm authz providers from 'group' and
2147      'file-group' to 'dbm-group' and 'dbm-file-group'. [Brad Nicholes]
2148
2149   *) Authz: Added the new authz providers 'env', 'ip', 'host', 'all' to handle
2150      host-based access control provided by mod_authz_host and invoked
2151      through the 'Require' directive. [Brad Nicholes]
2152
2153   *) Authz: Convert all of the authz modules from hook based to
2154      provider based. [Brad Nicholes]
2155
2156   *) mod_cache: Add CacheMinExpire directive to set the minimum time in
2157      seconds to cache a document.
2158      [Brian Akins <brian.akins turner.com>, Ruediger Pluem]
2159
2160   *) mod_authz_dbd: SQL authz with Login/Session support [Nick Kew]
2161
2162   *) Fix typo in ProxyStatus syntax error message.
2163      [Christophe Jaillet <christophe.jaillet wanadoo.fr>]
2164
2165   *) Asynchronous write completion for the Event MPM.  [Brian Pane]
2166
2167   *) Added an End-Of-Request bucket type.  The logging of a request and
2168      the freeing of its pool are now done when the EOR bucket is destroyed.
2169      This has the effect of delaying the logging until right after the last
2170      of the response is sent; ap_core_output_filter() calls the access logger
2171      indirectly when it destroys the EOR bucket.  [Brian Pane]
2172
2173   *) Rewrite of logresolve support utility: IPv6 addresses are now supported
2174      and the format of statistical output has changed. [Colm MacCarthaigh]
2175
2176   *) Rewrite of ap_coreoutput_filter to do nonblocking writes  [Brian Pane]
2177
2178   *) Added new connection states for handler and write completion
2179      [Brian Pane]
2180
2181   *) mod_cgid: Refuse to work on Solaris 10 due to OS bugs.  PR 34264.
2182      [Justin Erenkrantz]
2183
2184   *) Teach mod_ssl to use arbitrary OIDs in an SSLRequire directive,
2185      allowing string-valued client certificate attributes to be used for
2186      access control, as in: SSLRequire "value" in OID("1.3.6.1.4.1.18060.1")
2187      [Martin Kraemer, David Reid]
2188
2189   [Apache 2.3.0-dev includes those bug fixes and changes with the
2190    Apache 2.2.xx tree as documented, and except as noted, below.]
2191
2192 Changes with Apache 2.2.x and later:
2193
2194   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup
2195
2196 Changes with Apache 2.0.x and later:
2197
2198   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup
2199