]> granicus.if.org Git - apache/blob - CHANGES
Merge r1646282 from trunk:
[apache] / CHANGES
1                                                          -*- coding: utf-8 -*-
2
3 Changes with Apache 2.4.13
4
5   *) SECURITY: CVE-2015-0253 (cve.mitre.org)
6      core: Fix a crash with ErrorDocument 400 pointing to a local URL-path 
7      with the INCLUDES filter active, introduced in 2.4.11. PR 57531. 
8      [Yann Ylavic]
9
10   *) SECURITY: CVE-2015-0228 (cve.mitre.org)
11      mod_lua: A maliciously crafted websockets PING after a script
12      calls r:wsupgrade() can cause a child process crash. 
13      [Edward Lu <Chaosed0 gmail.com>]
14
15   *) mod_http: Fix incorrect If-Match handling. PR 57358
16      [Kunihiko Sakamoto <ksakamoto google.com>]
17
18   *) ssl: Add a warning if protocol given in SSLProtocol or SSLProxyProtocol
19      will override other parameters given in the same directive. This could be
20      a missing + or - prefix.  PR 52820 [Christophe Jaillet]
21
22   *) mod_proxy: Use the correct server name for SNI in case the backend
23      SSL connection itself is established via a proxy server.
24      PR 57139 [Szabolcs Gyurko <szabolcs gyurko.org>]
25
26   *) mod_ssl: Fix possible crash when loading server certificate constraints.
27      PR 57694. [Paul Spangler <paul.spangler ni com>, Yann Ylavic]
28
29   *) build: Don't load mod_cgi and mod_cgid in the default configuration
30      if they're both built.  [olli hauer <ohauer gmx.de>]
31
32   *) mod_logio: Add LogIOTrackTTFB and %^FB logformat to log the time 
33      taken to start writing response headers. [Eric Covener]
34
35   *) mod_ssl: Avoid compilation errors with LibreSSL related to
36      the use of ENGINE_CTRL_CHIL_SET_FORKCHECK. 
37      [Stuart Henderson <sthen openbsd.org>]
38
39   *) mod_proxy_http: Use the "Connection: close" header for requests to
40      backends not recycling connections (disablereuse), including the default
41      reverse and forward proxies.  [Yann Ylavic]
42
43   *) mod_proxy: Add ap_connection_reusable() for checking if a connection
44      is reusable as of this point in processing.  [Jeff Trawick]
45
46   *) mod_proxy_wstunnel: Avoid an empty response by failing with 502 (Bad
47      Gateway) when no response is ever received from the backend.
48      [Jan Kaluza]
49
50   *) core_filters: Restore/disable TCP_NOPUSH option after non-blocking
51      sendfile.  [Yann Ylavic]
52
53   *) core: Initialize scoreboard's used optional functions on graceful restarts
54      to avoid a crash when relocation occurs.  PR 57177.  [Yann Ylavic]
55
56   *) mod_dav: Avoid a potential integer underflow in the lock timeout value sent
57      back to a client. The answer to a LOCK request could be an extremly large
58      integer if the time needed to lock the resource was longer that the
59      requested timeout given in the LOCK request. In such a case, we now answer
60      "Second-0".  PR55420
61      [Christophe Jaillet]
62
63   *) mod_cgid: Within the first minute of a server start or restart, 
64      allow mod_cgid to retry connecting to its daemon process. Previously,
65      'No such file or directory: unable to connect to cgi daemon...' could
66      be logged without an actual retry. PR57685. 
67      [Edward Lu <Chaosed0 gmail.com>]
68      
69   *) mod_proxy: Use the original (non absolute) form of the request-line's URI
70      for requests embedded in CONNECT payloads used to connect SSL backends via
71      a ProxyRemote forward-proxy.  PR 55892.  [Hendrik Harms <hendrik.harms
72      gmail com>, William Rowe, Yann Ylavic]
73
74   *) mod_proxy_connect/wstunnel: If both client and backend sides get readable
75      at the same time, don't lose errors occuring while forwarding on the first
76      side when none occurs next on the other side, and abort.  [Yann Ylavic]
77
78   *) mod_rewrite: Improve relative substitutions in per-directory/htaccess
79      context for directories found by mod_userdir and mod_alias.  These no
80      longer require RewriteBase to be specified. [Eric Covener]
81
82   *) mod_proxy_http: Don't expect the backend to ack the "Connection: close" to
83      finally close those not meant to be kept alive by SetEnv proxy-nokeepalive
84      or force-proxy-request-1.0.  [Yann Ylavic]
85
86   *) core: If explicitly configured, use the KeepaliveTimeout value of the
87      virtual host which handled the latest request on the connection, or by
88      default the one of the first virtual host bound to the same IP:port.
89      PR56226.  [Yann Ylavic]
90
91   *) mod_lua: After a r:wsupgrade(), mod_lua was not properly
92      responding to a websockets PING but instead invoking the specified 
93      script. PR57524. [Edward Lu <Chaosed0 gmail.com>]
94
95   *) mod_ssl: Add the SSL_CLIENT_CERT_RFC4523_CEA variable, which provides
96      a combination of certificate serialNumber and issuer as defined by
97      CertificateExactMatch in RFC4523. [Graham Leggett]
98
99   *) core: Add expression support to ErrorDocument. Switch from a fixed
100      sized 664 byte array per merge to a hash table. [Graham Leggett]
101
102   *) ab: Add missing longest request (100%) to CSV export.
103      [Marcin Fabrykowski <bugzilla fabrykowski.pl>] 
104
105   *) mod_macro: Clear macros before initialization to avoid use-after-free
106      on startup or restart when the module is linked statically. PR 57525
107      [apache.org tech.futurequest.net, Yann Ylavic]
108
109   *) mod_alias: Introduce expression parser support for Alias, ScriptAlias
110      and Redirect. [Graham Leggett]
111
112   *) mod_ssl: 'SSLProtocol ALL' was being ignored in virtual host context. 
113      PR 57100.  [Michael Kaufmann <apache-bugzilla michael-kaufmann.ch>,
114      Yann Ylavic]
115
116   *) mpm_event: Avoid access to the scoreboard from the connection while
117      it is suspended (waiting for events).  [Eric Covener, Jeff Trawick]
118
119   *) mod_ssl: Fix renegotiation failures redirected to an ErrorDocument.
120      PR 57334.  [Yann Ylavic].
121
122   *) mod_deflate: A misplaced check prevents limiting small bodies with the
123      new inflate limits. PR56872. [Edward Lu, Eric Covener, Yann Ylavic]
124
125   *) mod_proxy_ajp: Forward SSL protocol name (SSLv3, TLSv1.1 etc.) as a
126      request attribute to the backend. Recent Tomcat versions will extract
127      it and provide it as a servlet request attribute named
128      "org.apache.tomcat.util.net.secure_protocol_version". [Rainer Jung]
129
130   *) core: Optimize string concatenation in expression parser when evaluating
131      a string expression. [Rainer Jung]
132
133   *) acinclude.m4: Generate #LoadModule directive in default httpd.conf for
134      every --enable-mpms-shared. PR 53882.  [olli hauer <ohauer gmx.de>,
135      Yann Ylavic]
136
137   *) mod_authn_dbd: Fix the error message logged in case of error while querying
138      the database. This is associated to AH01656 and AH01661. [Christophe Jaillet]
139
140   *) mod_authz_groupfile: Reduce the severity of AH01667 from ERROR to DEBUG,
141      because it may be evaluated inside <RequireAny>. PR55523. [Eric Covener] 
142   
143 Changes with Apache 2.4.12
144
145   *) mpm_winnt: Accept utf-8 (Unicode) service names and descriptions for
146      internationalization.  [William Rowe]
147
148   *) mpm_winnt: Normalize the error and status messages emitted by service.c,
149      the service control interface for Windows.  [William Rowe]
150
151   *) configure: Fix --enable-v4-mapped configuration on *BSD. PR 53824.
152      [ olli hauer <ohauer gmx.de>, Yann Ylavic ]
153
154   *) Reverted <DirectoryMatch > behavior regression introduced in 2.4.11
155      (not released).
156
157 Changes with Apache 2.4.11
158   
159   *) SECURITY: CVE-2014-3583 (cve.mitre.org)
160      mod_proxy_fcgi: Fix a potential crash due to buffer over-read, with 
161      response headers' size above 8K.  [Yann Ylavic, Jeff Trawick]
162
163   *) SECURITY: CVE-2014-3581 (cve.mitre.org)
164      mod_cache: Avoid a crash when Content-Type has an empty value.
165      PR 56924.  [Mark Montague <mark catseye.org>, Jan Kaluza]
166
167   *) SECURITY: CVE-2014-8109 (cve.mitre.org)
168      mod_lua: Fix handling of the Require line when a LuaAuthzProvider is
169      used in multiple Require directives with different arguments.
170      PR57204 [Edward Lu <Chaosed0 gmail.com>]
171
172   *) SECURITY: CVE-2013-5704 (cve.mitre.org)
173      core: HTTP trailers could be used to replace HTTP headers
174      late during request processing, potentially undoing or
175      otherwise confusing modules that examined or modified
176      request headers earlier.  Adds "MergeTrailers" directive to restore
177      legacy behavior.  [Edward Lu, Yann Ylavic, Joe Orton, Eric Covener]
178
179   *) mod_buffer: Forward flushed input data immediately and avoid (unlikely)
180      access to freed memory. [Yann Ylavic, Christophe Jaillet]
181
182   *) core: Add CGIPassAuth directive to control whether HTTP authorization
183      headers are passed to scripts as CGI variables.  PR 56855.  [Jeff 
184      Trawick]
185
186   *) mod_ssl: New directive SSLSessionTickets (On|Off).
187      The directive controls the use of TLS session tickets (RFC 5077),
188      default value is "On" (unchanged behavior).
189      Session ticket creation uses a random key created during web
190      server startup and recreated during restarts. No other key
191      recreation mechanism is available currently. Therefore using session
192      tickets without restarting the web server with an appropriate frequency
193      (e.g. daily) compromises perfect forward secrecy. [Rainer Jung]
194
195   *) mod_proxy_fcgi: Provide some basic alternate options for specifying 
196      how PATH_INFO is passed to FastCGI backends by adding significance to
197      the value of proxy-fcgi-pathinfo. PR 55329. [Eric Covener]
198  
199   *) mod_proxy_fcgi: Enable UDS backends configured with SetHandler/RewriteRule
200      to opt-in to connection reuse and other Proxy options via explicitly
201      declared "proxy workers" (<Proxy unix:... enablereuse=on max=...)
202      [Eric Covener]
203
204   *) mod_proxy: Add "enablereuse" option as the inverse of "disablereuse".
205      [Eric Covener]
206
207   *) mod_proxy_fcgi: Enable opt-in to TCP connection reuse by explicitly
208      setting proxy option disablereuse=off. [Eric Covener] PR 57378.
209
210   *) event: Update the internal "connection id" when requests
211      move from thread to thread. Reuse can confuse modules like
212      mod_cgid. PR 57435. [Michael Thorpe <mike gistnet.com>]
213
214   *) mod_proxy_fcgi: Remove proxy:balancer:// prefix from SCRIPT_FILENAME
215      passed to fastcgi backends. [Eric Covener]
216
217   *) core: Configuration files with long lines and continuation characters
218      are not read properly. PR 55910. [Manuel Mausz <manuel-as mausz.at>]
219
220   *) mod_include: the 'env' function was incorrectly handled as 'getenv' if the
221      leading 'e' was written in upper case in <!--#if expr="..." -->
222      statements. [Christophe Jaillet]
223
224   *) split-logfile: Fix perl error:  'Can't use string ("example.org:80") 
225      as a symbol ref while "strict refs"'. PR 56329.
226      [Holger Mauermann <mauermann gmail.com>]
227
228   *) mod_proxy: Prevent ProxyPassReverse from doing a substitution when
229      the URL parameter interpolates to an empty string. PR 56603.
230      [<ajprout hotmail.com>]
231
232   *) core: Fix -D[efined] or <Define>[d] variables lifetime accross restarts. 
233      PR 57328.  [Armin Abfalterer <a.abfalterer gmail.com>, Yann Ylavic].
234
235   *) mod_proxy: Preserve original request headers even if they differ
236      from the ones to be forwarded to the backend. PR 45387.
237      [Yann Ylavic]
238
239   *) mod_ssl: dump SSL IO/state for the write side of the connection(s),
240      like reads (level TRACE4). [Yann Ylavic]
241
242   *) mod_proxy_fcgi: Ignore body data from backend for 304 responses. PR 57198.
243      [Jan Kaluza]
244
245   *) mod_ssl: Do not crash when looking up SSL related variables during
246      expression evaluation on non SSL connections. PR 57070  [Ruediger Pluem]
247
248   *) mod_proxy_ajp: Fix handling of the default port (8009) in the
249      ProxyPass and <Proxy> configurations.  PR 57259.  [Yann Ylavic]
250
251   *) mpm_event: Avoid a possible use after free when notifying the end of
252      connection during lingering close.  PR 57268.  [Eric Covener, Yann Ylavic]
253
254   *) mod_ssl: Fix recognition of OCSP stapling responses that are encoded
255      improperly or too large.  [Jeff Trawick]
256
257   *) core: Add ap_log_data(), ap_log_rdata(), etc. for logging buffers.
258      [Jeff Trawick]
259
260   *) mod_proxy_fcgi, mod_authnz_fcgi: stop reading the response and issue an
261      error when parsing or forwarding the response fails. [Yann Ylavic]
262
263   *) mod_ssl: Fix a memory leak in case of graceful restarts with OpenSSL >= 0.9.8e
264      PR 53435 [tadanori <tadanori2007 yahoo.com>, Sebastian Wiedenroth <wiedi frubar.net>]
265
266   *) mod_proxy_connect: Don't issue AH02447 on sockets hangups, let the read
267      determine whether it is a normal close or a real error. PR 57168. [Yann
268      Ylavic]
269
270   *) mod_proxy_wstunnel: abort backend connection on polling error to avoid
271      further processing.  [Yann Ylavic]
272
273   *) core: Support custom ErrorDocuments for HTTP 501 and 414 status codes.
274      PR 57167 [Edward Lu <Chaosed0 gmail.com>]
275
276   *) mod_proxy_connect: Fix ProxyRemote to https:// backends on EBCDIC 
277      systems. PR 57092 [Edward Lu <Chaosed0 gmail.com>]
278
279   *) mod_cache: Avoid a 304 response to an unconditional requst when an AH00752
280      CacheLock error occurs during cache revalidation. [Eric Covener]
281  
282   *) mod_ssl: Move OCSP stapling information from a per-certificate store to
283      a per-server hash. PR 54357, PR 56919. [Alex Bligh <alex alex.org.uk>,
284      Yann Ylavic, Kaspar Brand]
285
286   *) mod_cache_socache: Change average object size hint from 32 bytes to
287      2048 bytes.  [Rainer Jung]
288
289   *) mod_cache_socache: Add cache status to server-status.  [Rainer Jung]
290
291   *) event: Fix worker-listener deadlock in graceful restart.
292      PR 56960.
293
294   *) Concat strings at compile time when possible. PR 53741.
295
296   *) mod_substitute: Restrict configuration in .htaccess to
297      FileInfo as documented.  [Rainer Jung]
298
299   *) mod_substitute: Make maximum line length configurable.  [Rainer Jung]
300
301   *) mod_substitute: Fix line length limitation in case of regexp plus flatten.
302      [Rainer Jung]
303   
304   *) mod_proxy: Truncated character worker names are no longer fatal
305      errors. PR53218. [Jim Jagielski]
306
307   *) mod_dav: Set r->status_line in dav_error_response. PR 55426.
308
309   *) mod_proxy_http, mod_cache: Avoid (unlikely) accesses to freed memory.
310      [Yann Ylavic, Christophe Jaillet]
311
312   *) http_protocol: fix logic in ap_method_list_(add|remove) in order:
313        - to correctly reset bits
314        - not to modify the 'method_mask' bitfield unnecessarily
315      [Christophe Jaillet]
316
317   *) mod_slotmem_shm: Increase log level for some originally debug messages.
318      [Jim Jagielski]
319
320   *) mod_ldap: In 2.4.10, some LDAP searches or comparisons might be done with
321      the wrong credentials when a backend connection is reused.
322      [Eric Covener]
323
324   *) mod_macro: Add missing APLOGNO for some Warning log messages.
325      [Christophe Jaillet]
326
327   *) mod_cache: Avoid sending 304 responses during failed revalidations
328      PR56881. [Eric Covener]
329
330   *) mod_status: Honor client IP address using mod_remoteip. PR 55886.
331      [Jim Jagielski]
332
333   *) cmake-based build for Windows: Fix incompatibility with cmake 2.8.12
334      and later.  PR 56615.  [Chuck Liu <cliu81 gmail.com>, Jeff Trawick]
335
336   *) mod_ratelimit: Drop severity of AH01455 and AH01457 (ap_pass_brigade
337      failed) messages from ERROR to TRACE1.  Other filters do not bother 
338      re-reporting failures from lower level filters.  PR56832.  [Eric Covener]
339
340   *) core: Avoid useless warning message when parsing a section guarded by
341      <IfDefine foo> if $(foo) is used within the section.
342      PR 56503 [Christophe Jaillet]
343
344   *) mod_proxy_fcgi: Fix faulty logging of large amounts of stderr from the
345      application.  PR 56858.  [Manuel Mausz <manuel-asf mausz.at>]
346
347   *) mod_proxy_http: Proxy responses with error status and
348      "ProxyErrorOverride On" hang until proxy timeout.
349      PR53420 [Rainer Jung]
350
351   *) mod_log_config: Allow three character log formats to be registered. For
352      backwards compatibility, the first character of a three-character format
353      must be the '^' (caret) character.  [Eric Covener]
354
355   *) mod_lua: Don't quote Expires and Path values. PR 56734.
356      [Keith Mashinter, <kmashint yahoo com>]
357
358   *) mod_authz_core: Allow <AuthzProviderAlias>'es to be seen from auth
359      stanzas under virtual hosts. PR 56870. [Eric Covener]
360
361 Changes with Apache 2.4.10
362
363   *) SECURITY: CVE-2014-0117 (cve.mitre.org)
364      mod_proxy: Fix crash in Connection header handling which allowed a denial
365      of service attack against a reverse proxy with a threaded MPM.
366      [Ben Reser]
367
368   *) SECURITY: CVE-2014-3523 (cve.mitre.org)
369      Fix a memory consumption denial of service in the WinNT MPM, used in all
370      Windows installations. Workaround: AcceptFilter <protocol> {none|connect}
371      [Jeff Trawick]
372
373   *) SECURITY: CVE-2014-0226 (cve.mitre.org)
374      Fix a race condition in scoreboard handling, which could lead to
375      a heap buffer overflow.  [Joe Orton, Eric Covener]
376
377   *) SECURITY: CVE-2014-0118 (cve.mitre.org)
378      mod_deflate: The DEFLATE input filter (inflates request bodies) now
379      limits the length and compression ratio of inflated request bodies to
380      avoid denial of service via highly compressed bodies.  See directives
381      DeflateInflateLimitRequestBody, DeflateInflateRatioLimit,
382      and DeflateInflateRatioBurst. [Yann Ylavic, Eric Covener]
383
384   *) SECURITY: CVE-2014-0231 (cve.mitre.org)
385      mod_cgid: Fix a denial of service against CGI scripts that do
386      not consume stdin that could lead to lingering HTTPD child processes
387      filling up the scoreboard and eventually hanging the server.  By
388      default, the client I/O timeout (Timeout directive) now applies to
389      communication with scripts.  The CGIDScriptTimeout directive can be
390      used to set a different timeout for communication with scripts.
391      [Rainer Jung, Eric Covener, Yann Ylavic]
392
393   *) mod_ssl: Extend the scope of SSLSessionCacheTimeout to sessions
394      resumed by TLS session resumption (RFC 5077). [Rainer Jung]
395
396   *) mod_deflate: Don't fail when flushing inflated data to the user-agent
397      and that coincides with the end of stream ("Zlib error flushing inflate
398      buffer"). PR 56196. [Christoph Fausak <christoph fausak glueckkanja.com>]
399
400   *) mod_proxy_ajp: Forward local IP address as a custom request attribute
401      like we already do for the remote port. [Rainer Jung]
402
403   *) core: Include any error notes set by modules in the canned error
404      response for 403 errors.  [Jeff Trawick]
405
406   *) mod_ssl: Set an error note for requests rejected due to
407      SSLStrictSNIVHostCheck.  [Jeff Trawick]
408
409   *) mod_ssl: Fix issue with redirects to error documents when handling
410      SNI errors.  [Jeff Trawick]
411
412   *) mod_ssl: Fix tmp DH parameter leak, adjust selection to prefer
413      larger keys and support up to 8192-bit keys.  [Ruediger Pluem,
414      Joe Orton]
415
416   *) mod_dav: Fix improper encoding in PROPFIND responses.  PR 56480.
417      [Ben Reser]
418
419   *) WinNT MPM: Improve error handling for termination events in child.
420      [Jeff Trawick]
421
422   *) mod_proxy: When ping/pong is configured for a worker, don't send or
423      forward "100 Continue" (interim) response to the client if it does
424      not expect one. [Yann Ylavic]
425
426   *) mod_ldap: Be more conservative with the last-used time for
427      LDAPConnectionPoolTTL. PR54587 [Eric Covener]
428
429   *) mod_ldap: LDAP connections used for authn were not respecting
430      LDAPConnectionPoolTTL. PR54587 [Eric Covener]
431
432   *) mod_proxy_fcgi: Fix occasional high CPU when handling request bodies.
433      [Jeff Trawick]
434
435   *) event MPM: Fix possible crashes (third-party modules accessing c->sbh) 
436      or occasional missed mod_status updates under load. PR 56639.
437      [Edward Lu <Chaosed0 gmail com>]
438
439   *) mod_authnz_ldap: Support primitive LDAP servers do not accept
440      filters, such as "SDBM-backed LDAP" on z/OS, by allowing a special
441      filter "none" to be specified in AuthLDAPURL. [Eric Covener]
442
443   *) mod_deflate: Fix inflation of files larger than 4GB. PR 56062.
444      [Lukas Bezdicka <social v3.sk>]
445
446   *) mod_deflate: Handle Zlib header and validation bytes received in multiple
447      chunks. PR 46146. [Yann Ylavic]
448
449   *) mod_proxy: Allow reverse-proxy to be set via explicit handler.
450      [ryo takatsuki <ryotakatsuki gmail com>]
451
452   *) ab: support custom HTTP method with -m argument. PR 56604.
453      [Roman Jurkov <winfinit gmail.com>]
454
455   *) mod_proxy_balancer: Correctly encode user provided data in management
456      interface. PR 56532 [Maksymilian, <max cert.cx>]
457
458   *) mod_proxy: Don't limit the size of the connectable Unix Domain Socket
459      paths. [Graham Dumpleton, Christophe Jaillet, Yann Ylavic]
460
461   *) mod_proxy_fcgi: Support iobuffersize parameter.  [Jeff Trawick]
462
463   *) event: Send the SSL close notify alert when the KeepAliveTimeout
464      expires. PR54998. [Yann Ylavic] 
465
466   *) mod_ssl: Ensure that the SSL close notify alert is flushed to the client.
467      PR54998. [Tim Kosse <tim.kosse filezilla-project.org>, Yann Ylavic] 
468
469   *) mod_proxy: Shutdown (eg. SSL close notify) the backend connection before
470      closing. [Yann Ylavic] 
471
472   *) mod_auth_form: Add a debug message when the fields on a form are not
473      recognised. [Graham Leggett]
474
475   *) mod_cache: Preserve non-cacheable headers forwarded from an origin 304
476      response. PR 55547.  [Yann Ylavic]
477
478   *) mod_proxy_wstunnel: Fix the use of SSL connections with the "wss:"
479      scheme. PR55320. [Alex Liu <alex.leo.ca gmail.com>]
480
481   *) mod_socache_shmcb: Correct counting of expirations for status display.
482      Expirations happening during retrieval were not counted. [Rainer Jung]
483
484   *) mod_cache: Retry unconditional request with the full URL (including the
485      query-string) when the origin server's 304 response does not match the
486      conditions used to revalidate the stale entry.  [Yann Ylavic].
487
488   *) mod_alias: Stop setting CONTEXT_PREFIX and CONTEXT_DOCUMENT environment
489      variables as a result of AliasMatch. [Eric Covener]
490  
491   *) mod_cache: Don't add cached/revalidated entity headers to a 304 response.
492      PR 55547.  [Yann Ylavic]
493
494   *) mod_proxy_scgi: Support Unix sockets.  ap_proxy_port_of_scheme():
495      Support default SCGI port (4000).  [Jeff Trawick]
496
497   *) mod_cache: Fix AH00784 errors on Windows when the the CacheLock directive
498      is enabled.  [Eric Covener]
499
500   *) mod_expires: don't add Expires header to error responses (4xx/5xx),
501      be they generated or forwarded. PR 55669.  [Yann Ylavic]
502
503   *) mod_proxy_fcgi: Don't segfault when failing to connect to the backend.
504      (regression in 2.4.9 release) [Jeff Trawick]
505
506   *) mod_authn_socache: Fix crash at startup in certain configurations.
507      PR 56371. (regression in 2.4.7) [Jan Kaluza]
508
509   *) mod_ssl: restore argument structure for "exec"-type SSLPassPhraseDialog
510      programs to the form used in releases up to 2.4.7, and emulate
511      a backwards-compatible behavior for existing setups. [Kaspar Brand]
512
513   *) mod_ssl: Add SSLOCSPUseRequestNonce directive to control whether or not
514      OCSP requests should use a nonce to be checked against the responder's
515      one. PR 56233. [Yann Ylavic, Kaspar Brand]
516
517   *) mod_ssl: "SSLEngine off" will now override a Listen-based default
518      and does disable mod_ssl for the vhost.  [Joe Orton]
519
520   *) mod_lua: Enforce the max post size allowed via r:parsebody()
521      [Daniel Gruno]
522
523   *) mod_lua: Use binary comparison to find boundaries for multipart 
524      objects, as to not terminate our search prematurely when hitting
525      a NULL byte. [Daniel Gruno]
526
527   *) mod_ssl: add workaround for SSLCertificateFile when using OpenSSL
528      versions before 0.9.8h and not specifying an SSLCertificateChainFile
529      (regression introduced with 2.4.8). PR 56410. [Kaspar Brand]
530
531   *) mod_ssl: bring SNI behavior into better conformance with RFC 6066:
532      no longer send warning-level unrecognized_name(112) alerts,
533      and limit startup warnings to cases where an OpenSSL version
534      without TLS extension support is used. PR 56241. [Kaspar Brand]
535
536   *) mod_proxy_html: Avoid some possible memory access violation in case of
537      specially crafted files, when the ProxyHTMLMeta directive is turned on.
538      Follow up of PR 56287 [Christophe Jaillet]
539
540   *) mod_auth_form: Make sure the optional functions are loaded even when
541      the AuthFormProvider isn't specified. [Graham Leggett]
542
543   *) mod_ssl: avoid processing bogus SSLCertificateKeyFile values
544      (and logging garbled file names). PR 56306. [Kaspar Brand]
545
546   *) mod_ssl: fix merging of global and vhost-level settings with the
547      SSLCertificateFile, SSLCertificateKeyFile, and SSLOpenSSLConfCmd
548      directives. PR 56353. [Kaspar Brand]
549
550   *) mod_headers: Allow the "value" parameter of Header and RequestHeader to 
551      contain an ap_expr expression if prefixed with "expr=". [Eric Covener]
552
553   *) rotatelogs: Avoid creation of zombie processes when -p is used on
554      Unix platforms.  [Joe Orton]
555
556   *) mod_authnz_fcgi: New module to enable FastCGI authorizer
557      applications to authenticate and/or authorize clients.
558      [Jeff Trawick]
559
560   *) mod_proxy: Do not try to parse the regular expressions passed by
561      ProxyPassMatch as URL as they do not follow their syntax.
562      PR 56074. [Ruediger Pluem]
563
564   *) mod_reqtimeout: Resolve unexpected timeouts on keepalive requests 
565      under the Event MPM. PR56216.  [Frank Meier <frank meier ergon ch>]
566
567   *) mod_proxy_fcgi: Fix sending of response without some HTTP headers
568      that might be set by filters.  PR 55558. [Jim Riggs <jim riggs.me>]
569
570   *) mod_proxy_html: Do not delete the wrong data from HTML code when a
571      "http-equiv" meta tag specifies a Content-Type behind any other
572      "http-equiv" meta tag. PR 56287 [Micha Lenk <micha lenk info>]
573
574   *) mod_proxy: Don't reuse a SSL backend connection whose requested SNI
575      differs. PR 55782.  [Yann Ylavic]
576
577   *) Add suspend_connection and resume_connection hooks to notify modules
578      when the thread/connection relationship changes.  (Should be implemented
579      for any third-party async MPMs.)  [Jeff Trawick]
580
581   *) mod_proxy_wstunnel: Don't issue AH02447 and log a 500 on routine 
582      hangups from websockets origin servers. PR 56299
583      [Yann Ylavic, Edward Lu <Chaosed0 gmail com>, Eric Covener] 
584
585   *) mod_proxy_wstunnel: Don't pool backend websockets connections,
586      because we need to handshake every time. PR 55890.
587      [Eric Covener]
588
589   *) mod_lua: Redesign how request record table access behaves,
590      in order to utilize the request record from within these tables.
591      [Daniel Gruno]
592
593   *) mod_lua: Add r:wspeek for peeking at WebSocket frames. [Daniel Gruno]
594  
595   *) mod_lua: Log an error when the initial parsing of a Lua file fails.
596      [Daniel Gruno, Felipe Daragon <filipe syhunt com>]
597
598   *) mod_lua: Reformat and escape script error output.
599      [Daniel Gruno, Felipe Daragon <filipe syhunt com>]
600
601   *) mod_lua: URL-escape cookie keys/values to prevent tainted cookie data
602      from causing response splitting.
603      [Daniel Gruno, Felipe Daragon <filipe syhunt com>]
604
605   *) mod_lua: Disallow newlines in table values inside the request_rec, 
606      to prevent HTTP Response Splitting via tainted headers.
607      [Daniel Gruno, Felipe Daragon <filipe syhunt com>]
608
609   *) mod_lua: Remove the non-working early/late arguments for 
610      LuaHookCheckUserID. [Daniel Gruno]
611
612   *) mod_lua: Change IVM storage to use shm [Daniel Gruno]
613
614   *) mod_lua: More verbose error logging when a handler function cannot be
615      found. [Daniel Gruno]
616
617 Changes with Apache 2.4.9
618
619   *) mod_ssl: Work around a bug in some older versions of OpenSSL that
620      would cause a crash in SSL_get_certificate for servers where the
621      certificate hadn't been sent. [Stephen Henson]
622
623   *) mod_lua: Add a fixups hook that checks if the original request is intended 
624      for LuaMapHandler. This fixes a bug where FallbackResource invalidates the 
625      LuaMapHandler directive in certain cases by changing the URI before the map 
626      handler code executes [Daniel Gruno, Daniel Ferradal <dferradal gmail com>].
627
628 Changes with Apache 2.4.8
629
630   *) SECURITY: CVE-2014-0098 (cve.mitre.org)
631      Clean up cookie logging with fewer redundant string parsing passes.
632      Log only cookies with a value assignment. Prevents segfaults when
633      logging truncated cookies.
634      [William Rowe, Ruediger Pluem, Jim Jagielski]
635
636   *) SECURITY: CVE-2013-6438 (cve.mitre.org)
637      mod_dav: Keep track of length of cdata properly when removing
638      leading spaces. Eliminates a potential denial of service from
639      specifically crafted DAV WRITE requests
640      [Amin Tora <Amin.Tora neustar.biz>]
641
642   *) core: Support named groups and backreferences within the LocationMatch,
643      DirectoryMatch, FilesMatch and ProxyMatch directives. (Requires
644      non-ancient PCRE library) [Graham Leggett]
645
646   *) core: draft-ietf-httpbis-p1-messaging-23 corrections regarding
647      TE/CL conflicts. [Yann Ylavic, Jim Jagielski]
648
649   *) core: Detect incomplete request and response bodies, log an error and
650      forward it to the underlying filters. PR 55475 [Yann Ylavic]
651
652   *) mod_dir: Add DirectoryCheckHandler to allow a 2.2-like behavior, skipping 
653      execution when a handler is already set. PR53929. [Eric Covener]
654
655   *) mod_ssl: Do not perform SNI / Host header comparison in case of a
656      forward proxy request. [Ruediger Pluem]
657
658   *) mod_ssl: Remove the hardcoded algorithm-type dependency for the
659      SSLCertificateFile and SSLCertificateKeyFile directives, to enable
660      future algorithm agility, and deprecate the SSLCertificateChainFile
661      directive (obsoleted by SSLCertificateFile). [Kaspar Brand]
662
663   *) mod_rewrite: Add RewriteOptions InheritDown, InheritDownBefore, 
664      and IgnoreInherit to allow RewriteRules to be pushed from parent scopes
665      to child scopes without explicitly configuring each child scope.
666      PR56153.  [Edward Lu <Chaosed0 gmail com>] 
667
668   *) prefork: Fix long delays when doing a graceful restart.
669      PR 54852 [Jim Jagielski, Arkadiusz Miskiewicz <arekm maven pl>]
670
671   *) FreeBSD: Disable IPv4-mapped listening sockets by default for versions
672      5+ instead of just for FreeBSD 5. PR 53824. [Jeff Trawick]
673
674   *) mod_proxy_wstunnel: Avoid busy loop on client errors, drop message
675      IDs 02445, 02446, and 02448 to TRACE1 from DEBUG. PR 56145.
676      [Joffroy Christen <joffroy.christen solvaxis com>, Eric Covener]
677
678   *) mod_remoteip: Correct the trusted proxy match test. PR 54651.
679      [Yoshinori Ehara <yoshinori ehara gmail com>, Eugene L <eugenel amazon com>]
680
681   *) mod_proxy_fcgi: Fix error message when an unexpected protocol version
682      number is received from the application.  PR 56110.  [Jeff Trawick]
683
684   *) mod_remoteip: Use the correct IP addresses to populate the proxy_ips field.
685      PR 55972. [Mike Rumph]
686
687   *) mod_lua: Update r:setcookie() to accept a table of options and add domain,
688      path and httponly to the list of options available to set.
689      PR 56128 [Edward Lu <Chaosed0 gmail com>, Daniel Gruno]
690      
691   *) mod_lua: Fix r:setcookie() to add, rather than replace,
692      the Set-Cookie header. PR56105
693      [Kevin J Walters <kjw ms com>, Edward Lu <Chaosed0 gmail com>]
694
695   *) mod_lua: Allow for database results to be returned as a hash with 
696      row-name/value pairs instead of just row-number/value. [Daniel Gruno]
697
698   *) mod_rewrite: Add %{CONN_REMOTE_ADDR} as the non-useragent counterpart to
699      %{REMOTE_ADDR}. PR 56094. [Edward Lu <Chaosed0 gmail com>]
700
701   *) WinNT MPM: If ap_run_pre_connection() fails or sets c->aborted, don't
702      save the socket for reuse by the next worker as if it were an 
703      APR_SO_DISCONNECTED socket. Restores 2.2 behavior. [Eric Covener]
704
705   *) mod_dir: Don't search for a DirectoryIndex or DirectorySlash on a URL
706      that was just rewritten by mod_rewrite. PR53929. [Eric Covener]
707
708   *) mod_session: When we have a session we were unable to decode,
709      behave as if there was no session at all. [Thomas Eckert
710      <thomas.r.w.eckert gmail com>]
711
712   *) mod_session: Fix problems interpreting the SessionInclude and
713      SessionExclude configuration. PR 56038. [Erik Pearson
714      <erik adaptations.com>]
715
716   *) mod_authn_core: Allow <AuthnProviderAlias>'es to be seen from auth
717      stanzas under virtual hosts. PR 55622. [Eric Covener]
718
719   *) mod_proxy_fcgi: Use apr_socket_timeout_get instead of hard-coded
720      30 seconds timeout. [Jan Kaluza]
721
722   *) build: only search for modules (config*.m4) in known subdirectories, see
723      build/config-stubs. [Stefan Fritsch]
724
725   *) mod_cache_disk: Fix potential hangs on Windows when using mod_cache_disk. 
726      PR 55833. [Eric Covener]
727
728   *) mod_ssl: Add support for OpenSSL configuration commands by introducing
729      the SSLOpenSSLConfCmd directive. [Stephen Henson, Kaspar Brand]
730
731   *) mod_proxy: Remove (never documented) <Proxy ~ wildcard-url> syntax which
732      is equivalent to <ProxyMatch wildcard-url>. [Christophe Jaillet]
733
734   *) mod_authz_user, mod_authz_host, mod_authz_groupfile, mod_authz_dbm,
735      mod_authz_dbd, mod_authnz_ldap: Support the expression parser within the
736      require directives. [Graham Leggett]
737
738   *) mod_proxy_http: Core dumped under high load. PR 50335.
739      [Jan Kaluza <jkaluza redhat.com>]
740
741   *) mod_socache_shmcb.c: Remove arbitrary restriction on shared memory size
742      previously limited to 64MB. [Jens Låås <jelaas gmail.com>]
743
744   *) mod_lua: Use binary copy when dealing with uploads through r:parsebody() 
745      to prevent truncating files. [Daniel Gruno]
746
747 Changes with Apache 2.4.7
748
749   *) SECURITY: CVE-2013-4352 (cve.mitre.org)
750      mod_cache: Fix a NULL pointer deference which allowed untrusted
751      origin servers to crash mod_cache in a forward proxy
752      configuration.  [Graham Leggett]
753
754   *) APR 1.5.0 or later is now required for the event MPM.
755   
756   *) slotmem_shm: Error detection. [Jim Jagielski]
757
758   *) event: Use skiplist data structure. [Jim Jagielski]
759
760   *) event: Fail at startup with message AP02405 if the APR atomic
761      implementation is not compatible with the MPM.  [Jim Jagielski]
762
763   *) mpm_unix: Add ap_mpm_podx_* implementation to avoid code duplication
764      and align w/ trunk. [Jim Jagielski]
765
766   *) Fix potential rejection of valid MaxMemFree and ThreadStackSize
767      directives.  [Mike Rumph <mike.rumph oracle.com>]
768
769   *) mod_proxy_fcgi: Remove 64K limit on encoded length of all envvars.
770      An individual envvar with an encoded length of more than 16K will be
771      omitted.  [Jeff Trawick]
772   
773   *) mod_proxy_fcgi: Handle reading protocol data that is split between
774      packets.  [Jeff Trawick]
775
776   *) mod_ssl: Improve handling of ephemeral DH and ECDH keys by
777      allowing custom parameters to be configured via SSLCertificateFile,
778      and by adding standardized DH parameters for 1024/2048/3072/4096 bits.
779      Unless custom parameters are configured, the standardized parameters
780      are applied based on the certificate's RSA/DSA key size. [Kaspar Brand]
781
782   *) mod_ssl, configure: Require OpenSSL 0.9.8a or later. [Kaspar Brand]
783
784   *) mod_ssl: drop support for export-grade ciphers with ephemeral RSA
785      keys, and unconditionally disable aNULL, eNULL and EXP ciphers
786      (not overridable via SSLCipherSuite). [Kaspar Brand]
787
788   *) mod_proxy: Added support for unix domain sockets as the
789      backend server endpoint [Jim Jagielski, Blaise Tarr
790      <blaise tarr gmail com>]
791
792   *) Add experimental cmake-based build system for Windows.  [Jeff Trawick,
793      Tom Donovan]
794
795   *) event MPM: Fix possible crashes (third party modules accessing c->sbh) 
796      or occasional missed mod_status updates for some keepalive requests 
797      under load. [Eric Covener]
798
799   *) mod_authn_socache: Support optional initialization arguments for
800      socache providers.  [Chris Darroch]
801
802   *) mod_session: Reset the max-age on session save. PR 47476. [Alexey
803      Varlamov <alexey.v.varlamov gmail com>]
804
805   *) mod_session: After parsing the value of the header specified by the
806      SessionHeader directive, remove the value from the response. PR 55279.
807      [Graham Leggett]
808
809   *) mod_headers: Allow for format specifiers in the substitution string
810      when using Header edit. [Daniel Ruggeri]
811
812   *) mod_dav: dav_resource->uri is treated as unencoded. This was an
813      unnecessary ABI changed introduced in 2.4.6. PR 55397.
814
815   *) mod_dav: Don't require lock tokens for COPY source. PR 55306.
816
817   *) core: Don't truncate output when sending is interrupted by a signal,
818      such as from an exiting CGI process. PR 55643. [Jeff Trawick]
819
820   *) WinNT MPM: Exit the child if the parent process crashes or is terminated.
821      [Oracle Corporation]
822
823   *) Windows: Correct failure to discard stderr in some error log
824      configurations.  (Error message AH00093)  [Jeff Trawick]
825
826   *) mod_session_crypto: Allow using exec: calls to obtain session
827      encryption key.  [Daniel Ruggeri]
828
829   *) core: Add missing Reason-Phrase in HTTP response headers.
830      PR 54946. [Rainer Jung]
831
832   *) mod_rewrite: Make rewrite websocket-aware to allow proxying.
833      PR 55598. [Chris Harris <chris.harris kitware com>]
834
835   *) mod_ldap: When looking up sub-groups, use an implicit objectClass=*
836      instead of an explicit cn=* filter. [David Hawes <dhawes vt.edu>]
837
838   *) ab: Add wait time, fix processing time, and output write errors only if
839      they occured. [Christophe Jaillet]
840
841   *) worker MPM: Don't forcibly kill worker threads if the child process is
842      exiting gracefully.  [Oracle Corporation]
843
844   *) core: apachectl -S prints wildcard name-based virtual hosts twice. 
845      PR54948 [Eric Covener]
846
847   *) mod_auth_basic: Add AuthBasicUseDigestAlgorithm directive to
848      allow migration of passwords from digest to basic authentication.
849      [Chris Darroch]
850
851   *) ab: Add a new -l parameter in order not to check the length of the responses.
852      This can be usefull with dynamic pages.
853      PR9945, PR27888, PR42040 [<ccikrs1 cranbrook edu>]
854      
855   *) Suppress formatting of startup messages written to the console when
856      ErrorLogFormat is used.  [Jeff Trawick]
857
858   *) mod_auth_digest: Be more specific when the realm mismatches because the
859      realm has not been specified. [Graham Leggett]
860
861   *) mod_proxy: Add a note in the balancer manager stating whether changes
862      will or will not be persisted and whether settings are inherited.
863      [Daniel Ruggeri, Jim Jagielski]
864
865   *) core: Add util_fcgi.h and associated definitions and support
866      routines for FastCGI, based largely on mod_proxy_fcgi.
867      [Jeff Trawick]
868
869   *) mod_headers: Add 'Header note header-name note-name' for copying a response
870      headers value into a note. [Eric Covener]
871
872   *) mod_headers: Add 'setifempty' command to Header and RequestHeader.
873      [Eric Covener]
874
875   *) mod_logio: new format-specifier %S (sum) which is the sum of received
876      and sent byte counts.
877      PR54015 [Christophe Jaillet]
878
879   *) mod_deflate: Improve error detection when decompressing request bodies
880      with trailing garbage: handle case where trailing bytes are in
881      the same bucket. [Rainer Jung]
882
883   *) mod_authz_groupfile, mod_authz_user: Reduce severity of AH01671 and AH01663
884      from ERROR to DEBUG, since these modules do not know what mod_authz_core
885      is doing with their AUTHZ_DENIED return value. [Eric Covener]
886
887   *) mod_ldap: add TRACE5 for LDAP retries. [Eric Covener]
888
889   *) mod_ldap: retry on an LDAP timeout during authn. [Eric Covener]
890
891   *) mod_ldap: Change "LDAPReferrals off" to actually set the underlying LDAP 
892      SDK option to OFF, and introduce "LDAPReferrals default" to take the SDK 
893      default, sans rebind authentication callback.
894      [Jan Kaluza <kaluze AT redhat.com>]
895
896   *) core: Log a message at TRACE1 when the client aborts a connection.
897      [Eric Covener]
898
899   *) WinNT MPM: Don't crash during child process initialization if the
900      Listen protocol is unrecognized.  [Jeff Trawick]
901
902   *) modules: Fix some compiler warnings. [Guenter Knauf]
903
904   *) Sync 2.4 and trunk
905        - Avoid some memory allocation and work when TRACE1 is not activated
906        - fix typo in include guard
907        - indent
908        - No need to lower the string before removing the path, it is just 
909          a waste of time...
910        - Save a few cycles
911      [Christophe Jaillet <christophe.jaillet wanadoo.fr>]
912
913   *) mod_filter: Add "change=no" as a proto-flag to FilterProtocol
914      to remove a providers initial flags set at registration time.
915      [Eric Covener]
916
917   *) core, mod_ssl: Enable the ability for a module to reverse the sense of
918      a poll event from a read to a write or vice versa. This is a step on
919      the way to allow mod_ssl taking full advantage of the event MPM.
920      [Graham Leggett]
921
922   *) Makefile.win: Install proper pcre DLL file during debug build install.
923      PR 55235.  [Ben Reser <ben reser org>]
924
925   *) mod_ldap: Fix a potential memory leak or corruption.  PR 54936.
926      [Zhenbo Xu <zhenbo1987 gmail com>]
927
928   *) ab: Fix potential buffer overflows when processing the T and X
929      command-line options.  PR 55360.
930      [Mike Rumph <mike.rumph oracle.com>]
931
932   *) fcgistarter: Specify SO_REUSEADDR to allow starting a server
933      with old connections in TIME_WAIT.  [Jeff Trawick]
934
935   *) core: Add open_htaccess hook which, in conjunction with dirwalk_stat
936      and post_perdir_config (introduced in 2.4.5), allows mpm-itk to be 
937      used without patches to httpd core. [Stefan Fritsch]
938
939   *) support/htdbm: fix processing of -t command line switch. Regression
940      introduced in 2.4.4
941      PR 55264 [Jo Rhett <jrhett netconsonance com>]
942
943   *) mod_lua: add websocket support via r:wsupgrade, r:wswrite, r:wsread 
944      and r:wsping. [Daniel Gruno]
945
946   *) mod_lua: add support for writing/reading cookies via r:getcookie and 
947      r:setcookie. [Daniel Gruno]
948
949   *) mod_lua: If the first yield() of a LuaOutputFilter returns a string, it should
950      be prefixed to the response as documented. [Eric Covener] 
951      Note: Not present in 2.4.7 CHANGES
952
953   *) mod_lua: Remove ETAG, Content-Length, and Content-MD5 when a LuaOutputFilter
954      is configured without mod_filter. [Eric Covener]
955      Note: Not present in 2.4.7 CHANGES
956
957   *) mod_lua: Register LuaOutputFilter scripts as changing the content and
958      content-length by default, when run my mod_filter.  Previously,
959      growing or shrinking a response that started with Content-Length set
960      would require mod_filter and FilterProtocol change=yes. [Eric Covener]
961      Note: Not present in 2.4.7 CHANGES
962
963   *) mod_lua: Return a 500 error if a LuaHook* script doesn't return a
964      numeric return code. [Eric Covener]
965      Note: Not present in 2.4.7 CHANGES
966
967 Changes with Apache 2.4.6
968
969   *) Revert a broken fix for PR54948 that was applied to 2.4.5 (which was
970      not released) and found post-2.4.5 tagging.
971
972 Changes with Apache 2.4.5
973
974   *) SECURITY: CVE-2013-1896 (cve.mitre.org)
975      mod_dav: Sending a MERGE request against a URI handled by mod_dav_svn with
976      the source href (sent as part of the request body as XML) pointing to a
977      URI that is not configured for DAV will trigger a segfault. [Ben Reser
978      <ben reser.org>]
979
980   *) SECURITY: CVE-2013-2249 (cve.mitre.org)
981      mod_session_dbd: Make sure that dirty flag is respected when saving
982      sessions, and ensure the session ID is changed each time the session
983      changes. This changes the format of the updatesession SQL statement.
984      Existing configurations must be changed.
985      [Takashi Sato, Graham Leggett]
986
987   *) mod_auth_basic: Add a generic mechanism to fake basic authentication
988      using the ap_expr parser. AuthBasicFake allows the administrator to 
989      construct their own username and password for basic authentication based 
990      on their needs. [Graham Leggett]
991
992   *) mpm_event: Check that AsyncRequestWorkerFactor is not negative. PR 54254.
993      [Jackie Zhang <jackie qq zhang gmail com>]
994
995   *) mod_proxy: Ensure we don't attempt to amend a table we are iterating
996      through, ensuring that all headers listed by Connection are removed.
997      [Graham Leggett, Co-Advisor <coad measurement-factory.com>]
998
999   *) mod_proxy_http: Make the proxy-interim-response environment variable
1000      effective by formally overriding origin server behaviour. [Graham
1001      Leggett, Co-Advisor <coad measurement-factory.com>]
1002
1003   *) mod_proxy: Fix seg-faults when using the global pool on threaded
1004      MPMs [Thomas Eckert <thomas.r.w.eckert gmail.com>, Graham Leggett,
1005      Jim Jagielski]
1006
1007   *) mod_deflate: Remove assumptions as to when an EOS bucket might arrive.
1008      Gracefully step aside if the body size is zero. [Graham Leggett]
1009
1010   *) mod_ssl: Fix possible truncation of OCSP responses when reading from the
1011      server.  [Joe Orton]
1012
1013   *) core: Support the SINGLE_LISTEN_UNSERIALIZED_ACCEPT optimization
1014      on Linux kernel versions 3.x and above.  PR 55121.  [Bradley Heilbrun
1015      <apache heilbrun.org>]
1016
1017   *) mod_cache_socache: Make sure the CacheSocacheMaxSize directive is merged
1018      correctly. [Jens Låås <jelaas gmail.com>]
1019
1020   *) rotatelogs: add -n number-of-files option to rotate through a number
1021      of fixed-name logfiles. [Eric Covener]
1022
1023   *) mod_proxy: Support web-socket tunnels via mod_proxy_wstunnel.
1024      [Jim Jagielski]
1025
1026   *) mod_cache_socache: Use the name of the socache implementation when performing
1027      a lookup rather than using the raw arguments. [Martin Ksellmann
1028      <martin@ksellmann.de>]
1029
1030   *) core: Add dirwalk_stat hook.  [Jeff Trawick]
1031
1032   *) core: Add post_perdir_config hook.
1033      [Steinar Gunderson <sgunderson bigfoot.com>]
1034
1035   *) proxy_util: NULL terminate the right buffer in 'send_http_connect'.
1036      [Christophe Jaillet]
1037
1038   *) mod_remoteip: close file in error path. [Christophe Jaillet]
1039
1040   *) core: make the "default" parameter of the "ErrorDocument" option case
1041      insensitive. PR 54419 [Tianyin Xu <tixu cs ucsd edu>]
1042
1043   *) mod_proxy_html: make the "ProxyHTMLFixups" options case insensitive.
1044      PR 54420 [Tianyin Xu <tixu cs ucsd edu>]
1045
1046   *) mod_cache: Make option "CacheDisable" in mod_cache case insensitive.
1047      PR 54462 [Tianyin Xu <tixu cs ucsd edu>]
1048
1049   *) mod_cache: If a 304 response indicates an entity not currently cached, then
1050      the cache MUST disregard the response and repeat the request without the
1051      conditional. [Graham Leggett, Co-Advisor <coad measurement-factory.com>]
1052
1053   *) mod_cache: Ensure that we don't attempt to replace a cached response
1054      with an older response as per RFC2616 13.12. [Graham Leggett, Co-Advisor
1055      <coad measurement-factory.com>]
1056
1057   *) core, mod_cache: Ensure RFC2616 compliance in ap_meets_conditions()
1058      with weak validation combined with If-Range and Range headers. Break
1059      out explicit conditional header checks to be useable elsewhere in the
1060      server. Ensure weak validation RFC compliance in the byteranges filter.
1061      Ensure RFC validation compliance when serving cached entities. PR 16142
1062      [Graham Leggett, Co-Advisor <coad measurement-factory.com>]
1063
1064   *) core: Add the ability to do explicit matching on weak and strong ETags
1065      as per RFC2616 Section 13.3.3. [Graham Leggett, Co-Advisor
1066      <coad measurement-factory.com>]
1067
1068   *) mod_cache: Ensure that updated responses to HEAD requests don't get
1069      mistakenly paired with a previously cached body. Ensure that any existing
1070      body is removed when a HEAD request is cached. [Graham Leggett,
1071      Co-Advisor <coad measurement-factory.com>]
1072
1073   *) mod_cache: Honour Cache-Control: no-store in a request. [Graham Leggett]
1074
1075   *) mod_cache: Make sure that contradictory entity headers present in a 304
1076      Not Modified response are caught and cause the entity to be removed.
1077      [Graham Leggett]
1078
1079   *) mod_cache: Make sure Vary processing handles multivalued Vary headers and
1080      multivalued headers referred to via Vary. [Graham Leggett]
1081
1082   *) mod_cache: When serving from cache, only the last header of a multivalued
1083      header was taken into account. Fixed. Ensure that Warning headers are
1084      correctly handled as per RFC2616. [Graham Leggett]
1085
1086   *) mod_cache: Ignore response headers specified by no-cache=header and
1087      private=header as specified by RFC2616 14.9.1 What is Cacheable. Ensure
1088      that these headers are still processed when multiple Cache-Control
1089      headers are present in the response. PR 54706 [Graham Leggett,
1090      Yann Ylavic <ylavic.dev gmail.com>]
1091
1092   *) mod_cache: Invalidate cached entities in response to RFC2616 Section
1093      13.10 Invalidation After Updates or Deletions. PR 15868 [Graham
1094      Leggett]
1095
1096   *) mod_dav: Improve error handling in dav_method_put(), add new
1097      dav_join_error() function.  PR 54145.  [Ben Reser <ben reser.org>]
1098
1099   *) mod_dav: Do not fail PROPPATCH when prop namespace is not known.
1100      PR 52559 [Diego Santa Cruz <diego.santaCruz spinetix.com>]
1101
1102   *) mod_dav: When a PROPPATCH attempts to remove a non-existent dead
1103      property on a resource for which there is no dead property in the same
1104      namespace httpd segfaults. PR 52559 [Diego Santa Cruz
1105      <diego.santaCruz spinetix.com>]
1106
1107   *) mod_dav: Sending an If or If-Match header with an invalid ETag doesn't
1108      result in a 412 Precondition Failed for a COPY operation. PR54610
1109      [Timothy Wood <tjw omnigroup.com>]
1110
1111   *) mod_dav: Make sure that when we prepare an If URL for Etag comparison,
1112      we compare unencoded paths. PR 53910 [Timothy Wood <tjw omnigroup.com>]
1113
1114   *) mod_deflate: Remove assumptions as to when an EOS bucket might arrive.
1115      Gracefully step aside if the body size is zero. [Graham Leggett]
1116
1117   *) 'AuthGroupFile' and 'AuthUserFile' do not accept anymore the optional
1118      'standard' keyword . It was unused and not documented.
1119      PR54463 [Tianyin Xu <tixu cs.ucsd.edu> and Christophe Jaillet]
1120
1121   *) core: Do not over allocate memory within 'ap_rgetline_core' for
1122      the common case. [Christophe Jaillet]
1123
1124   *) core: speed up (for common cases) and reduce memory usage of
1125      ap_escape_logitem(). This should save 70-100 bytes in the request
1126      pool for a default config. [Christophe Jaillet]
1127
1128   *) mod_dav: Ensure URI is correctly uriencoded on return. PR 54611
1129      [Timothy Wood <tjw omnigroup.com>]
1130
1131   *) mod_proxy: Reject invalid values for Max-Forwards. [Graham Leggett,
1132      Co-Advisor <coad measurement-factory.com>]
1133
1134   *) mod_cache: RFC2616 14.9.3 The s-maxage directive also implies the
1135      semantics of the proxy-revalidate directive. [Graham Leggett]
1136
1137   *) mod_ssl: add support for subjectAltName-based host name checking
1138      in proxy mode (SSLProxyCheckPeerName). PR 54030. [Kaspar Brand]
1139
1140   *) core: Use the proper macro for HTTP/1.1. [Graham Leggett]
1141
1142   *) event MPM: Provide error handling for ThreadStackSize. PR 54311
1143      [Tianyin Xu <tixu cs.ucsd.edu>, Christophe Jaillet]
1144
1145   *) mod_dav: Do not segfault on PROPFIND with a zero length DBM.
1146      PR 52559 [Diego Santa Cruz <diego.santaCruz spinetix.com>]
1147
1148   *) core: Improve error message where client's request-line exceeds
1149      LimitRequestLine. PR 54384 [Christophe Jaillet]
1150
1151   *) mod_macro: New module that provides macros within configuration files.
1152      [Fabien Coelho]
1153
1154   *) mod_cache_socache: New cache implementation backed by mod_socache
1155      that replaces mod_mem_cache known from httpd 2.2. [Graham
1156      Leggett]
1157
1158   *) htpasswd: Add -v option to verify a password. [Stefan Fritsch]
1159
1160   *) mod_proxy: Add BalancerInherit and ProxyPassInherit to control
1161      whether Proxy Balancers and Workers are inherited by vhosts
1162      (default is On). [Jim Jagielski]
1163
1164   *) mod_authnz_ldap: Allow using exec: calls to obtain LDAP bind
1165      password.  [Daniel Ruggeri]
1166
1167   *) Added balancer parameter failontimeout to allow server admin
1168      to configure an IO timeout as an error in the balancer.
1169      [Daniel Ruggeri]
1170
1171   *) mod_auth_digest: Fix crashes if shm initialization failed. [Stefan
1172      Fritsch]
1173
1174   *) htpasswd, htdbm: Fix password generation. PR 54735. [Stefan Fritsch]
1175
1176   *) core: Add workaround for gcc bug on sparc/64bit. PR 52900.
1177      [Stefan Fritsch]
1178
1179   *) mod_setenvif: Fix crash in case SetEnvif and SetEnvIfExpr are used
1180      together. PR 54881. [Ruediger Pluem]
1181
1182   *) htdigest: Fix buffer overflow when reading digest password file
1183      with very long lines. PR 54893. [Rainer Jung]
1184
1185   *) ap_expr: Add the ability to base64 encode and base64 decode
1186      strings and to generate their SHA1 and MD5 hash.
1187      [Graham Leggett, Stefan Fritsch]
1188
1189   *) mod_log_config: Fix crash when logging request end time for a failed
1190      request.  PR 54828 [Rainer Jung]
1191
1192   *) mod_ssl: Catch missing, mismatched or encrypted client cert/key pairs
1193      with SSLProxyMachineCertificateFile/Path directives. PR 52212, PR 54698.
1194      [Keith Burdis <keith burdis.org>, Joe Orton, Kaspar Brand]
1195
1196   *) mod_ssl: Quiet FIPS mode weak keys disabled and FIPS not selected emits
1197      in the error log to debug level.  [William Rowe]
1198
1199   *) mod_cache_disk: CacheMinFileSize and CacheMaxFileSize were always
1200      using compiled in defaults of 1000000/1 respectively. [Eric Covener]
1201
1202   *) mod_lbmethod_heartbeat, mod_heartmonitor: Respect DefaultRuntimeDir/
1203      DEFAULT_REL_RUNTIMEDIR for the heartbeat storage file.  [Jeff Trawick]
1204
1205   *) mod_include: Use new ap_expr for 'elif', like 'if', 
1206      if legacy parser is not specified.  PR 54548 [Tom Donovan]
1207
1208   *) mod_lua: Add some new functions: r:htpassword(), r:mkdir(), r:mkrdir(),
1209      r:rmdir(), r:touch(), r:get_direntries(), r.date_parse_rfc().
1210      [Guenter Knauf]
1211
1212   *) mod_lua: Add multipart form data handling. [Daniel Gruno]
1213
1214   *) mod_lua: If a LuaMapHandler doesn't return any value, log a warning
1215      and treat it as apache2.OK. [Eric Covener]
1216
1217   *) mod_lua: Add bindings for apr_dbd/mod_dbd database access
1218      [Daniel Gruno]
1219
1220   *) mod_lua: Add LuaInputFilter/LuaOutputFilter for creating content
1221      filters in Lua [Daniel Gruno]
1222
1223   *) mod_lua: Allow scripts handled by the lua-script handler to return
1224      a status code to the client (such as a 302 or a 500) [Daniel Gruno]
1225
1226   *) mod_lua: Decline handling 'lua-script' if the file doesn't exist,
1227      rather than throwing an internal server error. [Daniel Gruno]
1228
1229   *) mod_lua: Add functions r:flush and r:sendfile as well as additional
1230      request information to the request_rec structure. [Daniel Gruno]
1231
1232   *) mod_lua: Add a server scope for Lua states, which creates a pool of
1233      states with managable minimum and maximum size. [Daniel Gruno]
1234
1235   *) mod_lua: Add new directive, LuaMapHandler, for dynamically mapping
1236      URIs to Lua scripts and functions using regular expressions.
1237      [Daniel Gruno]
1238
1239   *) mod_lua: Add new directive LuaCodeCache for controlling in-memory
1240      caching of lua scripts. [Daniel Gruno]
1241
1242 Changes with Apache 2.4.4
1243
1244   *) SECURITY: CVE-2012-3499 (cve.mitre.org)
1245      Various XSS flaws due to unescaped hostnames and URIs HTML output in
1246      mod_info, mod_status, mod_imagemap, mod_ldap, and mod_proxy_ftp.
1247      [Jim Jagielski, Stefan Fritsch, Niels Heinen <heinenn google com>]
1248
1249   *) SECURITY: CVE-2012-4558 (cve.mitre.org)
1250      XSS in mod_proxy_balancer manager interface. [Jim Jagielski,
1251      Niels Heinen <heinenn google com>]
1252
1253   *) mod_dir: Add support for the value 'disabled' in FallbackResource.
1254      [Vincent Deffontaines]
1255
1256   *) mod_proxy_connect: Don't keepalive the connection to the client if the
1257      backend closes the connection. PR 54474. [Pavel Mateja <pavel netsafe cz>]
1258
1259   *) mod_lua: Add bindings for mod_dbd/apr_dbd database access.
1260      [Daniel Gruno]
1261
1262   *) mod_proxy: Allow for persistence of local changes made via the
1263      balancer-manager between graceful/normal restarts and power
1264      cycles. [Jim Jagielski]
1265
1266   *) mod_proxy: Fix startup crash with mis-defined balancers.
1267      PR 52402. [Jim Jagielski]
1268
1269   *) --with-module: Fix failure to integrate them into some existing
1270      module directories.  PR 40097.  [Jeff Trawick]
1271
1272   *) htcacheclean: Fix potential segfault if "-p" is omitted.  [Joe Orton]
1273
1274   *) mod_proxy_http: Honour special value 0 (unlimited) of LimitRequestBody
1275      PR 54435.  [Pavel Mateja <pavel netsafe.cz>]
1276
1277   *) mod_proxy_ajp: Support unknown HTTP methods. PR 54416.
1278      [Rainer Jung]
1279
1280   *) htcacheclean: Fix list options "-a" and "-A".
1281      [Rainer Jung]
1282
1283   *) mod_slotmem_shm: Fix mistaken reset of num_free for restored shm.
1284      [Jim Jagielski]
1285
1286   *) mod_proxy: non-existance of byrequests is not an immediate error.
1287      [Jim Jagielski]
1288
1289   *) mod_proxy_balancer: Improve output of balancer-manager (re: Drn,
1290      Dis, Ign, Stby). PR 52478 [Danijel <dt-ng rbfh de>]
1291   
1292   *) configure: Fix processing of --disable-FEATURE for various features.
1293      [Jeff Trawick]
1294
1295   *) mod_dialup/mod_http: Prevent a crash in mod_dialup in case of internal
1296      redirect. PR 52230.
1297
1298   *) various modules, rotatelogs: Replace use of apr_file_write() with
1299      apr_file_write_full() to prevent incomplete writes. PR 53131.
1300      [Nicolas Viennot <apache viennot biz>, Stefan Fritsch]
1301
1302   *) ab: Support socket timeout (-s timeout).
1303      [Guido Serra <zeph fsfe org>]
1304
1305   *) httxt2dbm: Correct length computation for the 'value' stored in the
1306      DBM file. PR 47650 [jon buckybox com]
1307
1308   *) core: Be more correct about rejecting directives that cannot work in <If>
1309      sections. [Stefan Fritsch]
1310
1311   *) core: Fix directives like LogLevel that need to know if they are invoked
1312      at virtual host context or in Directory/Files/Location/If sections to
1313      work properly in If sections that are not in a Directory/Files/Location.
1314      [Stefan Fritsch]
1315
1316   *) mod_xml2enc: Fix problems with charset conversion altering the
1317      Content-Length. [Micha Lenk <micha lenk info>]
1318
1319   *) ap_expr: Add req_novary function that allows HTTP header lookups
1320      without adding the name to the Vary header. [Stefan Fritsch]
1321
1322   *) mod_slotmem_*: Add in new fgrab() function which forces a grab and
1323      slot allocation on a specified slot. Allow for clearing of inuse
1324      array. [Jim Jagielski]
1325
1326   *) mod_proxy_ftp: Fix segfaults on IPv4 requests to hosts with DNS
1327      AAAA records. PR  40841. [Andrew Rucker Jones <arjones simultan
1328      dyndns org>, <ast domdv de>, Jim Jagielski]
1329
1330   *) mod_auth_form: Make sure that get_notes_auth() sets the user as does
1331      get_form_auth() and get_session_auth(). Makes sure that REMOTE_USER
1332      does not vanish during mod_include driven subrequests. [Graham
1333      Leggett]
1334
1335   *) mod_cache_disk: Resolve errors while revalidating disk-cached files on
1336      Windows ("...rename tempfile to datafile failed..."). PR 38827
1337      [Eric Covener]
1338
1339   *) mod_proxy_balancer: Bring XML output up to date. [Jim Jagielski]
1340
1341   *) htpasswd, htdbm: Optionally read passwords from stdin, as more
1342      secure alternative to -b.  PR 40243. [Adomas Paltanavicius <adomas
1343      paltanavicius gmail com>, Stefan Fritsch]
1344
1345   *) htpasswd, htdbm: Add support for bcrypt algorithm (requires
1346      apr-util 1.5 or higher). PR 49288. [Stefan Fritsch]
1347
1348   *) htpasswd, htdbm: Put full 48bit of entropy into salt, improve
1349      error handling. Add some of htpasswd's improvements to htdbm,
1350      e.g. warn if password is truncated by crypt(). [Stefan Fritsch]
1351
1352   *) mod_auth_form: Support the expr parser in the
1353      AuthFormLoginRequiredLocation, AuthFormLoginSuccessLocation and
1354      AuthFormLogoutLocation directives. [Graham Leggett]
1355
1356   *) mod_ssl: Add support for TLS-SRP (Secure Remote Password key exchange
1357      for TLS, RFC 5054). PR 51075. [Quinn Slack <sqs cs stanford edu>,
1358      Christophe Renou, Peter Sylvester]
1359
1360   *) mod_rewrite: Stop mergeing RewriteBase down to subdirectories
1361      unless new option 'RewriteOptions MergeBase' is configured.
1362      PR 53963. [Eric Covener]
1363
1364   *) mod_header: Allow for exposure of loadavg and server load using new 
1365      format specifiers %l, %i, %b [Jim Jagielski]
1366   
1367   *) core: Make ap_regcomp() return AP_REG_ESPACE if out of memory.  Make
1368      ap_pregcomp() abort if out of memory. This raises the minimum PCRE
1369      requirement to version 6.0. [Stefan Fritsch]
1370
1371   *) mod_proxy: Add ability to configure the sticky session separator.
1372      PR 53893. [<inu inusasha de>, Jim Jagielski]
1373
1374   *) mod_dumpio: Correctly log large messages
1375      PR 54179 [Marek Wianecki <mieszek2 interia pl>]
1376
1377   *) core: Don't fail at startup with AH00554 when Include points to 
1378      a directory without any wildcard character. [Eric Covener]
1379
1380   *) core: Fail startup if the argument to ServerTokens is unrecognized.
1381      [Jackie Zhang  <jackie.qq.zhang gmail.com>]
1382
1383   *) mod_log_forensic: Don't log a spurious "-" if a request has been rejected
1384      before mod_log_forensic could attach its id to it. [Stefan Fritsch]
1385
1386   *) rotatelogs: Omit the second argument for the first invocation of
1387      a post-rotate program when -p is used, per the documentation.
1388      [Joe Orton]
1389
1390   *) mod_session_dbd: fix a segmentation fault in the function dbd_remove.
1391      PR 53452. [<rebanerebane gmail com>, Reimo Rebane]
1392
1393   *) core: Functions to provide server load values: ap_get_sload() and
1394      ap_get_loadavg(). [Jim Jagielski, Jan Kaluza <jkaluza redhat.com>,
1395      Jeff Trawick]
1396
1397   *) mod_ldap: Fix regression in handling "server unavailable" errors on 
1398      Windows.  PR 54140.  [Eric Covener]
1399  
1400   *) syslog logging: Remove stray ", referer" at the end of some messages.
1401      [Jeff Trawick]
1402
1403   *) "Iterate" directives: Report an error if no arguments are provided.
1404      [Jeff Trawick]
1405
1406   *) mod_ssl: Change default for SSLCompression to off, as compression
1407      causes security issues in most setups. (The so called "CRIME" attack).
1408      [Stefan Fritsch]
1409
1410   *) ab: add TLS1.1/TLS1.2 options to -f switch, and adapt output
1411      to more accurately report the negotiated protocol. PR 53916.
1412      [Nicolás Pernas Maradei <nico emutex com>, Kaspar Brand]
1413
1414   *) core: ErrorDocument now works for requests without a Host header.
1415      PR 48357.  [Jeff Trawick]
1416
1417   *) prefork: Avoid logging harmless errors during graceful stop.
1418      [Joe Orton, Jeff Trawick]
1419
1420   *) mod_proxy: When concatting for PPR, avoid cases where we
1421      concat ".../" and "/..." to create "...//..." [Jim Jagielski]
1422
1423   *) mod_cache: Wrong content type and character set when
1424      mod_cache serves stale content because of a proxy error. 
1425      PR 53539.  [Rainer Jung, Ruediger Pluem]
1426
1427   *) mod_proxy_ajp: Fix crash in packet dump code when logging
1428      with LogLevel trace7 or trace8.  PR 53730.  [Rainer Jung]
1429
1430   *) httpd.conf: Removed the configuration directives setting a bad_DNT
1431      environment introduced in 2.4.3. The actual directives are commented
1432      out in the default conf file.
1433
1434   *) core: Apply length limit when logging Status header values.
1435      [Jeff Trawick, Chris Darroch]
1436
1437   *) mod_proxy_balancer: The nonce is only derived from the UUID iff
1438      not set via the 'nonce' balancer param. [Jim Jagielski]
1439
1440   *) mod_ssl: Match wildcard SSL certificate names in proxy mode.  
1441      PR 53006.  [Joe Orton]
1442
1443   *) Windows: Fix output of -M, -L, and similar command-line options
1444      which display information about the server configuration.
1445      [Jeff Trawick]
1446
1447 Changes with Apache 2.4.3
1448
1449   *) SECURITY: CVE-2012-3502  (cve.mitre.org)
1450      mod_proxy_ajp, mod_proxy_http: Fix an issue in back end
1451      connection closing which could lead to privacy issues due
1452      to a response mixup. PR 53727. [Rainer Jung]
1453
1454   *) SECURITY: CVE-2012-2687 (cve.mitre.org)
1455      mod_negotiation: Escape filenames in variant list to prevent a
1456      possible XSS for a site where untrusted users can upload files to
1457      a location with MultiViews enabled. [Niels Heinen <heinenn google.com>]
1458
1459   *) mod_authnz_ldap: Don't try a potentially expensive nested groups
1460      search before exhausting all AuthLDAPGroupAttribute checks on the
1461      current group. PR 52464 [Eric Covener]
1462
1463   *) mod_lua: Add new directive LuaAuthzProvider to allow implementing an
1464      authorization provider in lua. [Stefan Fritsch]
1465
1466   *) core: Be less strict when checking whether Content-Type is set to 
1467      "application/x-www-form-urlencoded" when parsing POST data, 
1468      or we risk losing data with an appended charset. PR 53698
1469      [Petter Berntsen <petterb gmail.com>]
1470
1471   *) httpd.conf: Added configuration directives to set a bad_DNT environment
1472      variable based on User-Agent and to remove the DNT header field from
1473      incoming requests when a match occurs. This currently has the effect of
1474      removing DNT from requests by MSIE 10.0 because it deliberately violates
1475      the current specification of DNT semantics for HTTP. [Roy T. Fielding]
1476
1477   *) mod_socache_shmcb: Fix bus error due to a misalignment
1478      in some 32 bit builds, especially on Solaris Sparc.
1479      PR 53040.  [Rainer Jung]
1480
1481   *) mod_cache: Set content type in case we return stale content.
1482      [Ruediger Pluem]
1483
1484   *) Windows: Fix SSL failures on windows with AcceptFilter https none.
1485      PR 52476.  [Jeff Trawick]
1486
1487   *) ab: Fix read failure when targeting SSL server.  [Jeff Trawick]
1488
1489   *) The following now respect DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR:
1490      - mod_auth_digest: shared memory file
1491      [Jeff Trawick]
1492
1493   *) htpasswd: Use correct file mode for checking if file is writable.
1494      PR 45923. [Stefan Fritsch]
1495
1496   *) mod_rewrite: Fix crash with dbd RewriteMaps. PR 53663. [Mikhail T.
1497      <mi apache aldan algebra com>]
1498
1499   *) mod_ssl: Add new directive SSLCompression to disable TLS-level
1500      compression. PR 53219. [Björn Jacke <bjoern j3e de>, Stefan Fritsch]
1501
1502   *) mod_lua: Add a few missing request_rec fields. Rename remote_ip to
1503      client_ip to match conn_rec. [Stefan Fritsch]
1504
1505   *) mod_lua: Change prototype of vm_construct, to work around gcc bug which
1506      causes a segfault. PR 52779. [Dick Snippe <Dick Snippe tech omroep nl>]
1507
1508   *) mpm_event: Don't count connections in lingering close state when
1509      calculating how many additional connections may be accepted.
1510      [Stefan Fritsch]
1511
1512   *) mod_ssl: If exiting during initialization because of a fatal error,
1513      log a message to the main error log pointing to the appropriate
1514      virtual host error log. [Stefan Fritsch]
1515
1516   *) mod_proxy_ajp: Reduce memory usage in case of many keep-alive requests on
1517      one connection. PR 52275. [Naohiro Ooiwa <naohiro ooiwa miraclelinux com>]
1518
1519   *) mod_proxy_balancer: Restore balancing after a failed worker has
1520      recovered when using lbmethod_bybusyness.  PR 48735.  [Jeff Trawick]
1521
1522   *) mod_setenvif: Compile some global regex only once during startup.
1523      This should save some memory, especially with .htaccess.
1524      [Stefan Fritsch]
1525
1526   *) core: Add the port number to the vhost's name in the scoreboard.
1527      [Stefan Fritsch]
1528
1529   *) mod_proxy: Fix ProxyPassReverse for balancer configurations.
1530      PR 45434.  [Joe Orton]
1531
1532   *) mod_lua: Add the parsebody function for parsing POST data. PR 53064.
1533      [Daniel Gruno]
1534
1535   *) apxs: Use LDFLAGS from config_vars.mk in addition to CFLAGS and CPPFLAGS.
1536      [Stefan Fritsch]
1537
1538   *) mod_proxy: Fix memory leak or possible corruption in ProxyBlock
1539      implementation.  [Ruediger Pluem, Joe Orton]
1540
1541   *) mod_proxy: Check hostname from request URI against ProxyBlock list,
1542      not forward proxy, if ProxyRemote* is configured.  [Joe Orton]
1543
1544   *) mod_proxy_connect: Avoid DNS lookup on hostname from request URI 
1545      if ProxyRemote* is configured.  PR 43697.  [Joe Orton]
1546
1547   *) mpm_event, mpm_worker: Remain active amidst prevalent child process
1548      resource shortages.  [Jeff Trawick]
1549
1550   *) Add "strict" and "warnings" pragmas to Perl scripts.  [Rich Bowen]
1551
1552   *) The following now respect DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR:
1553      - core: the scoreboard (ScoreBoardFile), pid file (PidFile), and
1554        mutexes (Mutex)
1555      [Jim Jagielski]
1556
1557   *) ab: Fix bind() errors.  [Joe Orton]
1558
1559   *) mpm_event: Don't do a blocking write when starting a lingering close
1560      from the listener thread. PR 52229. [Stefan Fritsch]
1561
1562   *) mod_so: If a filename without slashes is specified for LoadFile or
1563      LoadModule and the file cannot be found in the server root directory,
1564      try to use the standard dlopen() search path. [Stefan Fritsch]
1565
1566   *) mpm_event, mpm_worker: Fix cases where the spawn rate wasn't reduced
1567      after child process resource shortages.  [Jeff Trawick]
1568
1569   *) mpm_prefork: Reduce spawn rate after a child process exits due to
1570      unexpected poll or accept failure.  [Jeff Trawick]
1571
1572   *) core: Log value of Status header line in script responses rather
1573      than the fixed header name.  [Chris Darroch]
1574
1575   *) mod_ssl: Fix handling of empty response from OCSP server.
1576      [Jim Meyering <meyering redhat.com>, Joe Orton]
1577
1578   *) mpm_event: Fix handling of MaxConnectionsPerChild. [Stefan Fritsch]
1579
1580   *) mod_authz_core: If an expression in "Require expr" returns denied and
1581      references %{REMOTE_USER}, trigger authentication and retry. PR 52892.
1582      [Stefan Fritsch]
1583
1584   *) core: Always log if LimitRequestFieldSize triggers.  [Stefan Fritsch]
1585
1586   *) mod_deflate: Skip compression if compression is enabled at SSL level.
1587      [Stefan Fritsch]
1588
1589   *) core: Add missing HTTP status codes registered with IANA.
1590      [Julian Reschke <julian.reschke gmx.de>, Rainer Jung]
1591
1592   *) mod_ldap: Treat the "server unavailable" condition as a transient
1593      error with all LDAP SDKs.  [Filip Valder <filip.valder vsb.cz>]
1594
1595   *) core: Fix spurious "not allowed here" error returned when the Options 
1596      directive is used in .htaccess and "AllowOverride Options" (with no 
1597      specific options restricted) is configured.  PR 53444. [Eric Covener]
1598
1599   *) mod_authz_core: Fix parsing of Require arguments in <AuthzProviderAlias>.
1600      PR 53048. [Stefan Fritsch]
1601
1602   *) mod_log_config: Fix %{abc}C truncating cookie values at first "=".
1603      PR 53104. [Greg Ames]
1604
1605   *) mod_ext_filter: Fix error_log spam when input filters are configured.  
1606      [Joe Orton]
1607
1608   *) mod_rewrite: Add "AllowAnyURI" option. PR 52774. [Joe Orton]
1609
1610   *) htdbm, htpasswd: Don't crash if crypt() fails (e.g. with FIPS enabled). 
1611      [Paul Wouters <pwouters redhat.com>, Joe Orton]
1612
1613   *) core: Use a TLS 1.0 close_notify alert for internal dummy connection if
1614      the chosen listener is configured for https. [Joe Orton]
1615
1616   *) mod_proxy: Use the the same hostname for SNI as for the HTTP request when
1617      forwarding to SSL backends. PR 53134.
1618      [Michael Weiser <michael weiser.dinsnail.net>, Ruediger Pluem]
1619
1620   *) mod_info: Display all registered providers. [Stefan Fritsch]
1621
1622   *) mod_ssl: Send the error message for speaking http to an https port using
1623      HTTP/1.0 instead of HTTP/0.9, and omit the link that may be wrong when
1624      using SNI. PR 50823. [Stefan Fritsch]
1625
1626   *) core: Fix segfault in logging if r->useragent_addr or c->client_addr is
1627      unset. PR 53265. [Stefan Fritsch]
1628
1629   *) log_server_status: Bring Perl style forward to the present, use
1630      standard modules, update for new format of server-status output.
1631      PR 45424. [Richard Bowen, Dave Brondsema, and others]
1632
1633   *) mod_sed, mod_log_debug, mod_rewrite: Symbol namespace cleanups. 
1634      [Joe Orton, André Malo]
1635
1636   *) core: Prevent "httpd -k restart" from killing server in presence of
1637      config error. [Joe Orton]
1638
1639   *) mod_proxy_fcgi: If there is an error reading the headers from the
1640      backend, send an error to the client. PR 52879. [Stefan Fritsch]
1641
1642 Changes with Apache 2.4.2
1643
1644   *) SECURITY: CVE-2012-0883 (cve.mitre.org)
1645      envvars: Fix insecure handling of LD_LIBRARY_PATH that could lead to the
1646      current working directory to be searched for DSOs. [Stefan Fritsch]
1647
1648   *) mod_slotmem_shm: Honor DefaultRuntimeDir [Jim Jagielski]
1649
1650   *) mod_ssl: Fix crash with threaded MPMs due to race condition when
1651      initializing EC temporary keys. [Stefan Fritsch]
1652
1653   *) mod_rewrite: Fix RewriteCond integer checks to be parsed correctly.
1654      PR 53023. [Axel Reinhold <apache freakout.de>, André Malo]
1655
1656   *) mod_proxy: Add the forcerecovery balancer parameter that determines if
1657      recovery for balancer workers is enforced. [Ruediger Pluem]
1658
1659   *) Fix MPM DSO load failure on AIX.  [Jeff Trawick]
1660
1661   *) mod_proxy: Correctly set up reverse proxy worker. PR 52935.
1662      [Petter Berntsen <petterb gmail.com>]
1663
1664   *) mod_sed: Don't define PATH_MAX to a potentially undefined value, causing
1665      compile problems on GNU hurd. [Stefan Fritsch]
1666
1667   *) core: Add ap_runtime_dir_relative() and DefaultRuntimeDir.
1668      [Jeff Trawick]
1669
1670   *) core: Fix breakage of Listen directives with MPMs that use a
1671      per-directory config. PR 52904. [Stefan Fritsch]
1672
1673   *) core: Disallow directives in AllowOverrideList which are only allowed
1674      in VirtualHost or server context. These are usually not prepared to be
1675      called in .htaccess files. [Stefan Fritsch]
1676
1677   *) core: In AllowOverrideList, do not allow 'None' together with other
1678      directives. PR 52823. [Stefan Fritsch]
1679
1680   *) mod_slotmem_shm: Support DEFAULT_REL_RUNTIMEDIR for file-based shm.
1681      [Jim Jagielski]
1682
1683   *) core: Fix merging of AllowOverrideList and ContentDigest.
1684      [Stefan Fritsch]
1685
1686   *) mod_request: Fix validation of the KeptBodySize argument so it
1687      doesn't always throw a configuration error. PR 52981 [Eric Covener]
1688
1689   *) core: Add filesystem paths to access denied / access failed messages
1690      AH00035 and AH00036. [Eric Covener]
1691
1692   *) mod_dumpio: Properly handle errors from subsequent input filters.
1693      PR 52914. [Stefan Fritsch]
1694
1695   *) Unix MPMs: Fix small memory leak in parent process if connect()
1696      failed when waking up children.  [Joe Orton]
1697
1698   *) "DirectoryIndex disabled" now undoes DirectoryIndex settings in
1699      the current configuration section, not just previous config sections.
1700      PR 52845. [Eric Covener]
1701
1702   *) mod_xml2enc: Fix broken handling of EOS buckets which could lead to
1703      response headers not being sent. PR 52766. [Stefan Fritsch]
1704
1705   *) mod_ssl: Properly free the GENERAL_NAMEs. PR 32652. [Kaspar Brand]
1706
1707   *) core: Check during config test that directories for the access
1708      logs actually exist. PR 29941. [Stefan Fritsch]
1709
1710   *) mod_xml2enc, mod_proxy_html: Enable per-module loglevels.
1711      [Stefan Fritsch]
1712
1713   *) mod_filter: Fix segfault with AddOutputFilterByType. PR 52755.
1714      [Stefan Fritsch]
1715
1716   *) mod_session: Sessions are encoded as application/x-www-form-urlencoded
1717      strings, however we do not handle the encoding of spaces properly.
1718      Fixed. [Graham Leggett]
1719
1720   *) Configuration: Example in comment should use a path consistent
1721      with the default configuration. PR 52715.
1722      [Rich Bowen, Jens Schleusener, Rainer Jung]
1723
1724   *) Configuration: Switch documentation links from trunk to 2.4.
1725      [Rainer Jung]
1726
1727   *) configure: Fix out of tree build using apr and apr-util in srclib.
1728      [Rainer Jung]
1729
1730 Changes with Apache 2.4.1
1731
1732   *) SECURITY: CVE-2012-0053 (cve.mitre.org)
1733      Fix an issue in error responses that could expose "httpOnly" cookies
1734      when no custom ErrorDocument is specified for status code 400.  
1735      [Eric Covener]
1736
1737   *) mod_proxy_balancer: Fix crash on Windows. PR 52402 [Mladen Turk]
1738
1739   *) core: Check during configtest that the directories for error logs exist.
1740      PR 29941 [Stefan Fritsch]
1741
1742   *) Core configuration: add AllowOverride option to treat syntax
1743      errors in .htaccess as non-fatal. PR 52439 [Nick Kew, Jim Jagielski]
1744
1745   *) core: Fix memory consumption in core output filter with streaming
1746      bucket types like CGI or PIPE.  [Joe Orton, Stefan Fritsch]
1747
1748   *) configure: Disable modules at configure time if a prerequisite module
1749      is not enabled. PR 52487. [Stefan Fritsch]
1750
1751   *) Rewrite and proxy now decline what they don't support rather
1752      than fail the request. [Joe Orton]
1753
1754   *) Fix building against external apr plus apr-util if apr is not installed
1755      in a system default path. [Rainer Jung]
1756
1757   *) Doxygen fixes and improvements. [Joe Orton, Igor Galić]
1758
1759   *) core: Fix building against PCRE 8.30 by switching from the obsolete
1760      pcre_info() to pcre_fullinfo(). PR 52623 [Ruediger Pluem, Rainer Jung]
1761
1762 Changes with Apache 2.4.0
1763
1764   *) SECURITY: CVE-2012-0031 (cve.mitre.org)
1765      Fix scoreboard issue which could allow an unprivileged child process
1766      to cause the parent to crash at shutdown rather than terminate
1767      cleanly.  [Joe Orton]
1768
1769   *) mod_ssl: Fix compilation with xlc on AIX. PR 52394. [Stefan Fritsch]
1770
1771   *) SECURITY: CVE-2012-0021 (cve.mitre.org)
1772      mod_log_config: Fix segfault (crash) when the '%{cookiename}C' log format
1773      string is in use and a client sends a nameless, valueless cookie, causing
1774      a denial of service. The issue existed since version 2.2.17 and 2.3.3.
1775      PR 52256.  [Rainer Canavan <rainer-apache 7val com>]
1776
1777   *) mod_ssl: when compiled against OpenSSL 1.0.1 or later, allow explicit
1778      control of TLSv1.1 and TLSv1.2 through the SSLProtocol directive.
1779      [Kaspar Brand]
1780
1781   *) mod_ssl: set OPENSSL_NO_SSL_INTERN when compiling against OpenSSL 1.0.1
1782      or later, to improve binary compatibility with future OpenSSL releases.
1783      [Kaspar Brand]
1784
1785   *) mod_mime: Don't arbitrarily bypass AddOutputFilter during a ProxyPass,
1786      but then allow AddOutputFilter during a RewriteRule [P]. Make mod_mime
1787      behave identically in both cases. PR52342. [Graham Leggett]
1788
1789   *) Move ab, logresolve, httxt2dbm and apxs to bin from sbin, along with
1790      corresponding man pages. [Graham Leggett]
1791
1792   *) Distinguish properly between the bindir and sbindir directories when
1793      installing binaries. Previously all binaries were silently installed to
1794      sbindir, whether they were system administration commands or not.
1795      [Graham Leggett]
1796
1797 Changes with Apache 2.3.16
1798
1799   *) SECURITY: CVE-2011-4317 (cve.mitre.org)
1800      Resolve additional cases of URL rewriting with ProxyPassMatch or
1801      RewriteRule, where particular request-URIs could result in undesired
1802      backend network exposure in some configurations.
1803      [Joe Orton]
1804
1805   *) core: Limit line length in .htaccess to 8K like in 2.2.x, to avoid
1806      additional DoS potential. [Stefan Fritsch]
1807
1808   *) core, all modules: Add unique tag to most error log messages. [Stefan
1809      Fritsch]
1810
1811   *) mod_socache_memcache: Change provider name from "mc" to "memcache" to
1812      match module name. [Stefan Fritsch]
1813
1814   *) mod_slotmem_shm: Change provider name from "shared" to "shm" to match
1815      module name. [Stefan Fritsch]
1816
1817   *) mod_ldap: Fix segfault with Solaris LDAP when enabling ldaps. This
1818      requires an apr-util fix in which is available in apr-util >= 1.4.0.
1819      PR 42682. [Stefan Fritsch]
1820
1821   *) mod_rewrite: Add the AllowNoSlash RewriteOption, which makes it possible
1822      for RewriteRules to be placed in .htaccess files that match the directory
1823      with no trailing slash. PR 48304.
1824      [Matthew Byng-Maddick <matthew byng-maddick bbc.co.uk>]
1825
1826   *) mod_session_crypto: Add a SessionCryptoPassphraseFile directive so that
1827      the administrator can hide the keys from the configuration. [Graham
1828      Leggett]
1829
1830   *) Introduce a per request version of the remote IP address, which can be
1831      optionally modified by a module when the effective IP of the client
1832      is not the same as the real IP of the client (such as a load balancer).
1833      Introduce a per connection "peer_ip" and a per request "client_ip" to
1834      distinguish between the raw IP address of the connection and the effective
1835      IP address of the request. [Graham Leggett]
1836
1837   *) ap_pass_brigade_fchk() function added. [Jim Jagielski]
1838
1839   *) core: Pass ap_errorlog_info struct to error log hook. [Stefan Fritsch]
1840
1841   *) mod_cache_disk: Make sure we check return codes on all writes and
1842      attempts to close, and clean up after ourselves in these cases.
1843      PR43589. [Graham Leggett]
1844
1845   *) mod_cache_disk: Remove the unnecessary intermediate brigade while
1846      writing to disk. Fixes a problem where mod_disk_cache was leaving
1847      buckets in the intermediate brigade and not passing them to out on
1848      exit. [Florian S. <f_los_ch yahoo.com>, Graham Leggett]
1849
1850   *) mod_ssl: use a shorter setting for SSLCipherSuite in the default
1851      default configuration file, and add some more information about
1852      configuring a speed-optimized alternative.
1853      [Kaspar Brand]
1854
1855   *) mod_ssl: drop support for the SSLv2 protocol. [Kaspar Brand]
1856
1857   *) mod_lua: Stop losing track of all but the most specific LuaHook* directives
1858      when multiple per-directory config sections are used.  Adds LuaInherit 
1859      directive to control how parent sections are merged.  [Eric Covener]
1860
1861   *) Server directive display (-L): Include directives of DSOs.
1862      [Jeff Trawick]
1863
1864   *) mod_cache: Make sure we merge headers correctly when we handle a
1865      non cacheable conditional response. PR52120. [Graham Leggett]
1866
1867   *) Pre GA removal of components that will not be included:
1868      - mod_noloris was superseded by mod_reqtimeout
1869      - mod_serf
1870      - mpm_simple
1871      [Rainer Jung]
1872
1873   *) core: Set MaxMemFree 2048 by default. [Stefan Fritsch]
1874
1875   *) mpm_event: Fix assertion failure during very high load. [Stefan Fritsch]
1876
1877   *) configure: Additional modules loaded by default: mod_headers.
1878      Modules moved from module set "few" to "most" and no longer loaded
1879      by default: mod_actions, mod_allowmethods, mod_auth_form, mod_buffer,
1880      mod_cgi(d), mod_include, mod_negotiation, mod_ratelimit, mod_request,
1881      mod_userdir. [Rainer Jung]
1882
1883   *) mod_lua: Use the right lua scope when used as a hook. [Rainer Jung]
1884
1885   *) configure: Only load the really imporant modules (i.e. those enabled by
1886      the 'few' selection) by default. Don't handle modules enabled with
1887      --enable-foo specially. [Stefan Fritsch]
1888
1889   *) end-generation hook: Fix false notification of end-of-generation for
1890      temporary intervals with no active MPM children.  [Jeff Trawick]
1891
1892   *) mod_ssl: Add support for configuring persistent TLS session ticket
1893      encryption/decryption keys (useful for clustered environments).
1894      [Paul Querna, Kaspar Brand]
1895
1896   *) mod_usertrack: Use random value instead of remote IP address.
1897      [Stefan Fritsch]
1898
1899 Changes with Apache 2.3.15
1900
1901   *) SECURITY: CVE-2011-3348 (cve.mitre.org)
1902      mod_proxy_ajp: Respond with HTTP_NOT_IMPLEMENTED when the method is not
1903      recognized.  [Jean-Frederic Clere]
1904
1905   *) SECURITY: CVE-2011-3192 (cve.mitre.org)
1906      core: Fix handling of byte-range requests to use less memory, to avoid
1907      denial of service. If the sum of all ranges in a request is larger than
1908      the original file, ignore the ranges and send the complete file.
1909      PR 51714. [Stefan Fritsch, Jim Jagielski, Ruediger Pluem, Eric Covener,
1910      <lowprio20 gmail.com>]
1911
1912   *) SECURITY: CVE-2011-3607 (cve.mitre.org)
1913      core: Fix integer overflow in ap_pregsub. This can be triggered e.g.
1914      with mod_setenvif via a malicious .htaccess. [Stefan Fritsch]
1915
1916   *) SECURITY: CVE-2011-3368 (cve.mitre.org)
1917      Reject requests where the request-URI does not match the HTTP
1918      specification, preventing unexpected expansion of target URLs in
1919      some reverse proxy configurations.  [Joe Orton]
1920
1921   *) configure: Load all modules in the generated default configuration
1922      when using --enable-load-all-modules. [Rainer Jung]
1923
1924   *) mod_reqtimeout: Change the default to set some reasonable timeout
1925      values. [Stefan Fritsch]
1926
1927   *) core, mod_dav_fs: Change default ETag to be "size mtime", i.e. remove
1928      the inode. PR 49623. [Stefan Fritsch]
1929
1930   *) mod_lua: Expose SSL variables via r:ssl_var_lookup().  [Eric Covener]
1931
1932   *) mod_lua: LuaHook{AccessChecker,AuthChecker,CheckUserID,TranslateName}
1933      can now additionally be run as "early" or "late" relative to other modules.
1934      [Eric Covener]
1935
1936   *) configure: By default, only load those modules that are either required
1937      or explicitly selected by a configure --enable-foo argument. The
1938      LoadModule statements for modules enabled by --enable-mods-shared=most
1939      and friends will be commented out. [Stefan Fritsch]
1940
1941   *) mod_lua: Prevent early Lua hooks (LuaHookTranslateName and 
1942      LuaHookQuickHandler) from being configured in <Directory>, <Files>, 
1943      and htaccess where the configuration would have been ignored.
1944      [Eric Covener]
1945
1946   *) mod_lua: Resolve "attempt to index local 'r' (a userdata value)" errors
1947      in LuaMapHandler scripts [Eric Covener]
1948
1949   *) mod_log_debug: Rename optional argument from if= to expr=, to be more
1950      in line with other config directives. [Stefan Fritsch]
1951
1952   *) mod_headers: Require an expression to be specified with expr=, to be more
1953      in line with other config directives. [Stefan Fritsch]
1954
1955   *) mod_substitute: To prevent overboarding memory usage, limit line length
1956      to 1MB. [Stefan Fritsch]
1957
1958   *) mod_lua: Make the query string (r.args) writable. [Eric Covener]
1959
1960   *) mod_include: Add support for application/x-www-form-urlencoded encoding
1961      and decoding. [Graham Leggett]
1962
1963   *) rotatelogs: Add -c option to force logfile creation in every rotation 
1964      interval, even if empty.  [Jan Kaluža <jkaluza redhat.com>]
1965  
1966   *) core: Limit ap_pregsub() to 64K, add ap_pregsub_ex() for longer strings.
1967      [Stefan Fritsch]
1968
1969   *) mod_session_crypto: Refactor to support the new apr_crypto API.
1970      [Graham Leggett]
1971
1972   *) http: Add missing Location header if local URL-path is used as
1973      ErrorDocument for 30x. [Stefan Fritsch]
1974
1975   *) mod_buffer: Make sure we step down for subrequests, but not for internal
1976      redirects triggered by mod_rewrite. [Graham Leggett]
1977
1978   *) mod_lua: add r:construct_url as a wrapper for ap_construct_url.
1979      [Eric Covener]
1980  
1981   *) mod_remote_ip: Fix configuration of internal proxies. PR 49272.
1982      [Jim Riggs <jim riggs me>]
1983
1984   *) mpm_winnt: Handle AcceptFilter 'none' mode correctly; resolve specific
1985      server IP endpoint and remote client IP upon connection.  [William Rowe]
1986
1987   *) mod_setenvif: Remove OID match which is obsoleted by SetEnvIfExpr with
1988      PeerExtList(). [Stefan Fritsch]
1989
1990   *) mpm_prefork, mpm_worker, mpm_event: If a child is created just before
1991      graceful restart and then exits because of a missing lock file, don't
1992      shutdown the whole server. PR 39311. [Shawn Michael
1993      <smichael rightnow com>]
1994
1995   *) mpm_event: Check the return value from ap_run_create_connection.
1996      PR 41194. [Davi Arnaut]
1997
1998   *) mod_mime_magic: Add signatures for PNG and SWF to the example config.
1999      PR 48352. [Jeremy Wagner-Kaiser <jwagner-kaiser adknowledge com>]
2000
2001   *) core, unixd: Add -D DUMP_RUN_CFG option to dump some configuration items
2002      from the parsed (or default) config. This is useful for init scripts that
2003      need to setup temporary directories and permissions. [Stefan Fritsch]
2004
2005   *) core, mod_actions, mod_asis: Downgrade error log messages which accompany
2006      a 404 request status from loglevel error to info. PR 35768. [Stefan
2007      Fritsch]
2008
2009   *) core: Fix hook sorting with Perl modules. PR 45076. [Torsten Foertsch
2010      <torsten foertsch gmx net>]
2011
2012   *) core: Enforce LimitRequestFieldSize after multiple headers with the same
2013      name have been merged. [Stefan Fritsch]
2014
2015   *) mod_ssl: If MaxMemFree is set, ask OpenSSL >= 1.0.0 to reduce memory
2016      usage.  PR 51618. [Cristian Rodríguez <crrodriguez opensuse org>,
2017      Stefan Fritsch]
2018
2019   *) mod_ssl: At startup, when checking a server certificate whether it
2020      matches the configured ServerName, also take dNSName entries in the
2021      subjectAltName extension into account. PR 32652, PR 47051. [Kaspar Brand]
2022
2023   *) mod_substitute: Reduce memory usage and copying of data. PR 50559.
2024      [Stefan Fritsch]
2025
2026   *) mod_ssl/proxy: enable the SNI extension for backend TLS connections
2027      [Kaspar Brand]
2028
2029   *) Add wrappers for malloc, calloc, realloc that check for out of memory
2030      situations and use them in many places. PR 51568, PR 51569, PR 51571.
2031      [Stefan Fritsch]
2032
2033   *) Fix cross-compilation of mod_cgi/mod_cgid when APR_HAVE_STRUCT_RLIMIT is 
2034      false but RLIMIT_* are defined.  PR51371. [Eric Covener]
2035
2036   *) core: Correctly obey ServerName / ServerAlias if the Host header from the
2037      request matches the VirtualHost address.
2038      PR 51709. [Micha Lenk <micha lenk.info>]
2039
2040   *) mod_unique_id: Use random number generator to initialize counter.
2041      PR 45110. [Stefan Fritsch]
2042
2043   *) core: Add convenience API for apr_random. [Stefan Fritsch]
2044
2045   *) core: Add MaxRangeOverlaps and MaxRangeReversals directives to control
2046      the number of overlapping and reversing ranges (respectively) permitted
2047      before returning the entire resource, with a default limit of 20.
2048      [Jim Jagielski]
2049
2050   *) mod_ldap: Optional function uldap_ssl_supported(r) always returned false
2051      if called from a virtual host with mod_ldap directives in it.  Did not
2052      affect mod_authnz_ldap's usage of mod_ldap.  [Eric Covener]
2053
2054   *) mod_filter: Instead of dropping the Accept-Ranges header when a filter
2055      registered with AP_FILTER_PROTO_NO_BYTERANGE is present,
2056      set the header value to "none". [Eric Covener, Ruediger Pluem]
2057
2058   *) core: Allow MaxRanges none|unlimited|default and set 'Accept-Ranges: none'
2059      in the case Ranges are being ignored with MaxRanges none.
2060      [Eric Covener]
2061
2062   *) mod_ssl: revamp CRL-based revocation checking when validating
2063      certificates of clients or proxied servers. Completely delegate
2064      CRL processing to OpenSSL, and add a new [Proxy]CARevocationCheck
2065      directive for controlling the revocation checking mode. [Kaspar Brand]
2066
2067   *) core: Add MaxRanges directive to control the number of ranges permitted
2068      before returning the entire resource, with a default limit of 200.
2069      [Eric Covener]
2070
2071   *) mod_cache: Ensure that CacheDisable can correctly appear within
2072      a LocationMatch. [Graham Leggett]
2073
2074   *) mod_cache: Fix the moving of the CACHE filter, which erroneously
2075      stood down if the original filter was not added by configuration.
2076      [Graham Leggett]
2077
2078   *) mod_ssl: improve certificate error logging. PR 47408. [Kaspar Brand]
2079
2080   *) mod_authz_groupfile: Increase length limit of lines in the group file to
2081      16MB. PR 43084. [Stefan Fritsch]
2082
2083   *) core: Increase length limit of lines in the configuration file to 16MB.
2084      PR 45888. PR 50824. [Stefan Fritsch]
2085
2086   *) core: Add API for resizable buffers. [Stefan Fritsch]
2087
2088   *) mod_ldap: Enable LDAPConnectionTimeout for LDAP toolkits that have
2089      LDAP_OPT_CONNECT_TIMEOUT instead of LDAP_OPT_NETWORK_TIMEOUT, such
2090      as Tivoli Directory Server 6.3 and later. [Eric Covener]
2091
2092   *) mod_ldap: Change default number of retries from 10 to 3, and add
2093      an LDAPRetries and LDAPRetryDelay directives. [Eric Covener]
2094
2095   *) mod_authnz_ldap: Don't retry during authentication, because this just
2096      multiplies the ample retries already being done by mod_ldap. [Eric Covener]
2097
2098   *) configure: Allow to explicitly disable modules even with module selection
2099      'reallyall'. [Stefan Fritsch]
2100
2101   *) mod_rewrite: Check validity of each internal (int:) RewriteMap even if the
2102      RewriteEngine is disabled in server context, avoiding a crash while
2103      referencing the invalid int: map at runtime. PR 50994.
2104      [Ben Noordhuis <info noordhuis nl>]
2105
2106   *) mod_ssl, configure: require OpenSSL 0.9.7 or later. [Kaspar Brand]
2107
2108   *) mod_ssl: remove ssl_toolkit_compat layer. [Kaspar Brand]
2109
2110   *) mod_ssl, configure, ab: drop support for RSA BSAFE SSL-C toolkit.
2111      [Kaspar Brand]
2112
2113   *) mod_usertrack: Run mod_usertrack earlier in the fixups hook to ensure the
2114      cookie is set when modules such as mod_rewrite trigger a redirect. Also
2115      use r->err_headers_out for the cookie, for the same reason.  PR29755.
2116      [Sami J. Mäkinen <sjm almamedia fi>, Eric Covener]
2117
2118   *) mod_proxy_http, mod_proxy_connect: Add 'proxy-status' and
2119      'proxy-source-port' request notes for logging. PR 30195. [Stefan Fritsch]
2120
2121   *) configure: Enable ldap modules in 'all' and 'most' selections if ldap
2122      is compiled into apr-util. [Stefan Fritsch]
2123
2124   *) core: Add ap_check_cmd_context()-check if a command is executed in
2125      .htaccess file. [Stefan Fritsch]
2126
2127   *) mod_deflate: Fix endless loop if first bucket is metadata. PR 51590.
2128      [Torsten Foertsch <torsten foertsch gmx net>]
2129
2130   *) mod_authn_socache: Fix to work in .htaccess if not configured anywhere
2131      in httpd.conf, and introduce an AuthnCacheEnable directive.
2132      PR 51991 [Nick Kew]
2133
2134   *) mod_xml2enc: new (formerly third-party) module supporting
2135      internationalisation for filters via smart charset sniffing
2136      and conversion. [Nick Kew]
2137
2138   *) mod_proxy_html: new (formerly third-party) module to fix up
2139      HTML links in a reverse proxy situation, where a backend
2140      generates URLs that are not resolvable by Clients. [Nick Kew]
2141
2142 Changes with Apache 2.3.14
2143
2144   *) mod_proxy_ajp: Improve trace logging.  [Rainer Jung]
2145
2146   *) mod_proxy_ajp: Respect "reuse" flag in END_REPONSE packets.
2147      [Rainer Jung]
2148
2149   *) mod_proxy: enable absolute URLs to be rewritten with ProxyPassReverse,
2150      e.g. to reverse proxy "Location: https://other-internal-server/login"
2151      [Nick Kew]
2152
2153   *) prefork, worker, event: Make sure crashes are logged to the error log if
2154      httpd has already detached from the console. [Stefan Fritsch]
2155
2156   *) prefork, worker, event: Reduce period during startup/restart where a
2157      successive signal may be lost. PR 43696. [Arun Bhalla <arun shme net>]
2158
2159   *) mod_allowmethods: Correct Merging of "reset" and do not allow an
2160      empty parameter list for the AllowMethods directive. [Rainer Jung]
2161
2162   *) configure: Update selection of modules for 'all' and 'most'. 'all' will
2163      now enable all modules except for example and test modules. Make the
2164      selection for 'most' more useful (including ssl and proxy). Both 'all'
2165      and 'most' will now disable modules if dependencies are missing instead
2166      of aborting. If a specific module is requested with --enable-XXX=yes,
2167      missing dependencies will still cause configure to exit with an error.
2168      [Stefan Fritsch]
2169
2170   *) mod_ldap: Revert the integration of apr-ldap as ap_ldap which was done
2171      in 2.3.13. [Stefan Fritsch]
2172
2173   *) core: For '*' or '_default_' vhosts, use a wildcard address of any
2174      address family, rather than IPv4 only.  [Joe Orton]
2175
2176   *) core, mod_rewrite, mod_ssl, mod_nw_ssl: Make the SERVER_NAME variable
2177      include [ ] for literal IPv6 addresses, as mandated by RFC 3875.
2178      PR 26005. [Stefan Fritsch]
2179
2180   *) mod_negotiation: Fix parsing of Content-Length in type maps. PR 42203.
2181      [Nagae Hidetake <nagae eagan jp>]
2182
2183   *) core: Add more logging to ap_scan_script_header_err* functions. Add
2184      ap_scan_script_header_err*_ex functions that take a module index for
2185      logging.
2186      mod_cgi, mod_cgid, mod_proxy_fcgi, mod_proxy_scgi, mod_isapi: Use the
2187      new functions in order to make logging configurable per-module.
2188      [Stefan Fritsch]
2189
2190   *) mod_dir: Add DirectoryIndexRedirect to send an external redirect to
2191      the proper index.  [Eric Covener]
2192
2193   *) mod_deflate: Don't try to compress requests with a zero sized body.
2194      PR 51350. [Stefan Fritsch]
2195
2196   *) core: Fix startup on IPv6-only systems. PR 50592. [Joe Orton,
2197      <root linkage white-void net>]
2198
2199   *) suexec: Add environment variables CONTEXT_DOCUMENT_ROOT, CONTEXT_PREFIX,
2200      REDIRECT_ERROR_NOTES, REDIRECT_SCRIPT_FILENAME, REQUEST_SCHEME to the
2201      whitelist in suexec. PR 51499. [Graham Laverty <graham reg ca>,
2202      Stefan Fritsch]
2203
2204   *) mod_rewrite: Fix regexp RewriteCond with NoCase. [Stefan Fritsch]
2205
2206   *) mod_log_debug: New module that allows to log custom messages at various
2207      phases in the request processing. [Stefan Fritsch]
2208
2209   *) mod_ssl: Add some debug logging when loading server certificates.
2210      PR 37912. [Nick Burch <nick burch alfresco com>]
2211
2212   *) configure: Support reallyall option also for --enable-mods-static.
2213      [Rainer Jung]
2214
2215   *) mod_socache_dc: add --with-distcache to configure for choosing
2216      the distcache installation directory. [Rainer Jung]
2217
2218   *) mod_socache_dc: use correct build variable MOD_SOCACHE_DC_LDADD
2219      instead of MOD_SOCACHE_LDADD in build macro. [Rainer Jung]
2220
2221   *) mod_lua, mod_deflate: respect platform specific runpath linker
2222      flag. [Rainer Jung]
2223
2224   *) configure: Only link the httpd binary against PCRE. No other support
2225      binary needs PCRE. [Rainer Jung]
2226
2227   *) configure: tolerate dependency checking failures for modules if
2228      they have been enabled implicitely. [Rainer Jung]
2229
2230   *) configure: Allow to specify module specific custom linker flags via
2231      the MOD_XXX_LDADD variables. [Rainer Jung]
2232
2233 Changes with Apache 2.3.13
2234
2235   *) ab: Support specifying the local address to use. PR 48930.
2236      [Peter Schuller <scode spotify com>]
2237
2238   *) core: Add support to ErrorLogFormat for logging the system unique
2239      thread id under Linux. [Stefan Fritsch]
2240
2241   *) event: New AsyncRequestWorkerFactor directive to influence how many
2242      connections will be accepted per process. [Stefan Fritsch]
2243
2244   *) prefork, worker, event: Rename MaxClients to MaxRequestWorkers which
2245      describes more accurately what it does. [Stefan Fritsch]
2246
2247   *) rotatelogs: Add -p argument to specify custom program to invoke
2248      after a log rotation.  PR 51285. [Sven Ulland <sveniu ifi.uio.no>,
2249      Joe Orton]
2250
2251   *) mod_ssl: Don't do OCSP checks for valid self-issued certs. [Kaspar Brand]
2252
2253   *) mod_ssl: Avoid unnecessary renegotiations with SSLVerifyDepth 0.
2254      PR 48215. [Kaspar Brand]
2255
2256   *) mod_status: Display information about asynchronous connections in the
2257      server-status. PR 44377. [Stefan Fritsch]
2258
2259   *) mpm_event: If the number of connections of a process is very high, or if
2260      all workers are busy, don't accept new connections in that process.
2261      [Stefan Fritsch]
2262
2263   *) mpm_event: Process lingering close asynchronously instead of tying up
2264      worker threads. [Jeff Trawick, Stefan Fritsch]
2265
2266   *) mpm_event: If MaxMemFree is set, limit the number of pools that is kept
2267      around. [Stefan Fritsch]
2268
2269   *) mpm_event: Fix graceful restart aborting connections. PR 43359.
2270      [Takashi Sato <takashi lans-tv com>]
2271
2272   *) mod_ssl: Disable AECDH ciphers in example config. PR 51363.
2273      [Rob Stradling <rob comodo com>]
2274
2275   *) core: Introduce new function ap_get_conn_socket() to access the socket of
2276      a connection. [Stefan Fritsch]
2277
2278   *) mod_data: Introduce a filter to support RFC2397 data URLs. [Graham
2279      Leggett]
2280
2281   *) mod_userdir/mod_alias/mod_vhost_alias: Correctly set DOCUMENT_ROOT,
2282      CONTEXT_DOCUMENT_ROOT, CONTEXT_PREFIX. PR 26052. PR 46198.
2283      [Stefan Fritsch]
2284
2285   *) core: Allow to override document_root on a per-request basis. Introduce
2286      new context_document_root and context_prefix which provide information
2287      about non-global URI-to-directory mappings (from e.g. mod_userdir or
2288      mod_alias) to scripts. PR 49705. [Stefan Fritsch]
2289
2290   *) core: Add <ElseIf> and <Else> to complement <If> sections.
2291      [Stefan Fritsch]
2292
2293   *) mod_ext_filter: Remove DebugLevel option in favor of per-module loglevel.
2294      [Stefan Fritsch]
2295
2296   *) mod_include: Make the "#if expr" element use the new "ap_expr" expression
2297      parser. The old parser can still be used by setting the new directive
2298      SSILegacyExprParser. [Stefan Fritsch]
2299
2300   *) core: Add some features to ap_expr for use by mod_include: a restricted
2301      mode that does not allow to bypass request access restrictions; new
2302      variables DOCUMENT_URI (alias for REQUEST_URI), LAST_MODIFIED; -A as an
2303      alias for -U; an additional data entry in ap_expr_eval_ctx_t for use by
2304      the consumer; an extensible ap_expr_exec_ctx() API that allows to use that
2305      data entry. [Stefan Fritsch]
2306
2307   *) mod_include: Merge directory configs instead of one SSI* config directive
2308      causing all other per-directory SSI* config directives to be reset.
2309      [Stefan Fritsch]
2310
2311   *) mod_charset_lite: Remove DebugLevel option in favour of per-module
2312      loglevel. [Stefan Fritsch]
2313
2314   *) core: Add ap_regexec_len() function that works with non-null-terminated
2315      strings. PR 51231. [Yehezkel Horowitz <horowity checkpoint com>]
2316
2317   *) mod_authnz_ldap: If the LDAP server returns constraint violation,
2318      don't treat this as an error but as "auth denied". [Stefan Fritsch]
2319
2320   *) mod_proxy_fcgi|scgi: Add support for "best guess" of PATH_INFO
2321      for SCGI/FCGI. PR 50880, 50851. [Mark Montague <mark catseye.org>,
2322      Jim Jagielski]
2323
2324   *) mod_cache: When content is served stale, and there is no means to
2325      revalidate the content using ETag or Last-Modified, and we have
2326      mandated no stale-on-error behaviour, stand down and don't cache.
2327      Saves a cache write that will never be read.
2328      [Graham Leggett]
2329
2330   *) mod_reqtimeout: Fix a timed out connection going into the keep-alive
2331      state after a timeout when discarding a request body. PR 51103.
2332      [Stefan Fritsch]
2333
2334   *) core: Add various file existance test operators to ap_expr.
2335      [Stefan Fritsch]
2336
2337   *) mod_proxy_express: New mass reverse-proxy switch extension for
2338      mod_proxy. [Jim Jagielski]
2339
2340   *) configure: Fix script error when configuring module set "reallyall".
2341      [Rainer Jung]
2342
2343 Changes with Apache 2.3.12
2344
2345   *) configure, core: Provide easier support for APR's hook probe
2346      capability. [Jim Jagielski, Jeff Trawick]
2347
2348   *) Silence autoconf 2.68 warnings.  [Rainer Jung]
2349
2350   *) mod_authnz_ldap: Resolve crash when LDAP is used for authorization only
2351      [Scott Hill <shill genscape.com>]
2352
2353   *) support: Make sure check_forensic works with mod_unique_id loaded
2354      [Joe Schaefer]
2355
2356   *) Add child_status hook for tracking creation/termination of MPM child
2357      processes.  Add end_generation hook for notification when the last
2358      MPM child of a generation exits. [Jeff Trawick]
2359
2360   *) mod_ldap: Make LDAPSharedCacheSize 0 create a non-shared-memory cache per
2361      process as opposed to disabling caching completely. This allows to use
2362      the non-shared-memory cache as a workaround for the shared memory cache
2363      not being available during graceful restarts. PR 48958. [Stefan Fritsch]
2364
2365   *) Add new ap_reserve_module_slots/ap_reserve_module_slots_directive API,
2366      necessary if a module (like mod_perl) registers additional modules late
2367      in the startup phase. [Stefan Fritsch]
2368
2369   *) core: Prevent segfault if DYNAMIC_MODULE_LIMIT is reached. PR 51072.
2370      [Torsten Förtsch <torsten foertsch gmx net>]
2371
2372   *) WinNT MPM: Improve robustness under heavy load.  [Jeff Trawick]
2373
2374   *) MinGW build improvements.  PR 49535.  [John Vandenberg
2375      <jayvdb gmail.com>, Jeff Trawick]
2376
2377   *) core: Support module names with colons in loglevel configuration.
2378      [Torsten Förtsch <torsten foertsch gmx net>]
2379
2380   *) mod_ssl, ab: Support OpenSSL compiled without SSLv2 support.
2381      [Stefan Fritsch]
2382
2383   *) core: Abort if the MPM is changed across restart.  [Jeff Trawick]
2384
2385   *) mod_proxy_ajp: Add support for 'ProxyErrorOverride on'. PR 50945.
2386      [Peter Pramberger <peter pramberger.at>, Jim Jagielski]
2387
2388   *) mod_proxy_fcgi: Add support for 'ProxyErrorOverride on'. PR 50913.
2389      [Mark Montague <mark catseye.org>, Jim Jagielski]
2390
2391   *) core: Change the APIs of ap_cfg_getline() and ap_cfg_getc() to return an
2392      error code. Abort with a nice error message if a config line is too long.
2393      Partial fix for PR 50824. [Stefan Fritsch]
2394
2395   *) mod_info: Dump config to stdout during startup if -DDUMP_CONFIG is
2396      specified. PR 31956. [Stefan Fritsch]
2397
2398   *) Restore visibility of DEFAULT_PIDLOG to core and modules.  MPM
2399      helper function ap_remove_pid() added.  [Jeff Trawick]
2400
2401   *) Enable DEFAULT_REL_RUNTIMEDIR on Windows and NetWare.  [various]
2402
2403   *) Correct C++ incompatibility with http_log.h.  [Stefan Fritsch, Jeff
2404      Trawick]
2405
2406   *) mod_log_config: Prevent segfault. PR 50861. [Torsten Förtsch
2407      <torsten.foertsch gmx.net>]
2408
2409   *) core: AllowEncodedSlashes new option NoDecode to allow encoded slashes
2410      in request URL path info but not decode them. Change behavior of option
2411      "On" to decode the encoded slashes as 2.0 and 2.2 do.  PR 35256,
2412      PR 46830.  [Dan Poirier]
2413
2414   *) mod_ssl: Check SNI hostname against Host header case-insensitively.
2415      PR 49491.  [Mayank Agrawal <magrawal.08 gmail.com>]
2416
2417   *) mod_ldap: Add LDAPConnectionPoolTTL to give control over lifetime
2418      of bound backend LDAP connections.  PR47634 [Eric Covener]
2419
2420   *) mod_cache: Make CacheEnable and CacheDisable configurable per
2421      directory in addition to per server, making them work from within
2422      a LocationMatch. [Graham Leggett]
2423
2424   *) worker, event, prefork: Correct several issues when built as
2425      DSOs; most notably, the scoreboard was reinitialized during graceful
2426      restart, such that processes of the previous generation were not
2427      observable.  [Jeff Trawick]
2428
2429 Changes with Apache 2.3.11
2430
2431   *) mod_win32: Added shebang check for '! so that .vbs scripts work as CGI.
2432      Win32's cscript interpreter can only use a single quote as comment char.
2433      [Guenter Knauf]
2434
2435   *) mod_proxy: balancer-manager now uses POST instead of GET.
2436      [Jim Jagielski]
2437
2438   *) core: new util function: ap_parse_form_data(). Previously,
2439      this capability was tucked away in mod_request. [Jim Jagielski]
2440
2441   *) core: new hook: ap_run_pre_read_request. [Jim Jagielski]
2442
2443   *) modules: Fix many modules that were not correctly initializing if they
2444      were not active during server startup but got enabled later during a
2445      graceful restart. [Stefan Fritsch]
2446
2447   *) core: Create new ap_state_query function that allows modules to determine
2448      if the current configuration run is the initial one at server startup,
2449      and if the server is started for testing/config dumping only.
2450      [Stefan Fritsch]
2451
2452   *) mod_proxy: Runtime configuration of many parameters for existing
2453      balancers via the balancer-manager. [Jim Jagielski]
2454
2455   *) mod_proxy: Runtime addition of new workers (BalancerMember) for existing
2456      balancers via the balancer-manager. [Jim Jagielski]
2457
2458   *) mod_cache: When a bad Expires date is present, we need to behave as if
2459      the Expires is in the past, not as if the Expires is missing. PR 16521.
2460      [Co-Advisor <coad measurement-factory.com>]
2461
2462   *) mod_cache: We must ignore quoted-string values that appear in a
2463      Cache-Control header. PR 50199. [Graham Leggett]
2464
2465   *) mod_dav: Revert change to send 501 error if unknown Content-* header is
2466     received for a PUT request. PR 42978. [Stefan Fritsch]
2467
2468   *) mod_cache: Respect s-maxage as described by RFC2616 14.9.3, which must
2469      take precedence if present. PR 35247. [Graham Leggett]
2470
2471   *) mod_ssl: Fix a possible startup failure if multiple SSL vhosts
2472      are configured with the same ServerName and private key file.
2473      [Masahiro Matsuya <mmatsuya redhat.com>, Joe Orton]
2474
2475   *) mod_socache_dc: Make module compile by fixing some typos.
2476      PR 50735 [Mark Montague <mark catseye.org>]
2477
2478   *) prefork: Update MPM state in children during a graceful stop or
2479      restart.  PR 41743.  [Andrew Punch <andrew.punch 247realmedia.com>]
2480
2481   *) mod_mime: Ignore leading dots when looking for mime extensions.
2482      PR 50434 [Stefan Fritsch]
2483
2484   *) core: Add support to set variables with the 'Define' directive. The
2485      variables that can then be used in the config using the ${VAR} syntax
2486      known from envvar interpolation. [Stefan Fritsch]
2487
2488   *) mod_proxy_http: make adding of X-Forwarded-* headers configurable.
2489      ProxyAddHeaders defaults to On. [Vincent Deffontaines]
2490
2491   *) mod_slotmem_shm: Increase memory alignment for slotmem data.
2492      [Rainer Jung]
2493
2494   *) mod_ssl: Add config options for OCSP: SSLOCSPResponderTimeout,
2495      SSLOCSPResponseMaxAge, SSLOCSPResponseTimeSkew.
2496      [Kaspar Brand <httpd-dev.2011 velox.ch>]
2497
2498   *) mod_ssl: Revamp output buffering to reduce network overhead for
2499      output fragmented into many buckets, such as chunked HTTP responses.
2500      [Joe Orton]
2501
2502   *) core: Apply <If> sections to all requests, not only to file base requests.
2503      Allow to use <If> inside <Directory>, <Location>, and <Files> sections.
2504      The merging of <If> sections now happens after the merging of <Location>
2505      sections, even if an <If> section is embedded inside a <Directory> or
2506      <Files> section.  [Stefan Fritsch]
2507
2508   *) mod_proxy: Refactor usage of shared data by dropping the scoreboard
2509      and using slotmem. Create foundation for dynamic growth/changes of
2510      members within a balancer. Remove BalancerNonce in favor of a
2511      per-balancer 'nonce' parameter. [Jim Jagielski]
2512
2513   *) mod_status: Don't show slots which are disabled by MaxClients as open.
2514      PR 47022 [Jordi Prats <jordi prats gmail com>, Stefan Fritsch]
2515
2516   *) mpm_prefork: Fix ap_mpm_query results for AP_MPMQ_MAX_DAEMONS and
2517      AP_MPMQ_MAX_THREADS.
2518
2519   *) mod_authz_core: Fix bug in merging logic if user-based and non-user-based
2520      authorization directives were mixed. [Stefan Fritsch]
2521
2522   *) mod_authn_socache: change directive name from AuthnCacheProvider
2523      to AuthnCacheProvideFor.  The term "provider" is overloaded in
2524      this module, and we should avoid confusion between the provider
2525      of a backend (AuthnCacheSOCache) and the authn provider(s) for
2526      which this module provides cacheing (AuthnCacheProvideFor).
2527      [Nick Kew]
2528
2529   *) mod_proxy_http: Allocate the fake backend request from a child pool
2530      of the backend connection, instead of misusing the pool of the frontend
2531      request. Fixes a thread safety issue where buckets set aside in the
2532      backend connection leak into other threads, and then disappear when
2533      the frontend request is cleaned up, in turn causing corrupted buckets
2534      to make other threads spin. [Graham Leggett]
2535
2536   *) mod_ssl: Change the format of the SSL_{CLIENT,SERVER}_{I,S}_DN variables
2537      to be RFC 2253 compatible, convert non-ASCII characters to UTF8, and
2538      escape other special characters with backslashes. The old format can
2539      still be used with the LegacyDNStringFormat argument to SSLOptions.
2540
2541   *) core, mod_rewrite: Make the REQUEST_SCHEME variable available to
2542      scripts and mod_rewrite. [Stefan Fritsch]
2543
2544   *) mod_rewrite: Allow to use arbitrary boolean expressions (ap_expr) in
2545      RewriteCond. [Stefan Fritsch]
2546
2547   *) mod_rewrite: Allow to unset environment variables using E=!VAR.
2548      PR 49512. [Mark Drayton <mark markdrayton info>, Stefan Fritsch]
2549
2550   *) mod_headers: Restore the 2.3.8 and earlier default for the first
2551      argument of the Header directive ("onsuccess").  [Eric Covener]
2552
2553   *) core: Disallow the mixing of relative and absolute Options PR 33708.
2554      [Sönke Tesch <st kino-fahrplan.de>]
2555
2556   *) core: When exporting request headers to HTTP_* environment variables,
2557      drop variables whose names contain invalid characters. Describe in the
2558      docs how to restore the old behaviour. [Malte S. Stretz <mss apache org>]
2559
2560   *) core: When selecting an IP-based virtual host, favor an exact match for
2561      the port over a wildcard (or omitted) port instead of favoring the one
2562      that came first in the configuration file. [Eric Covener]
2563
2564   *) core: Overlapping virtual host address/port combinations  now implicitly
2565      enable name-based virtual hosting for that address.  The NameVirtualHost
2566      directive has no effect, and _default_ is interpreted the same as "*".
2567      [Eric Covener]
2568
2569   *) core: In the absence of any Options directives, the default is now
2570      "FollowSymlinks" instead of "All".  [Igor Galić]
2571
2572   *) rotatelogs: Add -e option to write logs through to stdout for optional
2573      further processing. [Graham Leggett]
2574
2575   *) mod_ssl: Correctly read full lines in input filter when the line is
2576      incomplete during first read. PR 50481. [Ruediger Pluem]
2577
2578   *) mod_authz_core: Add AuthzSendForbiddenOnFailure directive to allow
2579      sending '403 FORBIDDEN' instead of '401 UNAUTHORIZED' if authorization
2580      fails for an authenticated user. PR 40721. [Stefan Fritsch]
2581
2582 Changes with Apache 2.3.10
2583
2584   *) mod_rewrite: Don't implicitly URL-escape the original query string
2585      when no substitution has changed it. PR 50447. [Eric Covener]
2586
2587   *) core: Honor 'AcceptPathInfo OFF' during internal redirects,
2588      such as per-directory mod_rewrite substitutions.  PR 50349.
2589      [Eric Covener]
2590
2591   *) mod_rewrite: Add 'RewriteOptions InheritBefore' to put the base
2592      rules/conditions before the overridden rules/conditions.  PR 39313.
2593      [Jérôme Grandjanny <jerome.grandjanny cea.fr>]
2594
2595   *) mod_autoindex: add IndexIgnoreReset to reset the list of IndexIgnored
2596      filenames in higher precedence configuration sections.  PR 24243.
2597      [Eric Covener]
2598
2599   *) mod_cgid: RLimit* directive support for mod_cgid.  PR 42135
2600      [Eric Covener]
2601
2602   *) core: Fail startup when the argument to ServerName looks like a glob
2603      or a regular expression instead of a hostname (*?[]).  PR 39863
2604      [Rahul Nair <rahul.g.nair gmail.com>]
2605
2606   *) mod_userdir: Add merging of enable, disable, and filename arguments
2607      to UserDir directive, leaving enable/disable of userlists unmerged.
2608      PR 44076 [Eric Covener]
2609
2610   *) httpd: When no -k option is provided on the httpd command line, the server
2611      was starting without checking for an existing pidfile.  PR 50350
2612      [Eric Covener]
2613
2614   *) mod_proxy: Put the worker in error state if the SSL handshake with the
2615      backend fails. PR 50332.
2616      [Daniel Ruggeri <DRuggeri primary.net>, Ruediger Pluem]
2617
2618   *) mod_cache_disk: Fix Windows build which was broken after renaming
2619      the module. [Gregg L. Smith]
2620
2621 Changes with Apache 2.3.9
2622
2623   *) SECURITY: CVE-2010-1623 (cve.mitre.org)
2624      Fix a denial of service attack against mod_reqtimeout.
2625      [Stefan Fritsch]
2626
2627   *) mod_headers: Change default first argument of Header directive
2628      from "onsuccess" to "always". [Eric Covener]
2629
2630   *) mod_include: Add the onerror attribute to the include element,
2631      allowing an URL to be specified to include on error. [Graham
2632      Leggett]
2633
2634   *) mod_cache_disk: mod_disk_cache renamed to mod_cache_disk, to be
2635      consistent with the naming of other modules. [Graham Leggett]
2636
2637   *) mod_setenvif: Add SetEnvIfExpr directive to set env var depending on
2638      expression. [Stefan Fritsch]
2639
2640   *) mod_proxy: Fix ProxyPassInterpolateEnv directive. PR 50292.
2641      [Stefan Fritsch]
2642
2643   *) suEXEC: Add Suexec directive to disable suEXEC without renaming the
2644      binary (Suexec Off), or force startup failure if suEXEC is required
2645      but not supported (Suexec On).  Change SuexecUserGroup to fail
2646      startup instead of just printing a warning if suEXEC is disabled.
2647      [Jeff Trawick]
2648
2649   *) core: Add Error directive for aborting startup or htaccess processing
2650      with a specified error message.  [Jeff Trawick]
2651
2652   *) mod_rewrite: Fix the RewriteEngine directive to work within a
2653      location. Previously, once RewriteEngine was switched on globally,
2654      it was impossible to switch off. [Graham Leggett]
2655
2656   *) core, mod_include, mod_ssl: Move the expression parser derived from
2657      mod_include back into mod_include. Replace ap_expr with a parser
2658      derived from mod_ssl's parser. Make mod_ssl use the new parser. Rework
2659      ap_expr's public interface and provide hooks for modules to add variables
2660      and functions. [Stefan Fritsch]
2661
2662   *) core: Do the hook sorting earlier so that the hooks are properly sorted
2663      for the pre_config hook and during parsing the config. [Stefan Fritsch]
2664
2665   *) core: In the absence of any AllowOverride directives, the default is now
2666      "None" instead of "All".  PR49823 [Eric Covener]
2667
2668   *) mod_proxy: Don't allow ProxyPass or ProxyPassReverse in
2669      <Directory> or <Files>. PR47765 [Eric Covener]
2670
2671   *) prefork/worker/event MPMS: default value (when no directive is present)
2672      of MaxConnectionsPerChild/MaxRequestsPerChild is changed to 0 from 10000
2673      to match default configuration and manual. PR47782 [Eric Covener]
2674
2675   *) proxy_connect: Don't give up in the middle of a CONNECT tunnel
2676      when the child process is starting to exit.  PR50220. [Eric Covener]
2677
2678   *) mod_autoindex: Fix inheritance of mod_autoindex directives into
2679      contexts that don't have any mod_autoindex directives. PR47766.
2680      [Eric Covener]
2681
2682   *) mod_rewrite: Add END flag for RewriteRule to prevent further rounds
2683      of rewrite processing when a per-directory substitution occurs.
2684      [Eric Covener]
2685
2686   *) mod_ssl: Make sure to always log an error if loading of CA certificates
2687      fails. PR 40312. [Paul Tiemann <issues apache org ourdetour com>]
2688
2689   *) mod_dav: Send 501 error if unknown Content-* header is received for a PUT
2690      request (RFC 2616 9.6). PR 42978. [Stefan Fritsch]
2691
2692   *) mod_dav: Send 400 error if malformed Content-Range header is received for
2693      a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch]
2694
2695   *) mod_proxy: Release the backend connection as soon as EOS is detected,
2696      so the backend isn't forced to wait for the client to eventually
2697      acknowledge the data. [Graham Leggett]
2698
2699   *) mod_proxy: Optimise ProxyPass within a Location so that it is stored
2700      per-directory, and chosen during the location walk. Make ProxyPass
2701      work correctly from within a LocationMatch. [Graham Leggett]
2702
2703   *) core: Fix segfault if per-module LogLevel is on virtual host
2704      scope. PR 50117. [Stefan Fritsch]
2705
2706   *) mod_proxy: Move the ProxyErrorOverride directive to have per
2707      directory scope. [Graham Leggett]
2708
2709   *) mod_allowmethods: New module to deny certain HTTP methods without
2710      interfering with authentication/authorization. [Paul Querna,
2711      Igor Galić, Stefan Fritsch]
2712
2713   *) mod_ssl: Log certificate information and improve error message if client
2714      cert verification fails. PR 50093, PR 50094. [Lassi Tuura <lat cern ch>,
2715      Stefan Fritsch]
2716
2717   *) htcacheclean: Teach htcacheclean to limit cache size by number of
2718      inodes in addition to size of files. Prevents a cache disk from
2719      running out of space when many small files are cached.
2720      [Graham Leggett]
2721
2722   *) core: Rename MaxRequestsPerChild to MaxConnectionsPerChild, which
2723      describes more accurately what the directive does. The old name
2724      still works but logs a warning. [Stefan Fritsch]
2725
2726   *) mod_cache: Optionally serve stale data when a revalidation returns a
2727      5xx response, controlled by the CacheStaleOnError directive.
2728      [Graham Leggett]
2729
2730   *) htcacheclean: Allow the listing of valid URLs within the cache, with
2731      the option to list entry metadata such as sizes and times. [Graham
2732      Leggett]
2733
2734   *) mod_cache: correctly parse quoted strings in cache headers.
2735      PR 50199 [Nick Kew]
2736
2737   *) mod_cache: Allow control over the base URL of reverse proxied requests
2738      using the CacheKeyBaseURL directive, so that the cache key can be
2739      calculated from the endpoint URL instead of the server URL. [Graham
2740      Leggett]
2741
2742   *) mod_cache: CacheLastModifiedFactor, CacheStoreNoStore, CacheStorePrivate,
2743      CacheStoreExpired, CacheIgnoreNoLastMod, CacheDefaultExpire,
2744      CacheMinExpire and CacheMaxExpire can be set per directory/location.
2745      [Graham Leggett]
2746
2747   *) mod_disk_cache: CacheMaxFileSize, CacheMinFileSize, CacheReadSize and
2748      CacheReadTime can be set per directory/location. [Graham Leggett]
2749
2750   *) core: Speed up config parsing if using a very large number of config
2751      files. PR 50002 [andrew cloudaccess net]
2752
2753   *) mod_cache: Support the caching of HEAD requests. [Graham Leggett]
2754
2755   *) htcacheclean: Allow the option to round up file sizes to a given
2756      block size, improving the accuracy of disk usage. [Graham Leggett]
2757
2758   *) mod_ssl: Add authz providers for use with mod_authz_core and its
2759      RequireAny/RequireAll containers: 'ssl' (equivalent to SSLRequireSSL),
2760      'ssl-verify-client' (for use with 'SSLVerifyClient optional'), and
2761      'ssl-require' (expressions with same syntax as SSLRequire).
2762      [Stefan Fritsch]
2763
2764   *) mod_ssl: Make the ssl expression parser thread-safe. It now requires
2765      bison instead of yacc. [Stefan Fritsch]
2766
2767   *) mod_disk_cache: Change on-disk header file format to support the
2768      link of the device/inode of the data file to the matching header
2769      file, and to support the option of not writing a data file when
2770      the data file is empty. [Graham Leggett]
2771
2772   *) core/mod_unique_id: Add generate_log_id hook to allow to use
2773      the ID generated by mod_unique_id as error log ID for requests.
2774      [Stefan Fritsch]
2775
2776   *) mod_cache: Make sure that we never allow a 304 Not Modified response
2777      that we asked for to leak to the client should the 304 response be
2778      uncacheable. PR45341 [Graham Leggett]
2779
2780   *) mod_cache: Add the cache_status hook to register the final cache
2781      decision hit/miss/revalidate. Add optional support for an X-Cache
2782      and/or an X-Cache-Detail header to add the cache status to the
2783      response. PR48241 [Graham Leggett]
2784
2785   *) mod_authz_host: Add 'local' provider that matches connections originating
2786      on the local host. PR 19938. [Stefan Fritsch]
2787
2788   *) Event MPM: Fix crash accessing pollset on worker thread when child
2789      process is exiting.  [Jeff Trawick]
2790
2791   *) core: For process invocation (cgi, fcgid, piped loggers and so forth)
2792      pass the system library path (LD_LIBRARY_PATH or platform-specific
2793      variables) along with the system PATH, by default.  Both should be
2794      overridden together as desired using PassEnv etc; see mod_env.
2795      [William Rowe]
2796
2797   *) mod_cache: Introduce CacheStoreExpired, to allow administrators to
2798      capture a stale backend response, perform If-Modified-Since requests
2799      against the backend, and serving from the cache all 304 responses.
2800      This restores pre-2.2.4 cache behavior.  [William Rowe]
2801
2802   *) mod_rewrite: Introduce <=, >= string comparison operators, and integer
2803      comparators -lt, -le, -eq, -ge, and -gt.  To help bash users and drop
2804      the ambiguity of the symlink test "-ltest", introduce -h or -L as
2805      symlink test operators.  [William Rowe]
2806
2807   *) mod_cache: Give the cache provider the opportunity to choose to cache
2808      or not cache based on the buckets present in the brigade, such as the
2809      presence of a FILE bucket.
2810      [Graham Leggett]
2811
2812   *) mod_authz_core: Allow authz providers to check args while reading the
2813      config and allow to cache parsed args. Move 'all' and 'env' authz
2814      providers from mod_authz_host to mod_authz_core. Add 'method' authz
2815      provider depending on the HTTP method.  [Stefan Fritsch]
2816
2817   *) mod_include: Move the request_rec within mod_include to be
2818      exposed within include_ctx_t. [Graham Leggett]
2819
2820   *) mod_include: Reinstate support for UTF-8 character sets by allowing a
2821      variable being echoed or set to be decoded and then encoded as separate
2822      steps. PR47686 [Graham Leggett]
2823
2824   *) mod_cache: Add a discrete commit_entity() provider function within the
2825      mod_cache provider interface which is called to indicate to the
2826      provider that caching is complete, giving the provider the opportunity
2827      to commit temporary files permanently to the cache in an atomic
2828      fashion. Replace the inconsistent use of error cleanups with a formal
2829      set of pool cleanups attached to a subpool, which is destroyed on error.
2830      [Graham Leggett]
2831
2832   *) mod_cache: Change the signature of the store_body() provider function
2833      within the mod_cache provider interface to support an "in" brigade
2834      and an "out" brigade instead of just a single input brigade. This
2835      gives a cache provider the option to consume only part of the brigade
2836      passed to it, rather than the whole brigade as was required before.
2837      This fixes an out of memory and a request timeout condition that would
2838      occur when the original document was a large file. Introduce
2839      CacheReadSize and CacheReadTime directives to mod_disk_cache to control
2840      the amount of data to attempt to cache at a time. [Graham Leggett]
2841
2842   *) core: Add ErrorLogFormat to allow configuring error log format, including
2843      additional information that is logged once per connection or request. Add
2844      error log IDs for connections and request to allow correlating error log
2845      lines and the corresponding access log entry. [Stefan Fritsch]
2846
2847   *) core: Disable sendfile by default. [Stefan Fritsch]
2848
2849   *) mod_cache: Check the request to determine whether we are allowed
2850      to return cached content at all, and respect a "Cache-Control:
2851      no-cache" header from a client. Previously, "no-cache" would
2852      behave like "max-age=0". [Graham Leggett]
2853
2854   *) mod_cache: Use a proper filter context to hold filter data instead
2855      of misusing the per-request configuration. Fixes a segfault on trunk
2856      when the normal handler is used. [Graham Leggett]
2857
2858   *) mod_cgid: Log a warning if the ScriptSock path is truncated because
2859      it is too long. PR 49388.  [Stefan Fritsch]
2860
2861   *) vhosts: Do not allow _default_ in NameVirtualHost, or mixing *
2862      and non-* ports on NameVirtualHost, or multiple NameVirtualHost
2863      directives for the same address:port, or NameVirtualHost
2864      directives with no matching VirtualHosts, or multiple ip-based
2865      VirtualHost sections for the same address:port.  These were
2866      previously accepted with a warning, but the behavior was
2867      undefined.  [Dan Poirier]
2868
2869   *) mod_remoteip: Fix a segfault when using mod_remoteip in conjunction with
2870      Allow/Deny. PR 49838.  [Andrew Skalski <voltara gmail.com>]
2871
2872   *) core: DirectoryMatch can now match on the end of line character ($),
2873      and sub-directories of matched directories are no longer implicitly
2874      matched.  PR49809 [Eric Covener]
2875
2876   *) Regexps: introduce new higher-level regexp utility including parsing
2877      and executing perl-style regexp ops (e.g s/foo/bar/i) and regexp memory
2878      [Nick Kew]
2879
2880   *) Proxy: support setting source address.  PR 29404
2881      [Multiple contributors iterating through bugzilla,
2882       Aron Ujvari <xanco nikhok.hu>, Aleksey Midenkov <asm uezku.kemsu.ru>,
2883       <dan listening-station.net; trunk version Nick Kew]
2884
2885   *) HTTP protocol: return 400 not 503 if we have to abort due to malformed
2886      chunked encoding. [Nick Kew]
2887
2888 Changes with Apache 2.3.8
2889
2890   *) suexec: Support large log files. PR 45856. [Stefan Fritsch]
2891
2892   *) core: Abort with sensible error message if no or more than one MPM is
2893      loaded. [Stefan Fritsch]
2894
2895   *) mod_proxy: Rename erroronstatus to failonstatus.
2896      [Daniel Ruggeri <DRuggeri primary.net>]
2897
2898   *) mod_dav_fs: Fix broken "creationdate" property.
2899      Regression in version 2.3.7. [Rainer Jung]
2900
2901 Changes with Apache 2.3.7
2902
2903   *) SECURITY: CVE-2010-1452 (cve.mitre.org)
2904      mod_dav, mod_cache, mod_session: Fix Handling of requests without a path
2905      segment. PR 49246 [Mark Drayton, Jeff Trawick]
2906
2907   *) mod_ldap: Properly check the result returned by apr_ldap_init. PR 46076.
2908      [Stefan Fritsch]
2909
2910   *) mod_rewrite: Log errors if rewrite map files cannot be opened. PR 49639.
2911      [Stefan Fritsch]
2912
2913   *) mod_proxy_http: Support the 'ping' property for backend HTTP/1.1 servers
2914      via leveraging 100-Continue as the initial "request".
2915      [Jim Jagielski]
2916
2917   *) core/mod_authz_core: Introduce new access_checker_ex hook that enables
2918      mod_authz_core to bypass authentication if access should be allowed by
2919      IP address/env var/... [Stefan Fritsch]
2920
2921   *) core: Introduce note_auth_failure hook to allow modules to add support
2922      for additional auth types. This makes ap_note_auth_failure() work with
2923      mod_auth_digest again. PR 48807. [Stefan Fritsch]
2924
2925   *) socache modules: return APR_NOTFOUND when a lookup is not found [Nick Kew]
2926
2927   *) mod_authn_socache: new module [Nick Kew]
2928
2929   *) configure: Add reallyall option for --enable-mods-shared. [Stefan Fritsch]
2930
2931   *) Fix Windows build when using VC6. [Gregg L. Smith <lists glewis com>]
2932
2933   *) mod_rewrite: Allow to set environment variables without explicitly
2934      giving a value. [Rainer Jung]
2935
2936   *) mod_rewrite: Remove superfluous EOL from rewrite logging. [Rainer Jung]
2937
2938   *) mod_include: recognise "text/html; parameters" as text/html
2939      PR 49616 [Andrey Chernov <ache nagual.pp.ru>]
2940
2941   *) CGI vars: allow PATH to be set by SetEnv, consistent with LD_LIBRARY_PATH
2942      PR 43906 [Nick Kew]
2943
2944   *) Core: Extra robustness: don't try authz and segfault if authn
2945      fails to set r->user.  Log bug and return 500 instead.
2946      PR 42995 [Nick Kew]
2947
2948   *) HTTP protocol filter: fix handling of longer chunk extensions
2949      PR 49474 [<tee.bee gmx.de>]
2950
2951   *) Update SSL cipher suite and add example for SSLHonorCipherOrder.
2952      [Lars Eilebrecht, Rainer Jung]
2953
2954   *) move AddOutputFilterByType from core to mod_filter.  This should
2955      fix nasty side-effects that happen when content_type is set
2956      more than once in processing a request, and make it fully
2957      compatible with dynamic and proxied contents. [Nick Kew]
2958
2959   *) mod_log_config: Implement logging for sub second timestamps and
2960      request end time.  [Rainer Jung]
2961
2962 Changes with Apache 2.3.6
2963
2964   *) SECURITY: CVE-2009-3555 (cve.mitre.org)
2965      mod_ssl: Comprehensive fix of the TLS renegotiation prefix injection
2966      attack when compiled against OpenSSL version 0.9.8m or later. Introduces
2967      the 'SSLInsecureRenegotiation' directive to reopen this vulnerability
2968      and offer unsafe legacy renegotiation with clients which do not yet
2969      support the new secure renegotiation protocol, RFC 5746.
2970      [Joe Orton, and with thanks to the OpenSSL Team]
2971
2972   *) SECURITY: CVE-2009-3555 (cve.mitre.org)
2973      mod_ssl: A partial fix for the TLS renegotiation prefix injection attack
2974      by rejecting any client-initiated renegotiations. Forcibly disable
2975      keepalive for the connection if there is any buffered data readable. Any
2976      configuration which requires renegotiation for per-directory/location
2977      access control is still vulnerable, unless using OpenSSL >= 0.9.8l.
2978      [Joe Orton, Ruediger Pluem, Hartmut Keil <Hartmut.Keil adnovum.ch>]
2979
2980   *) SECURITY: CVE-2010-0408 (cve.mitre.org)
2981      mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent
2982      when request headers indicate a request body is incoming; not a case of
2983      HTTP_INTERNAL_SERVER_ERROR.  [Niku Toivola <niku.toivola sulake.com>]
2984
2985   *) SECURITY: CVE-2010-0425 (cve.mitre.org)
2986      mod_isapi: Do not unload an isapi .dll module until the request
2987      processing is completed, avoiding orphaned callback pointers.
2988      [Brett Gervasoni <brettg senseofsecurity.com>, Jeff Trawick]
2989
2990   *) core: Filter init functions are now run strictly once per request
2991      before handler invocation.  The init functions are no longer run
2992      for connection filters.  PR 49328.  [Joe Orton]
2993
2994   *) core: Adjust the output filter chain correctly in an internal
2995      redirect from a subrequest, preserving filters from the main
2996      request as necessary.  PR 17629.  [Joe Orton]
2997
2998   *) mod_cache: Explicitly allow cache implementations to cache a 206 Partial
2999      Response if they so choose to do so. Previously an attempt to cache a 206
3000      was arbitrarily allowed if the response contained an Expires or
3001      Cache-Control header, and arbitrarily denied if both headers were missing.
3002      [Graham Leggett]
3003
3004   *) core: Add microsecond timestamp fractions, process id and thread id
3005      to the error log. [Rainer Jung]
3006
3007   *) configure: The "most" module set gets build by default.  [Rainer Jung]
3008
3009   *) configure: Building dynamic modules (DSO) by default.  [Rainer Jung]
3010
3011   *) configure: Fix broken VPATH build when using included APR.
3012      [Rainer Jung]
3013
3014   *) mod_session_crypto: Fix configure problem when building
3015      with APR 2 and for VPATH builds with included APR.
3016      [Rainer Jung]
3017
3018   *) mod_session_crypto: API compatibility with APR 2 crypto and
3019      APR Util 1.x crypto. [Rainer Jung]
3020
3021   *) ab: Fix memory leak with -v2 and SSL. PR 49383.
3022      [Pavel Kankovsky <peak argo troja mff cuni cz>]
3023
3024   *) core: Add per-module and per-directory loglevel configuration.
3025            Add some more trace logging.
3026      mod_rewrite: Replace RewriteLog/RewriteLogLevel with trace log levels.
3027      mod_ssl: Replace LogLevelDebugDump with trace log levels.
3028      mod_ssl/mod_proxy*: Adjust loglevels to be less verbose at levels info
3029            and debug.
3030      mod_dumpio:  Replace DumpIOLogLevel with trace log levels.
3031      [Stefan Fritsch]
3032
3033   *) mod_ldap: LDAP caching was suppressed (and ldap-status handler returns
3034      title page only) when any mod_ldap directives were used in VirtualHost
3035      context.  [Eric Covener]
3036
3037   *) mod_disk_cache: Decline the opportunity to cache if the response is
3038      a 206 Partial Content. This stops a reverse proxied partial response
3039      from becoming cached, and then being served in subsequent responses.
3040      [Graham Leggett]
3041
3042   *) mod_deflate: avoid the risk of forwarding data before headers are set.
3043      PR 49369 [Matthew Steele <mdsteele google.com>]
3044
3045   *) mod_authnz_ldap: Ensure nested groups are checked when the
3046      top-level group doesn't have any direct non-group members
3047      of attributes in AuthLDAPGroupAttribute. [Eric Covener]
3048
3049   *) mod_authnz_ldap: Search or Comparison during authorization phase
3050      can use the credentials from the authentication phase
3051      (AuthLDAPSearchAsUSer,AuthLDAPCompareAsUser).
3052      PR 48340 [Domenico Rotiroti, Eric Covener]
3053
3054   *) mod_authnz_ldap: Allow the initial DN search during authentication
3055      to use the HTTP username/pass instead of an anonymous or hard-coded
3056      LDAP id (AuthLDAPInitialBindAsUser, AuthLDAPInitialBindPattern).
3057      [Eric Covener]
3058
3059   *) mod_authnz_ldap: Publish requested LDAP data with an AUTHORIZE_ prefix
3060      when this module is used for authorization. See AuthLDAPAuthorizePrefix.
3061      PR 45584 [Eric Covener]
3062
3063   *) apxs -q: Stop filtering out ':' characters from the reported values.
3064      PR 45343.  [Bill Cole]
3065
3066   *) prefork MPM: Work around possible crashes on child exit in APR reslist
3067      cleanup code.  PR 43857.  [Tom Donovan]
3068
3069   *) ab: fix number of requests sent by ab when keepalive is enabled.  PR 48497.
3070      [Bryn Dole <dole blekko.com>]
3071
3072   *) Log an error for failures to read a chunk-size, and return 408 instead of
3073      413 when this is due to a read timeout.  This change also fixes some cases
3074      of two error documents being sent in the response for the same scenario.
3075      [Eric Covener] PR49167
3076
3077   *) mod_proxy_balancer: Add new directive BalancerNonce to allow admin
3078      to control/set the nonce used in the balancer-manager application.
3079      [Jim Jagielski]
3080
3081   *) mod_proxy_connect: Support port ranges in AllowConnect. PR 23673.
3082      [Stefan Fritsch]
3083
3084   *) Proxy balancer: support setting error status according to HTTP response
3085      code from a backend.  PR 48939.  [Daniel Ruggeri <DRuggeri primary.net>]
3086
3087   *) htcacheclean: Introduce the ability to clean specific URLs from the
3088      cache, if provided as an optional parameter on the command line.
3089      [Graham Leggett]
3090
3091   *) core: Introduce the IncludeStrict directive, which explicitly fails
3092      server startup if no files or directories match a wildcard path.
3093      [Graham Leggett]
3094
3095   *) htcacheclean: Report additional statistics about entries deleted.
3096      PR 48944. [Mark Drayton mark markdrayton.info]
3097
3098   *) Introduce SSLFIPS directive to support OpenSSL FIPS_mode; permits all
3099      builds of mod_ssl to use 'SSLFIPS off' for portability, but the proper
3100      build of openssl is required for 'SSLFIPS on'.  PR 46270.
3101      [Dr Stephen Henson <steve openssl.org>, William Rowe]
3102
3103   *) mod_proxy_http: Log the port of the remote server in various messages.
3104      PR 48812. [Igor Galić <i galic brainsware org>]
3105
3106   *) mod_reqtimeout: Do not wrongly enforce timeouts for mod_proxy's backend
3107      connections and other protocol handlers (like mod_ftp). [Stefan Fritsch]
3108
3109   *) mod_proxy_ajp: Really regard the operation a success, when the client
3110      aborted the connection. In addition adjust the log message if the client
3111      aborted the connection. [Ruediger Pluem]
3112
3113   *) mod_ssl: Add the 'SSLInsecureRenegotiation' directive, which
3114      allows insecure renegotiation with clients which do not yet
3115      support the secure renegotiation protocol.  [Joe Orton]
3116
3117   *) mod_ssl: Fix a potential I/O hang if a long list of trusted CAs
3118      is configured for client cert auth. PR 46952.  [Joe Orton]
3119
3120   *) core: Only log a 408 if it is no keepalive timeout. PR 39785
3121      [Ruediger Pluem,  Mark Montague <markmont umich.edu>]
3122
3123   *) support/rotatelogs: Add -L option to create a link to the current
3124      log file.  PR 48761 [<lyndon orthanc.ca>, Dan Poirier]
3125
3126   *) mod_ldap: Update LDAPTrustedClientCert to consistently be a per-directory
3127      setting only, matching most of the documentation and examples.
3128      PR 46541 [Paul Reder, Eric Covener]
3129
3130   *) mod_ldap: LDAPTrustedClientCert now accepts CA_DER/CA_BASE64 argument
3131      types previously allowed only in LDAPTrustedGlobalCert. [Eric Covener]
3132
3133   *) mod_negotiation: Preserve query string over multiviews negotiation.
3134      This buglet was fixed for type maps in 2.2.6, but the same issue
3135      affected multiviews and was overlooked.
3136      PR 33112 [Joergen Thomsen <apache jth.net>]
3137
3138   *) mod_ldap: Eliminate a potential crash with multiple LDAPTrustedClientCert
3139      when some are not password-protected. [Eric Covener]
3140
3141   *) Fix startup segfault when the Mutex directive is used but no loaded
3142      modules use httpd mutexes.  PR 48787.  [Jeff Trawick]
3143
3144   *) Proxy: get the headers right in a HEAD request with
3145      ProxyErrorOverride, by checking for an overridden error
3146      before not after going into a catch-all code path.
3147      PR 41646.  [Nick Kew, Stuart Children]
3148
3149   *) support/rotatelogs: Support the simplest log rotation case, log
3150      truncation. Useful when the log is being processed in real time
3151      using a command like tail. [Graham Leggett]
3152
3153   *) support/htcacheclean: Teach it how to write a pid file (modelled on
3154      httpd's writing of a pid file) so that it becomes possible to run
3155      more than one instance of htcacheclean on the same machine.
3156      [Graham Leggett]
3157
3158   *) Log command line on startup, so there's a record of command line
3159      arguments like -f.  PR 48752.  [Dan Poirier]
3160
3161   *) Introduce mod_reflector, a handler capable of reflecting POSTed
3162      request bodies back within the response through the output filter
3163      stack. Can be used to turn an output filter into a web service.
3164      [Graham Leggett]
3165
3166   *) mod_proxy_http: Make sure that when an ErrorDocument is served
3167      from a reverse proxied URL, that the subrequest respects the status
3168      of the original request. This brings the behaviour of proxy_handler
3169      in line with default_handler. PR 47106. [Graham Leggett]
3170
3171   *) Support wildcards in both the directory and file components of
3172      the path specified by the Include directive. [Graham Leggett]
3173
3174   *) mod_proxy, mod_proxy_http: Support remote https proxies
3175      by using HTTP CONNECT.  PR 19188.
3176      [Philippe Dutrueux <lilas evidian.com>, Rainer Jung]
3177
3178   *) apxs: Fix -A and -a options to ignore whitespace in httpd.conf
3179      [Philip M. Gollucci]
3180
3181   *) worker: Don't report server has reached MaxClients until it has.
3182      Add message when server gets within MinSpareThreads of MaxClients.
3183      PR 46996.  [Dan Poirier]
3184
3185   *) mod_session: Session expiry was being initialised, but not updated
3186      on each session save, resulting in timed out sessions when there
3187      should not have been. Fixed. [Graham Leggett]
3188
3189   *) mod_log_config: Add the R option to log the handler used within the
3190      request. [Christian Folini <christian.folini netnea com>]
3191
3192   *) mod_include: Allow fine control over the removal of Last-Modified and
3193      ETag headers within the INCLUDES filter, making it possible to cache
3194      responses if desired. Fix the default value of the SSIAccessEnable
3195      directive.  [Graham Leggett]
3196
3197   *) Add new UnDefine directive to undefine a variable. PR 35350.
3198      [Stefan Fritsch]
3199
3200   *) Make ap_pregsub(), used by AliasMatch and friends, use the same syntax
3201      for regex backreferences as mod_rewrite and mod_include: Remove the use
3202      of '&' as an alias for '$0' and allow to escape any character with a
3203      backslash. PR 48351. [Stefan Fritsch]
3204
3205   *) mod_authnz_ldap: If AuthLDAPCharsetConfig is set, also convert the
3206      password to UTF-8. PR 45318.
3207      [Johannes Müller <joh_m gmx.de>, Stefan Fritsch]
3208
3209   *) ab: Fix calculation of requests per second in HTML output. PR 48594.
3210      [Stefan Fritsch]
3211
3212   *) mod_authnz_ldap: Failures to map a username to a DN, or to check a user
3213      password now result in an informational level log entry instead of
3214      warning level.  [Eric Covener]
3215
3216 Changes with Apache 2.3.5
3217
3218   *) SECURITY: CVE-2010-0434 (cve.mitre.org)
3219      Ensure each subrequest has a shallow copy of headers_in so that the
3220      parent request headers are not corrupted.  Eliminates a problematic
3221      optimization in the case of no request body.  PR 48359
3222      [Jake Scott, William Rowe, Ruediger Pluem]
3223
3224   *) Turn static function get_server_name_for_url() into public
3225      ap_get_server_name_for_url() and use it where appropriate. This
3226      fixes mod_rewrite generating invalid URLs for redirects to IPv6
3227      literal addresses. [Stefan Fritsch]
3228
3229   *) mod_ldap: Introduce new config option LDAPTimeout to set the timeout
3230      for LDAP operations like bind and search. [Stefan Fritsch]
3231
3232   *) mod_proxy, mod_proxy_ftp: Move ProxyFtpDirCharset from mod_proxy to
3233      mod_proxy_ftp. [Takashi Sato]
3234
3235   *) mod_proxy, mod_proxy_connect: Move AllowCONNECT from mod_proxy to
3236      mod_proxy_connect. [Takashi Sato]
3237
3238   *) mod_cache: Do an exact match of the keys defined by
3239      CacheIgnoreURLSessionIdentifiers against the querystring instead of
3240      a partial match.  PR 48401.
3241      [Dodou Wang <wangdong.08 gmail.com>, Ruediger Pluem]
3242
3243   *) mod_proxy_balancer: Fix crash in balancer-manager. [Rainer Jung]
3244
3245   *) Core HTTP: disable keepalive when the Client has sent
3246      Expect: 100-continue
3247      but we respond directly with a non-100 response.
3248      Keepalive here led to data from clients continuing being treated as
3249      a new request.
3250      PR 47087 [Nick Kew]
3251
3252   *) Core: reject NULLs in request line or request headers.
3253      PR 43039 [Nick Kew]
3254
3255   *) Core: (re)-introduce -T commandline option to suppress documentroot
3256      check at startup.
3257      PR 41887 [Jan van den Berg <janvdberg gmail.com>]
3258
3259   *) mod_autoindex: support XHTML as equivalent to HTML in IndexOptions,
3260                     ScanHTMLTitles, ReadmeName, HeaderName
3261      PR 48416 [Dmitry Bakshaev <dab18 izhnet.ru>, Nick Kew]
3262
3263   *) Proxy: Fix ProxyPassReverse with relative URL
3264      Derived (slightly erroneously) from PR 38864 [Nick Kew]
3265
3266   *) mod_headers: align Header Edit with Header Set when used on Content-Type
3267      PR 48422 [Cyril Bonté <cyril.bonte free.fr>, Nick Kew>]
3268
3269   *) mod_headers: Enable multi-match-and-replace edit option
3270      PR 46594 [Nick Kew]
3271
3272   *) mod_filter: enable it to act on non-200 responses.
3273      PR 48377 [Nick Kew]
3274
3275 Changes with Apache 2.3.4
3276
3277   *) Replace AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex,
3278      and WatchdogMutexPath with a single Mutex directive.  Add APIs to
3279      simplify setup and user customization of APR proc and global mutexes.
3280      (See util_mutex.h.)  Build-time setting DEFAULT_LOCKFILE is no longer
3281      respected; set DEFAULT_REL_RUNTIMEDIR instead.  [Jeff Trawick]
3282
3283   *) http_core: KeepAlive no longer accepts other than On|Off.
3284      [Takashi Sato]
3285
3286   *) mod_dav: Remove errno from dav_error interface.  Calls to dav_new_error()
3287      and dav_new_error_tag() must be adjusted to add an apr_status_t parameter.
3288      [Jeff Trawick]
3289
3290   *) mod_authnz_ldap: Add AuthLDAPBindAuthoritative to allow Authentication to
3291      try other providers in the case of an LDAP bind failure.
3292      PR 46608 [Justin Erenkrantz, Joe Schaefer, Tony Stevenson]
3293
3294   *) Build: fix --with-module to work as documented
3295      PR 43881 [Gez Saunders <gez.saunders virgin.net>]
3296
3297 Changes with Apache 2.3.3
3298
3299   *) SECURITY: CVE-2009-3095 (cve.mitre.org)
3300      mod_proxy_ftp: sanity check authn credentials.
3301      [Stefan Fritsch <sf fritsch.de>, Joe Orton]
3302
3303   *) SECURITY: CVE-2009-3094 (cve.mitre.org)
3304      mod_proxy_ftp: NULL pointer dereference on error paths.
3305      [Stefan Fritsch <sf fritsch.de>, Joe Orton]
3306
3307   *) mod_ssl: enable support for ECC keys and ECDH ciphers.  Tested against
3308      OpenSSL 1.0.0b3.  [Vipul Gupta <vipul.gupta sun.com>, Sander Temme]
3309
3310   *) mod_dav: Include uri when logging a PUT error due to connection abort.
3311      PR 38149. [Stefan Fritsch]
3312
3313   *) mod_dav: Return 409 instead of 500 for a LOCK request if the parent
3314      resource does not exist or is not a collection. PR 43465. [Stefan Fritsch]
3315
3316   *) mod_dav_fs: Return 409 instead of 500 for Litmus test case copy_nodestcoll
3317      (a COPY request where the parent of the destination resource does not
3318      exist). PR 39299. [Stefan Fritsch]
3319
3320   *) mod_dav_fs: Don't delete the whole file if a PUT with content-range failed.
3321      PR 42896. [Stefan Fritsch]
3322
3323   *) mod_dav_fs: Make PUT create files atomically and no longer destroy the
3324      old file if the transfer aborted. PR 39815. [Paul Querna, Stefan Fritsch]
3325
3326   *) mod_dav_fs: Remove inode keyed locking as this conflicts with atomically
3327      creating files. On systems with inode numbers, this is a format change of
3328      the DavLockDB. The old DavLockDB must be deleted on upgrade.
3329      [Stefan Fritsch]
3330
3331   *) mod_log_config: Make ${cookie}C correctly match whole cookie names
3332      instead of substrings. PR 28037. [Dan Franklin <dan dan-franklin.com>,
3333      Stefan Fritsch]
3334
3335   *) vhost: A purely-numeric Host: header should not be treated as a port.
3336      PR 44979 [Nick Kew]
3337
3338   *) mod_ldap: Avoid 500 errors with "Unable to set LDAP_OPT_REFHOPLIMIT option to 5"
3339      when built against openldap by using SDK LDAP_OPT_REFHOPLIMIT defaults unless
3340      LDAPReferralHopLimit is explicitly configured.
3341      [Eric Covener]
3342
3343   *) mod_charset_lite: Honor 'CharsetOptions NoImplicitAdd'.
3344      [Eric Covener]
3345
3346   *) mod_ssl: Add support for OCSP Stapling.  PR 43822.
3347      [Dr Stephen Henson <shenson oss-institute.org>]
3348
3349   *) mod_socache_shmcb: Allow parens in file name if cache size is given.
3350      Fixes SSLSessionCache directive mis-parsing parens in pathname.
3351      PR 47945. [Stefan Fritsch]
3352
3353   *) htpasswd: Improve out of disk space handling. PR 30877. [Stefan Fritsch]
3354
3355   *) htpasswd: Use MD5 hash by default on all platforms. [Stefan Fritsch]
3356
3357   *) mod_sed: Reduce memory consumption when processing very long lines.
3358      PR 48024 [Basant Kumar Kukreja <basant.kukreja sun.com>]
3359
3360   *) ab: Fix segfault in case the argument for -n is a very large number.
3361      PR 47178. [Philipp Hagemeister <oss phihag.de>]
3362
3363   *) Allow ProxyPreserveHost to work in <Proxy> sections. PR 34901.
3364      [Stefan Fritsch]
3365
3366   *) configure: Fix THREADED_MPMS so that mod_cgid is enabled again
3367      for worker MPM. [Takashi Sato]
3368
3369   *) mod_dav: Provide a mechanism to obtain the request_rec and pathname
3370      from the dav_resource. [Jari Urpalainen <jari.urpalainen nokia.com>,
3371      Brian France <brian brianfrance.com>]
3372
3373   *) Build: Use install instead of cp if available on installing
3374      modules to avoid segmentation fault. PR 47951. [hirose31 gmail.com]
3375
3376   *) mod_cache: correctly consider s-maxage in cacheability
3377      decisions.  [Dan Poirier]
3378
3379   *) mod_logio/core: Report more accurate byte counts in mod_status if
3380      mod_logio is loaded. PR 25656. [Stefan Fritsch]
3381
3382   *) mod_ldap: If LDAPSharedCacheSize is too small, try harder to purge
3383      some cache entries and log a warning. Also increase the default
3384      LDAPSharedCacheSize to 500000. This is a more realistic size suitable
3385      for the default values of 1024 for LdapCacheEntries/LdapOpCacheEntries.
3386      PR 46749. [Stefan Fritsch]
3387
3388   *) mod_rewrite: Make sure that a hostname:port isn't fully qualified if
3389      the request is a CONNECT request. [Bill Zajac <billz consultla.com>]
3390
3391   *) mod_cache: Teach CacheEnable and CacheDisable to work from within a
3392      Location section, in line with how ProxyPass works. [Graham Leggett]
3393
3394   *) mod_reqtimeout: New module to set timeouts and minimum data rates for
3395      receiving requests from the client. [Stefan Fritsch]
3396
3397   *) core: Fix potential memory leaks by making sure to not destroy
3398      bucket brigades that have been created by earlier filters.
3399      [Stefan Fritsch]
3400
3401   *) core, mod_deflate, mod_sed: Reduce memory usage by reusing bucket
3402      brigades in several places. [Stefan Fritsch]
3403
3404   *) mod_cache: Fix uri_meets_conditions() so that CacheEnable will
3405      match by scheme, or by a wildcarded hostname. PR 40169
3406      [Peter Grandi <pg_asf asf.for.sabi.co.uk>, Graham Leggett]
3407
3408   *) suxec: Allow to log an error if exec fails by setting FD_CLOEXEC
3409      on the log file instead of closing it. PR 10744. [Nicolas Rachinsky]
3410
3411   *) mod_mime: Make RemoveType override the info from TypesConfig.
3412      PR 38330. [Stefan Fritsch]
3413
3414   *) mod_cache: Introduce the option to run the cache from within the
3415      normal request handler, and to allow fine grained control over
3416      where in the filter chain content is cached. Adds CacheQuickHandler
3417      directive.  [Graham Leggett]
3418
3419   *) core: Treat timeout reading request as 408 error, not 400.
3420      Log 408 errors in access log as was done in Apache 1.3.x.
3421      PR 39785 [Nobutaka Mantani <nobutaka nobutaka.org>,
3422      Stefan Fritsch <sf fritsch.de>, Dan Poirier]
3423
3424   *) mod_ssl: Reintroduce SSL_CLIENT_S_DN, SSL_CLIENT_I_DN, SSL_SERVER_S_DN,
3425      SSL_SERVER_I_DN back to the environment variables to be set by mod_ssl.
3426      [Peter Sylvester <peter.sylvester edelweb.fr>]
3427
3428   *) mod_disk_cache: don't cache incomplete responses, per RFC 2616, 13.8.
3429      PR15866.  [Dan Poirier]
3430
3431   *) ab: ab segfaults in verbose mode on https sites
3432      PR46393.  [Ryan Niebur]
3433
3434   *) mod_dav: Allow other modules to become providers and add resource types
3435      to the DAV response. [Jari Urpalainen <jari.urpalainen nokia.com>,
3436      Brian France <brian brianfrance.com>]
3437
3438   *) mod_dav: Allow other modules to add things to the DAV or Allow headers
3439      of an OPTIONS request. [Jari Urpalainen <jari.urpalainen nokia.com>,
3440      Brian France <brian brianfrance.com>]
3441
3442   *) core: Lower memory usage of core output filter.
3443      [Stefan Fritsch <sf sfritsch.de>]
3444
3445   *) mod_mime: Detect invalid use of MultiviewsMatch inside Location and
3446      LocationMatch sections.  PR47754. [Dan Poirier]
3447
3448   *) mod_request: Make sure the KeptBodySize directive rejects values
3449      that aren't valid numbers. [Graham Leggett]
3450
3451   *) mod_session_crypto: Sanity check should the potentially encrypted
3452      session cookie be too short. [Graham Leggett]
3453
3454   *) mod_session.c: Prevent a segfault when session is added but not
3455      configured. [Graham Leggett]
3456
3457   *) htcacheclean: 19 ways to fail, 1 error message. Fixed. [Graham Leggett]
3458
3459   *) mod_auth_digest: Fail server start when nonce count checking
3460      is configured without shared memory, or md5-sess algorithm is
3461      configured. [Dan Poirier]
3462
3463   *) mod_proxy_connect: The connect method doesn't work if the client is
3464      connecting to the apache proxy through an ssl socket. Fixed.
3465      PR29744. [Brad Boyer, Mark Cave-Ayland, Julian Gilbey, Fabrice Durand,
3466      David Gence, Tim Dodge, Per Gunnar Hans, Emmanuel Elango,
3467      Kevin Croft, Rudolf Cardinal]
3468
3469   *) mod_ssl: The error message when SSLCertificateFile is missing should
3470      at least give the name or position of the problematic virtual host
3471      definition. [Stefan Fritsch sf sfritsch.de]
3472
3473   *) mod_auth_digest: Fix null pointer when qop=none. [Dan Poirier]
3474
3475   *) Add support for HTTP PUT to ab. [Jeff Barnes <jbarnesweb yahoo.com>]
3476
3477   *) mod_headers: generalise the envclause to support expression
3478      evaluation with ap_expr parser [Nick Kew]
3479
3480   *) mod_cache: Introduce the thundering herd lock, a mechanism to keep
3481      the flood of requests at bay that strike a backend webserver as
3482      a cached entity goes stale. [Graham Leggett]
3483
3484   *) mod_auth_digest: Fix usage of shared memory and re-enable it.
3485      PR 16057 [Dan Poirier]
3486
3487   *) Preserve Port information over internal redirects
3488      PR 35999 [Jonas Ringh <jonas.ringh cixit.se>]
3489
3490   *) Proxy: unable to connect to a backend is SERVICE_UNAVAILABLE,
3491      rather than BAD_GATEWAY or (especially) NOT_FOUND.
3492      PR 46971 [evanc nortel.com]
3493
3494   *) Various modules: Do better checking of pollset operations in order to
3495      avoid segmentation faults if they fail. PR 46467
3496      [Stefan Fritsch <sf sfritsch.de>]
3497
3498   *) mod_autoindex: Correctly create an empty cell if the description
3499      for a file is missing. PR 47682 [Peter Poeml <poeml suse.de>]
3500
3501   *) ab: Fix broken error messages after resolver or connect() failures.
3502      [Jeff Trawick]
3503
3504   *) SECURITY: CVE-2009-1890 (cve.mitre.org)
3505      Fix a potential Denial-of-Service attack against mod_proxy in a
3506      reverse proxy configuration, where a remote attacker can force a
3507      proxy process to consume CPU time indefinitely.  [Nick Kew, Joe Orton]
3508
3509   *) SECURITY: CVE-2009-1191 (cve.mitre.org)
3510      mod_proxy_ajp: Avoid delivering content from a previous request which
3511      failed to send a request body. PR 46949 [Ruediger Pluem]
3512
3513   *) htdbm: Fix possible buffer overflow if dbm database has very
3514      long values.  PR 30586 [Dan Poirier]
3515
3516   *) core: Return APR_EOF if request body is shorter than the length announced
3517      by the client. PR 33098 [ Stefan Fritsch <sf sfritsch.de>]
3518
3519   *) mod_suexec: correctly set suexec_enabled when httpd is run by a
3520      non-root user and may have insufficient permissions.
3521      PR 42175 [Jim Radford <radford blackbean.org>]
3522
3523   *) mod_ssl: Fix SSL_*_DN_UID variables to use the 'userID' attribute
3524      type.  PR 45107.  [Michael Ströder <michael stroeder.com>,
3525      Peter Sylvester <peter.sylvester edelweb.fr>]
3526
3527   *) mod_proxy_http: fix case sensitivity checking transfer encoding
3528      PR 47383 [Ryuzo Yamamoto <ryuzo.yamamoto gmail.com>]
3529
3530   *) mod_alias: ensure Redirect issues a valid URL.
3531      PR 44020 [HÃ¥kon Stordahl <hakon stordahl.org>]
3532
3533   *) mod_dir: add FallbackResource directive, to enable admin to specify
3534      an action to happen when a URL maps to no file, without resorting
3535      to ErrorDocument or mod_rewrite.  PR 47184 [Nick Kew]
3536
3537   *) mod_cgid: Do not leak the listening Unix socket file descriptor to the
3538      CGI process. PR 47335 [Kornél Pál <kornelpal gmail.com>]
3539
3540   *) mod_rewrite: Remove locking for writing to the rewritelog.
3541      PR 46942 [Dan Poirier <poirier pobox.com>]
3542
3543   *) mod_alias: check sanity in Redirect arguments.
3544      PR 44729 [Sönke Tesch <st kino-fahrplan.de>, Jim Jagielski]
3545
3546   *) mod_proxy_http: fix Host: header for literal IPv6 addresses.
3547      PR 47177 [Carlos Garcia Braschi <cgbraschi gmail.com>]
3548
3549   *) mod_cache: Add CacheIgnoreURLSessionIdentifiers directive to ignore
3550      defined session identifiers encoded in the URL when caching.
3551      [Ruediger Pluem]
3552
3553   *) mod_rewrite: Fix the error string returned by RewriteRule.
3554      RewriteRule returned "RewriteCond: bad flag delimiters" when the 3rd
3555      argument of RewriteRule was not started with "[" or not ended with "]".
3556      PR 45082 [Vitaly Polonetsky <m_vitaly topixoft.com>]
3557
3558   *) Windows: Fix usage message.
3559      [Rainer Jung]
3560
3561   *) apachectl: When passing through arguments to httpd in
3562      non-SysV mode, use the "$@" syntax to preserve arguments.
3563      [Eric Covener]
3564
3565   *) mod_dbd: add DBDInitSQL directive to enable SQL statements to
3566      be run when a connection is opened.  PR 46827
3567      [Marko Kevac <mkevac gmail.com>]
3568
3569   *) mod_cgid: Improve handling of long AF_UNIX socket names (ScriptSock).
3570      PR 47037.  [Jeff Trawick]
3571
3572   *) mod_proxy_ajp: Check more strictly that the backend follows the AJP
3573      protocol. [Mladen Turk]
3574
3575   *) mod_proxy_ajp: Forward remote port information by default.
3576      [Rainer Jung]
3577
3578   *) Allow MPMs to be loaded dynamically, as with most other modules.  Use
3579      --enable-mpms-shared={list|"all"} to enable.  This required changes to
3580      the MPM interfaces.  Removed: mpm.h, mpm_default.h (as an installed
3581      header), APACHE_MPM_DIR, MPM_NAME, ap_threads_per_child,
3582      ap_max_daemons_limit, ap_my_generation, etc.  ap_mpm_query() can't be
3583      called until after the register-hooks phase.  [Jeff Trawick]
3584
3585   *) mod_ssl: Add SSLProxyCheckPeerExpire and SSLProxyCheckPeerCN directives
3586      to enable stricter checking of remote server certificates.
3587      [Ruediger Pluem]
3588
3589   *) ab: Fix a 100% CPU loop on platforms where a failed non-blocking connect
3590      returns EINPROGRESS and a subsequent poll() returns only POLLERR.
3591      Observed on HP-UX.  [Eric Covener]
3592
3593   *) Remove broken support for BeOS, TPF, and even older platforms such
3594      as A/UX, Next, and Tandem.  [Jeff Trawick]
3595
3596   *) mod_proxy_ftp: Add ProxyFtpListOnWildcard directive to allow files with
3597      globbing characters to be retrieved instead of converted into a
3598      directory listing.  PR 46789 [Dan Poirier <poirier pobox.com>]
3599
3600   *) Provide ap_retained_data_create()/ap_retained_data_get() for preservation
3601      of module state across unload/load.  [Jeff Trawick]
3602
3603   *) mod_substitute: Fix a memory leak. PR 44948
3604      [Dan Poirier <poirier pobox.com>]
3605
3606 Changes with Apache 2.3.2
3607
3608   *) mod_mime_magic: Fix detection of compressed content. [Rainer Jung]
3609
3610   *) mod_negotiation: Escape pathes of filenames in 406 responses to avoid
3611      HTML injections and HTTP response splitting.  PR 46837.
3612      [Geoff Keating <geoffk apple.com>]
3613
3614   *) mod_ssl: add support for type-safe STACK constructs in OpenSSL
3615      development HEAD.  PR 45521.  [Kaspar Brand, Sander Temme]
3616
3617   *) ab: Fix maintenance of the pollset to resolve EALREADY errors
3618      with kqueue (BSD/OS X) and excessive CPU with event ports (Solaris).
3619      PR 44584.  Use APR_POLLSET_NOCOPY for better performance with some
3620      pollset implementations.  [Jeff Trawick]
3621
3622   *) mod_disk_cache: The module now turns off sendfile support if
3623      'EnableSendfile off' is defined globally. [Lars Eilebrecht]
3624
3625   *) mod_deflate: Adjust content metadata before bailing out on 304
3626      responses so that the metadata does not differ from 200 response.
3627      [Roy T. Fielding]
3628
3629   *) mod_deflate: Fix creation of invalid Etag headers. We now make sure
3630      that the Etag value is properly quoted when adding the gzip marker.
3631      PR 39727, 45023. [Lars Eilebrecht, Roy T. Fielding]
3632
3633   *) Added 20x22 icons for ODF, SVG, and XML documents.  PR 37185.
3634      [Peter Harlow]
3635
3636   *) Disabled DefaultType directive and removed ap_default_type()
3637      from core.  We now exclude Content-Type from responses for which
3638      a media type has not been configured via mime.types, AddType,
3639      ForceType, or some other mechanism. PR 13986. [Roy T. Fielding]
3640
3641   *) mod_rewrite: Add IPV6 variable to RewriteCond
3642      [Ryan Phillips <ryan-apache trolocsis.com>]
3643
3644   *) core: Enhance KeepAliveTimeout to support a value in milliseconds.
3645      PR 46275. [Takashi Sato]
3646
3647   *) rotatelogs: Allow size units B, K, M, G and combination of
3648      time and size based rotation. [Rainer Jung]
3649
3650   *) rotatelogs: Add flag for verbose (debug) output. [Rainer Jung]
3651
3652   *) mod_ssl: Fix merging of SSLRenegBufferSize directive. PR 46508
3653      [<tlhackque yahoo.com>]
3654
3655   *) core: Translate the the status line to ASCII on EBCDIC platforms in
3656      ap_send_interim_response() and for locally generated "100 Continue"
3657      responses.  [Eric Covener]
3658
3659   *) prefork: Fix child process hang during graceful restart/stop in
3660      configurations with multiple listening sockets.  PR 42829.  [Joe Orton,
3661      Jeff Trawick]
3662
3663   *) mod_session_crypto: Ensure that SessionCryptoDriver can only be
3664      set in the global scope. [Graham Leggett]
3665
3666   *) mod_ext_filter: We need to detect failure to startup the filter
3667      program (a mangled response is not acceptable).  Fix to detect
3668      failure, and offer configuration option either to abort or
3669      to remove the filter and continue.
3670      PR 41120 [Nick Kew]
3671
3672   *) mod_session_crypto: Rewrite the session_crypto module against the
3673      apr_crypto API. [Graham Leggett]
3674
3675   *) mod_auth_form: Fix a pool lifetime issue, don't remove the subrequest
3676      until the main request is cleaned up. [Graham Leggett]
3677
3678 Changes with Apache 2.3.1
3679
3680   *) ap_slotmem: Add in new slot-based memory access API impl., including
3681      2 providers (mod_sharedmem and mod_plainmem) [Jim Jagielski,
3682      Jean-Frederic Clere, Brian Akins <brian.akins turner.com>]
3683
3684   *) mod_include: support generating non-ASCII characters as entities in SSI
3685      PR 25202 [Nick Kew]
3686
3687   *) core/utils: Enhance ap_escape_html API to support escaping non-ASCII chars
3688      PR 25202 [Nick Kew]
3689
3690   *) mod_rewrite: fix "B" flag breakage by reverting r5589343
3691     PR 45529 [Bob Ionescu <bobsiegen googlemail.com>]
3692
3693   *) CGI: return 504 (Gateway timeout) rather than 500 when a script
3694      times out before returning status line/headers.
3695      PR 42190 [Nick Kew]
3696
3697   *) mod_cgid: fix segfault problem on solaris.
3698      PR 39332 [Masaoki Kobayashi <masaoki techfirm.co.jp>]
3699
3700   *) mod_proxy_scgi: Added. [André Malo]
3701
3702   *) mod_cache: Introduce 'no-cache' per-request environment variable
3703      to prevent the saving of an otherwise cacheable response.
3704      [Eric Covener]
3705
3706   *) mod_rewrite: Introduce DiscardPathInfo|DPI flag to stop the troublesome
3707      way that per-directory rewrites append the previous notion of PATH_INFO
3708      to each substitution before evaluating subsequent rules.
3709      PR 38642 [Eric Covener]
3710
3711   *) mod_cgid: Do not add an empty argument when calling the CGI script.
3712      PR 46380 [Ruediger Pluem]
3713
3714   *) scoreboard: Remove unused sb_type from process_score.
3715      [Torsten Foertsch <torsten.foertsch gmx.net>, Chris Darroch]
3716
3717   *) mod_ssl: Add SSLRenegBufferSize directive to allow changing the
3718      size of the buffer used for the request-body where necessary
3719      during a per-dir renegotiation.  PR 39243.  [Joe Orton]
3720
3721   *) mod_proxy_fdpass: New module to pass a client connection over to a separate
3722      process that is reading from a unix daemon socket.
3723
3724   *) mod_ssl: Improve environment variable extraction to be more
3725      efficient and to correctly handle DNs with duplicate tags.
3726      PR 45975.  [Joe Orton]
3727
3728   *) Remove the obsolete serial attribute from the RPM spec file. Compile
3729      against the external pcre. Add missing binaries fcgistarter, and
3730      mod_socache* and mod_session*. [Graham Leggett]
3731
3732 Changes with Apache 2.3.0
3733
3734   *) mod_ratelimit: New module to do bandwidth rate limiting. [Paul Querna]
3735
3736   *) Remove X-Pad header which was added as a work around to a bug in
3737      Netscape 2.x to 4.0b2. [Takashi Sato <takashi lans-tv.com>]
3738
3739   *) Add DTrace Statically Defined Tracing (SDT) probes.
3740     [Theo Schlossnagle <jesus omniti.com>, Paul Querna]
3741
3742   *) mod_proxy_balancer: Move all load balancing implementations
3743      as individual, self-contained mod_proxy submodules under
3744      modules/proxy/balancers [Jim Jagielski]
3745
3746   *) Rename APIs to include ap_ prefix:
3747         find_child_by_pid -> ap_find_child_by_pid
3748         suck_in_APR -> ap_suck_in_APR
3749         sys_privileges_handlers -> ap_sys_privileges_handlers
3750         unixd_accept -> ap_unixd_accept
3751         unixd_config -> ap_unixd_config
3752         unixd_killpg -> ap_unixd_killpg
3753         unixd_set_global_mutex_perms -> ap_unixd_set_global_mutex_perms
3754         unixd_set_proc_mutex_perms -> ap_unixd_set_proc_mutex_perms
3755         unixd_set_rlimit -> ap_unixd_set_rlimit
3756      [Paul Querna]
3757
3758   *) mod_lbmethod_heartbeat: New module to load balance mod_proxy workers
3759      based on heartbeats. [Paul Querna]
3760
3761   *) mod_heartmonitor: New module to collect heartbeats, and write out a file
3762      so that other modules can load balance traffic as needed. [Paul Querna]
3763
3764   *) mod_heartbeat: New module to generate multicast heartbeats to know if a
3765      server is online. [Paul Querna]
3766
3767   *) mod_buffer: Honour the flush bucket and flush the buffer in the
3768      input filter. Make sure that metadata buckets are written to
3769      the buffer, not to the final brigade. [Graham Leggett]
3770
3771   *) mod_buffer: Optimise the buffering of heap buckets when the heap
3772      buckets stay exactly APR_BUCKET_BUFF_SIZE long. [Graham Leggett,
3773      Ruediger Pluem]
3774
3775   *) mod_buffer: Optional support for buffering of the input and output
3776      filter stacks. Can collapse many small buckets into fewer larger
3777      buckets, and prevents excessively small chunks being sent over
3778      the wire. [Graham Leggett]
3779
3780   *) mod_privileges: new module to make httpd on Solaris privileges-aware
3781      and to enable different virtualhosts to run with different
3782      privileges and Unix user/group IDs [Nick Kew]
3783
3784   *) mod_mem_cache: this module has been removed. [William Rowe]
3785
3786   *) authn/z: Remove mod_authn_default and mod_authz_default.
3787      [Chris Darroch]
3788
3789   *) authz: Fix handling of authz configurations, make default authz
3790      logic replicate 2.2.x authz logic, and replace <Satisfy*>, Reject,
3791      and AuthzMergeRules directives with Match, <Match*>, and AuthzMerge
3792      directives.  [Chris Darroch]
3793
3794   *) mod_authn_core: Prevent crash when provider alias created to
3795      provider which is not yet registered.  [Chris Darroch]
3796
3797   *) mod_authn_core: Add AuthType of None to support disabling
3798      authentication.  [Chris Darroch]
3799
3800   *) core: Allow <Limit> and <LimitExcept> directives to nest, and
3801      constrain their use to conform with that of other access control
3802      and authorization directives.  [Chris Darroch]
3803
3804   *) unixd: turn existing code into a module, and turn the set user/group
3805      and chroot into a child_init function. [Nick Kew]
3806
3807   *) mod_dir: Support "DirectoryIndex disabled"
3808      Suggested By André Warnier <aw ice-sa.com> [Eric Covener]
3809
3810   *) mod_ssl: Send Content-Type application/ocsp-request for POST requests to
3811      OSCP responders. PR 46014 [Dr Stephen Henson <steve openssl.org>]
3812
3813   *) mod_authnz_ldap: don't return NULL-valued environment variables to
3814      other modules.  PR 39045 [Francois Pesce <francois.pesce gmail.com>]
3815
3816   *) Don't adjust case in pathname components that are not of interest
3817      to mod_mime.  Fixes mod_negotiation's use of such components.
3818      PR 43250 [Basant Kumar Kukreja <basant.kukreja sun.com>]
3819
3820   *) Be tolerant in what you accept - accept slightly broken
3821      status lines from a backend provided they include a valid status code.
3822      PR 44995 [Rainer Jung <rainer.jung kippdata.de>]
3823
3824   *) New module mod_sed: filter Request/Response bodies through sed
3825      [Basant Kumar Kukreja <basant.kukreja sun.com>]
3826
3827   *) mod_auth_form: Make sure that basic authentication is correctly
3828      faked directly after login. [Graham Leggett]
3829
3830   *) mod_session_cookie, mod_session_dbd: Make sure cookies are set both
3831      within the output headers and error output headers, so that the
3832      session is maintained across redirects. [Graham Leggett]
3833
3834   *) mod_auth_form: Make sure the logged in user is populated correctly
3835      after a form login. Fixes a missing REMOTE_USER variable directly
3836      following a login. [Graham Leggett]
3837
3838   *) mod_session_cookie: Make sure that cookie attributes are correctly
3839      included in the blank cookie when cookies are removed. This fixes an
3840      inability to log out when using mod_auth_form. [Graham Leggett]
3841
3842   *) mod_session: Prevent a segfault when a CGI script sets a cookie with a
3843      null value. [David Shane Holden <dpejesh apache.org>]
3844
3845   *) core, authn/z: Determine registered authn/z providers directly in
3846      ap_setup_auth_internal(), which allows optional functions that just
3847      wrapped ap_list_provider_names() to be removed from authn/z modules.
3848      [Chris Darroch]
3849
3850   *) authn/z: Convert common provider version strings to macros.
3851      [Chris Darroch]
3852
3853   *) core: When testing for slash-terminated configuration paths in
3854      ap_location_walk(), don't look past the start of an empty string
3855      such as that created by a <Location ""> directive.
3856      [Chris Darroch]
3857
3858   *) core, mod_proxy: If a kept_body is present, it becomes safe for
3859      subrequests to support message bodies. Make sure that safety
3860      checks within the core and within the proxy are not triggered
3861      when kept_body is present. This makes it possible to embed
3862      proxied POST requests within mod_include. [Graham Leggett]
3863
3864   *) mod_auth_form: Make sure the input filter stack is properly set
3865      up before reading the login form. Make sure the kept body filter
3866      is correctly inserted to ensure the body can be read a second
3867      time safely should the authn be successful. [Graham Leggett,
3868      Ruediger Pluem]
3869
3870   *) mod_request: Insert the KEPT_BODY filter via the insert_filter
3871      hook instead of during fixups. Add a safety check to ensure the
3872      filters cannot be inserted more than once. [Graham Leggett,
3873      Ruediger Pluem]
3874
3875   *) ap_cache_cacheable_headers_out() will (now) always
3876      merge an error headers _before_ clearing them and _before_
3877      merging in the actual entity headers and doing normal
3878      hop-by-hop cleansing. [Dirk-Willem van Gulik].
3879
3880   *) cache: retire ap_cache_cacheable_hdrs_out() which was used
3881      for both in- and out-put headers; and replace it by a single
3882      ap_cache_cacheable_headers() wrapped in a in- and out-put
3883      specific ap_cache_cacheable_headers_in()/out(). The latter
3884      which will also merge error and ensure content-type. To keep
3885      cache modules consistent with ease. This API change bumps
3886      up the minor MM by one [Dirk-Willem van Gulik].
3887
3888   *) Move the KeptBodySize directive, kept_body filters and the
3889      ap_parse_request_body function out of the http module and into a
3890      new module called mod_request, reducing the size of the core.
3891      [Graham Leggett]
3892
3893   *) mod_dbd: Handle integer configuration directive parameters with a
3894      dedicated function.
3895
3896   *) Change the directives within the mod_session* modules to be valid
3897      both inside and outside the location/directory sections, as
3898      suggested by wrowe. [Graham Leggett]
3899
3900   *) mod_auth_form: Add a module capable of allowing end users to log
3901      in using an HTML form, storing the credentials within mod_session.
3902      [Graham Leggett]
3903
3904   *) Add a function to the http filters that is able to parse an HTML
3905      form request with the type of application/x-www-form-urlencoded.
3906      [Graham Leggett]
3907
3908   *) mod_session_crypto: Initialise SSL in the post config hook.
3909      [Ruediger Pluem, Graham Leggett]
3910
3911   *) mod_session_dbd: Add a session implementation capable of storing
3912      session information in a SQL database via the dbd interface. Useful
3913      for sites where session privacy is important. [Graham Leggett]
3914
3915   *) mod_session_crypto: Add a session encoding implementation capable
3916      of encrypting and decrypting sessions wherever they may be stored.
3917      Introduces a level of privacy when sessions are stored on the
3918      browser. [Graham Leggett]
3919
3920   *) mod_session_cookie: Add a session implementation capable of storing
3921      session information within cookies on the browser. Useful for high
3922      volume sites where server bound sessions are too resource intensive.
3923      [Graham Leggett]
3924
3925   *) mod_session: Add a generic session interface to unify the different
3926      attempts at saving persistent sessions across requests.
3927      [Graham Leggett]
3928
3929   *) core, authn/z: Avoid calling access control hooks for internal requests
3930      with configurations which match those of initial request.  Revert to
3931      original behaviour (call access control hooks for internal requests
3932      with URIs different from initial request) if any access control hooks or
3933      providers are not registered as permitting this optimization.
3934      Introduce wrappers for access control hook and provider registration
3935      which can accept additional mode and flag data.  [Chris Darroch]
3936
3937   *) Introduced ap_expr API for expression evaluation.
3938      This is adapted from mod_include, which is the first module
3939      to use the new API.
3940      [Nick Kew]
3941
3942   *) mod_authz_dbd: When redirecting after successful login/logout per
3943      AuthzDBDRedirectQuery, do not report authorization failure, and use
3944      first row returned by database query instead of last row.
3945      [Chris Darroch]
3946
3947   *) mod_ldap: Correctly return all requested attribute values
3948      when some attributes have a null value.
3949      PR 44560 [Anders Kaseorg <anders kaseorg.com>]
3950
3951   *) core: check symlink ownership if both FollowSymlinks and
3952      SymlinksIfOwnerMatch are set [Nick Kew]
3953
3954   *) core: fix origin checking in SymlinksIfOwnerMatch
3955      PR 36783 [Robert L Mathews <rob-apache.org.bugs tigertech.net>]
3956
3957   *) Activate mod_cache, mod_file_cache and mod_disk_cache as part of the
3958      'most' set for '--enable-modules' and '--enable-shared-mods'. Include
3959      mod_mem_cache in 'all' as well. [Dirk-Willem van Gulik]
3960
3961   *) Also install mod_so.h, mod_rewrite.h and mod_cache.h; as these
3962      contain public function declarations which are useful for
3963      third party module authors. PR 42431 [Dirk-Willem van Gulik].
3964
3965   *) mod_dir, mod_negotiation: pass the output filter information
3966      to newly created sub requests; as these are later on used
3967      as true requests with an internal redirect. This allows for
3968      mod_cache et.al. to trap the results of the redirect.
3969      [Dirk-Willem van Gulik, Ruediger Pluem]
3970
3971   *) mod_ldap: Add support (taking advantage of the new APR capability)
3972      for ldap rebind callback while chasing referrals. This allows direct
3973      searches on LDAP servers (in particular MS Active Directory 2003+)
3974      using referrals without the use of the global catalog.
3975      PRs 26538, 40268, and 42557 [Paul J. Reder]
3976
3977   *) ApacheMonitor.exe: Introduce --kill argument for use by the
3978      installer.  This will permit the installation tool to remove
3979      all running instances before attempting to remove the .exe.
3980      [William Rowe]
3981
3982   *) mod_ssl: Add support for OCSP validation of client certificates.
3983      PR 41123.  [Marc Stern <marc.stern approach.be>, Joe Orton]
3984
3985   *) mod_serf: New module for Reverse Proxying. [Paul Querna]
3986
3987   *) core: Add the option to keep aside a request body up to a certain
3988      size that would otherwise be discarded, to be consumed by filters
3989      such as mod_include. When enabled for a directory, POST requests
3990      to shtml files can be passed through to embedded scripts as POST
3991      requests, rather being downgraded to GET requests. [Graham Leggett]
3992
3993   *) mod_ssl: Fix TLS upgrade (RFC 2817) support.  PR 41231.  [Joe Orton]
3994
3995   *) scoreboard: Correctly declare ap_time_process_request.
3996      PR 43789 [Tom Donovan <Tom.Donovan acm.org>]
3997
3998   *) core; scoreboard: ap_get_scoreboard_worker(sbh) now takes the sbh member
3999      from the connection rec, ap_get_scoreboard_worker(proc, thread) will now
4000      provide the unusual legacy lookup.  [William Rowe]
4001
4002   *) mpm winnt: fix null pointer dereference
4003      PR 42572 [Davi Arnaut]
4004
4005   *) mod_authnz_ldap, mod_authn_dbd: Tidy up the code to expose authn
4006      parameters to the environment. Improve portability to
4007      EBCDIC machines by using apr_toupper(). [Martin Kraemer]
4008
4009   *) mod_ldap, mod_authnz_ldap: Add support for nested groups (i.e. the ability
4010      to authorize an authenticated user via a "require ldap-group X" directive
4011      where the user is not in group X, but is in a subgroup contained in X.
4012      PR 42891 [Paul J. Reder]
4013
4014   *) mod_ssl: Add support for caching SSL Sessions in memcached. [Paul Querna]
4015
4016   *) apxs: Enhance -q flag to print all known variables and their values
4017      when invoked without variable name(s).
4018      [William Rowe, Sander Temme]
4019
4020   *) apxs: Eliminate run-time check for mod_so.  PR 40653.
4021      [David M. Lee <dmlee crossroads.com>]
4022
4023   *) beos MPM: Create pmain pool and run modules' child_init hooks when
4024      entering ap_mpm_run(), then destroy pmain when exiting ap_mpm_run().
4025      [Chris Darroch]
4026
4027   *) netware MPM: Destroy pmain pool when exiting ap_mpm_run() so that
4028      cleanups registered in modules' child_init hooks are performed.
4029      [Chris Darroch]
4030
4031   *) Fix issue which could cause error messages to be written to access logs
4032      on Win32.  PR 40476.  [Tom Donovan <Tom.Donovan acm.org>]
4033
4034   *) The LockFile directive, which specifies the location of
4035      the accept() mutex lockfile, is deprecated. Instead, the
4036      AcceptMutex directive now takes an optional lockfile
4037      location parameter, ala SSLMutex. [Jim Jagielski]
4038
4039   *) mod_authn_dbd: Export any additional columns queried in the SQL select
4040      into the environment with the name AUTHENTICATE_<COLUMN>. This brings
4041      mod_authn_dbd behaviour in line with mod_authnz_ldap. [Graham Leggett]
4042
4043   *) mod_dbd: Key the storage of prepared statements on the hex string
4044      value of server_rec, rather than the server name, as the server name
4045      may change (eg when the server name is set) at any time, causing
4046      weird behaviour in modules dependent on mod_dbd. [Graham Leggett]
4047
4048   *) mod_proxy_fcgi: Added win32 build. [Mladen Turk]
4049
4050   *) sendfile_nonblocking() takes the _brigade_ as an argument, gets
4051      the first bucket from the brigade, finds it not to be a FILE
4052      bucket and barfs. The fix is to pass a bucket rather than a brigade.
4053      [Niklas Edmundsson <nikke acc.umu.se>]
4054
4055   *) mod_rewrite: support rewritemap by SQL query [Nick Kew]
4056
4057   *) ap_get_server_version() has been removed.  Third-party modules must
4058      now use ap_get_server_banner() or ap_get_server_description().
4059      [Jeff Trawick]
4060
4061   *) All MPMs: Introduce a check_config phase between pre_config and
4062      open_logs, to allow modules to review interdependent configuration
4063      directive values and adjust them while messages can still be logged
4064      to the console.  Handle relevant MPM directives during this phase
4065      and format messages for both the console and the error log, as
4066      appropriate.  [Chris Darroch]
4067
4068   *) core: Do not allow internal redirects like the DirectoryIndex of mod_dir
4069      to circumvent the symbolic link checks imposed by FollowSymLinks and
4070      SymLinksIfOwnerMatch. [Nick Kew, Ruediger Pluem, William Rowe]
4071
4072   *) New SSLLogLevelDebugDump [ None (default) | IO (not bytes) | Bytes ]
4073      configures the I/O Dump of SSL traffic, when LogLevel is set to Debug.
4074      The default is none as this is far greater debugging resolution than
4075      the typical administrator is prepared to untangle.  [William Rowe]
4076
4077   *) mod_disk_cache: If possible, check if the size of an object to cache is
4078      within the configured boundaries before actually saving data.
4079      [Niklas Edmundsson <nikke acc.umu.se>]
4080
4081   *) Worker and event MPMs: Remove improper scoreboard updates which were
4082      performed in the event of a fork() failure.  [Chris Darroch]
4083
4084   *) Add support for fcgi:// proxies to mod_rewrite.
4085      [Markus Schiegl <ms schiegl.com>]
4086
4087   *) Remove incorrect comments from scoreboard.h regarding conditional
4088      loading of worker_score structure with mod_status, and remove unused
4089      definitions relating to old life_status field.
4090      [Chris Darroch <chrisd pearsoncmg.com>]
4091
4092   *) Remove allocation of memory for unused array of lb_score pointers
4093      in ap_init_scoreboard().  [Chris Darroch <chrisd pearsoncmg.com>]
4094
4095   *) Add mod_proxy_fcgi, a FastCGI back end for mod_proxy.
4096      [Garrett Rooney, Jim Jagielski, Paul Querna]
4097
4098   *) Event MPM: Fill in the scoreboard's tid field. PR 38736.
4099      [Chris Darroch <chrisd pearsoncmg.com>]
4100
4101   *) mod_charset_lite: Remove Content-Length when output filter can
4102      invalidate it.  Warn when input filter can invalidate it.
4103      [Jeff Trawick]
4104
4105   *) Authz: Add the new module mod_authn_core that will provide common
4106      authn directives such as 'AuthType', 'AuthName'.  Move the directives
4107      'AuthType' and 'AuthName' out of the core module and merge mod_authz_alias
4108      into mod_authn_core. [Brad Nicholes]
4109
4110   *) Authz: Move the directives 'Order', 'Allow', 'Deny' and 'Satisfy'
4111      into the new module mod_access_compat which can be loaded to provide
4112      support for these directives.
4113      [Brad Nicholes]
4114
4115   *) Authz: Move the 'Require' directive from the core module as well as
4116      add the directives '<SatisfyAll>', '<SatisfyOne>', '<RequireAlias>'
4117      and 'Reject' to mod_authz_core. The new directives introduce 'AND/OR'
4118      logic into the authorization processing. [Brad Nicholes]
4119
4120   *) Authz: Add the new module mod_authz_core which acts as the
4121      authorization provider vector and contains common authz
4122      directives. [Brad Nicholes]
4123
4124   *) Authz: Renamed mod_authz_dbm authz providers from 'group' and
4125      'file-group' to 'dbm-group' and 'dbm-file-group'. [Brad Nicholes]
4126
4127   *) Authz: Added the new authz providers 'env', 'ip', 'host', 'all' to handle
4128      host-based access control provided by mod_authz_host and invoked
4129      through the 'Require' directive. [Brad Nicholes]
4130
4131   *) Authz: Convert all of the authz modules from hook based to
4132      provider based. [Brad Nicholes]
4133
4134   *) mod_cache: Add CacheMinExpire directive to set the minimum time in
4135      seconds to cache a document.
4136      [Brian Akins <brian.akins turner.com>, Ruediger Pluem]
4137
4138   *) mod_authz_dbd: SQL authz with Login/Session support [Nick Kew]
4139
4140   *) Fix typo in ProxyStatus syntax error message.
4141      [Christophe Jaillet <christophe.jaillet wanadoo.fr>]
4142
4143   *) Asynchronous write completion for the Event MPM.  [Brian Pane]
4144
4145   *) Added an End-Of-Request bucket type.  The logging of a request and
4146      the freeing of its pool are now done when the EOR bucket is destroyed.
4147      This has the effect of delaying the logging until right after the last
4148      of the response is sent; ap_core_output_filter() calls the access logger
4149      indirectly when it destroys the EOR bucket.  [Brian Pane]
4150
4151   *) Rewrite of logresolve support utility: IPv6 addresses are now supported
4152      and the format of statistical output has changed. [Colm MacCarthaigh]
4153
4154   *) Rewrite of ap_coreoutput_filter to do nonblocking writes  [Brian Pane]
4155
4156   *) Added new connection states for handler and write completion
4157      [Brian Pane]
4158
4159   *) mod_cgid: Refuse to work on Solaris 10 due to OS bugs.  PR 34264.
4160      [Justin Erenkrantz]
4161
4162   *) Teach mod_ssl to use arbitrary OIDs in an SSLRequire directive,
4163      allowing string-valued client certificate attributes to be used for
4164      access control, as in: SSLRequire "value" in OID("1.3.6.1.4.1.18060.1")
4165      [Martin Kraemer, David Reid]
4166
4167   [Apache 2.3.0-dev includes those bug fixes and changes with the
4168    Apache 2.2.xx tree as documented, and except as noted, below.]
4169
4170 Changes with Apache 2.2.x and later:
4171
4172   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup
4173
4174 Changes with Apache 2.0.x and later:
4175
4176   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup
4177