]> granicus.if.org Git - apache/blob - CHANGES
If ProxyPassReverse is used for reverse mapping of relative redirects, subsequent...
[apache] / CHANGES
1                                                          -*- coding: utf-8 -*-
2 Changes with Apache 2.5.1
3
4   *) mod_proxy: If ProxyPassReverse is used for reverse mapping of relative
5      redirects, subsequent ProxyPassReverse statements, whether they are
6      relative or absolute, may fail.  PR 60408.  [Peter Haworth <pmh1wheel gmail.com>]
7
8   *) mod_ratelimit: Don't interfere with "chunked" encoding, fixing regression
9      introduced in 2.4.34.  PR 62568.  [Yann Ylavic]
10
11   *) http: Enforce consistently no response body with both 204 and 304
12      statuses.  [Yann Ylavic]
13
14   *) mod_proxy_http: forward 100-continue, and minimize race conditions when
15      reusing backend connections. PR 60330. [Yann Ylavic, Jean-Frederic Clere]
16
17   *) mod_proxy: Remove load order and link dependency between mod_lbmethod_*
18      modules and mod_proxy. PR 62557. [Ruediger Pluem, William Rowe]
19
20   *) mod_md: more robust handling of http-01 challenges and hands-off when module
21      should not be involved, e.g. challenge setup by another ACME client. [Stefan Eissing]
22
23   *) ru, zh-cn and zh-tw translations of errordocs have been added.
24      Contributed by Alexander Gaganashvili and CodeingBoy
25   
26   *) mod_authz_core: If several parameters are used in a AuthzProviderAlias
27      directive, if these parameters are not enclosed in quotation mark, only
28      the first one is handled. The other ones are silently ignored.
29      Add a message to warn about such a spurious configuration.
30      PR 62469 [Hank Ibell <hwibell gmail.com>, Christophe Jaillet]
31
32   *) mod_proxy_wstunnel: Add default schema ports for 'ws' and 'wss'.
33      PR 62480. [Lubos Uhliarik <luhliari redhat.com>}
34   
35   *) http: Fix small memory leak per request when handling persistent
36      connections.  [Ruediger Pluem, Joe Orton]
37
38   *) mod_remoteip: Fix RemoteIP{Trusted,Internal}ProxyList loading broken by 2.4.30.
39      PR 62220.  [Chritophe Jaillet, Yann Ylavic]
40
41   *) mod_userdir: If several directories are given in a UserDir directive, only files
42      in the first existing one are checked. If the file is not found there, the
43      other possible directories are not checked. The doc clearly states that they
44      will be checked one by one, until a match is found or an external redirect is
45      performed.  PR 59636.
46      [Christophe Jaillet]
47
48   *) mod_proxy: Fix a corner case where the ProxyPassReverseCookieDomain or
49      ProxyPassReverseCookiePath directive could fail to update correctly 
50      'domain=' or 'path=' in the 'Set-Cookie' header.  PR 61560.
51      [Christophe Jaillet]
52
53   *) mod_slotmem_shm: Add generation number to shm filename to fix races
54      with graceful restarts. PRs 62044 and 62308.  [Jim Jagielski, Yann Ylavic]
55
56   *) mod_rewrite: Only create the global mutex used by "RewriteMap prg:" when
57      this type of map is present in the configuration.  PR62311.  
58      [Hank Ibell <hwibell gmail.com>]
59
60   *) mod_ldap: Abort on LDAP locking errors. [Eric Covener]
61
62   *) mod_ssl: Support loading certificates and private keys from the
63      PKCS#11 OpenSSL engine.  [Anderson Sasaki <ansasaki redhat.com>,
64      Joe Orton]
65
66   *) mod_proxy_html: Fix variable interpolation and memory allocation failure
67      in ProxyHTMLURLMap.  [Ewald Dieterich <ewald mailbox.org>]
68
69   *) core: In ONE_PROCESS/debug mode, cleanup everything when exiting.
70      [Yann Ylavic]
71
72   *) mod_http2: adding an abort function to slave connections' pools, so out-of-memory
73      events lead to a control process abort, as on HTTP/1.x connections. [Stefan Eissing]
74   
75   *) mod_http2: adding regular memory cleanup when transferring large response bodies. This
76      reduces memory footprint and avoids memory exhaustion when transferring large files
77      on 32-bit architectures. Fixes PR 62325. [Stefan Eissing]
78
79   *) http: LimitRequestBody applies to proxied requests.  [Yann Ylavic]
80
81   *) mod_logio: Add LogIOTrackTTFU and %^FU logformat to log the time
82      difference between request start and last request body byte read (finished upload).
83      [Rainer Jung]
84
85   *) mod_ssl: add support for TLSv1.3 (tested with OpenSSL v1.1.1-pre4, other libs may
86      need more sugar). SSL(Proxy)CipherSuite now has an optional first parameter for the
87      protocol the ciphers are for.
88      Directive "SSLVerifyClient" now triggers certificate retrieval from the client (this
89      is not fully tested - but fails in similar fashion as in TLSv1.2 in my setups).
90      Verifying the client fails exactly the same for HTTP/2 connections for all SSL protocols,
91      as this would need to trigger the master connection thread - which we do not support
92      right now.
93      Renegotiation of ciphers is intentionally ignored for TLSv1.3 connections. "SSLCipherSuite"
94      does not allow to specify TLSv1.3 ciphers in a directory context (because it cannot work) and
95      TLSv1.2 or lower ciphers are not relevant, as cipher suites are completely separate.
96      This means there is a bit if a world split when simultaneously having TLSv1.2 and TLSv1.3
97      connections to the same server.
98      [Stefan Eissing]
99
100   *) mod_ssl: proper checks for libressl 2.07/8 and its TLSv1_3 support, see PR 62236.
101      [Bernard Spil <brnrd@freebsd.org>]
102   
103   *) mod_http2: on level trace2, log any unsuccessful HTTP/2 direct connection upgrade
104      with base64 encoding to unify its appearance in possible bug reports. [Stefan Eissing]
105
106   *) mod_cgi: Add CGIScriptTimeout to make mod_cgi's timeout per-directory and
107      independent of the core Timeout directive.  PR 62229.  
108      [Hank Ibell <hwibell gmail.com>]
109
110   *) mod_ssl: heavily simplified SSLPolicy. No more user defines, no propxy policies,
111      just the basic "modern", "intermediate" and "old" as specified by Mozilla security.
112      [Stefan Eissing]
113
114   *) mod_md: fixes error in renew window calculation that may lead to mod_md running
115      watchdog in a tight loop until actual renewal becomes necessary. [Stefan Eissing]
116
117   *) mod_md: /.well-known/acme-challenge requests that cannot be answered for hostnames
118      outside the configured MDs are free to be answered by other handlers. This allows
119      co-existance between mod_md and other ACME clients on the same server (implements PR62189).
120      [Stefan Eissing, Arkadiusz Miskiewicz <arekm@maven.pl>]
121
122   *) core: Create a conn_config_t structure to hold an extendable core config rather
123      than consuming the whole pointer with the connection socket. [Graham Leggett]
124
125   *) core: adding AP_DECLARE for ap_parse_vhost_addrs() and minor bumb mmn. Resolves
126      building mod_ssl on Windows. [Stefan Eissing, Gregg Smith]
127
128   *) mod_http2: discourage gzip/brotli content encoding on http2-status responses as
129      they are inserted into the reponse when filters are already done. [Stefan Eissing]
130
131   *) core: adding defines to allow interworking with honggfuzz without
132      further patches. [Stefan Eissing, Robert Swiecki]
133
134   *) mod_headers: 'RequestHeader set|edit|edit_r Content-Type X' could 
135      inadvertently modify the Content-Type _response_ header. Applies to
136      Content-Type only and likely to only affect static file responses.
137      [Eric Covener]
138
139   *) mod_cgi: Improve AH01215 messages to make it more clear that the message is
140      the CGI scripts stderr output. PR 61980. [Hank Ibell <hwibell gmail.com>]
141
142   *) mod_headers: Allow 'Header unset Content-Type' to remove the Content-Type
143      header. PR 61983. [Hank Ibell <hwibell gmail.com>]
144
145   *) mod_md v1.1.8: new configuration directive "MDBaseServer on|off" to allow/inhibit 
146      management of the base server domains outside VirtualHosts. By default, this is "off", 
147      e.g. mod_md will not manage certificates or perform https: redirections on the 
148      base server. [Stefan Eissing]
149               
150   *) core: Add "AcceptErrorsNonFatal" to allow ECONNREFUSED, ECONNABORTED, and
151      ECONNRESET during the client accept() to not trigger graceful shutdown of
152      the child process.  [Eric Covener]
153
154   *) mod_md v1.1.7:
155      - MDMustStaple was unable to create the necessary OpenSSL OBJ identifier on some platforms, 
156        possibly because this fails if the OID is already configured in ```openssl.cnf```, see
157        [here](https://github.com/openssl/openssl/issues/2795).
158      - Two memory leaks in cert issuer and alt-names lookup eliminated by Yann Ylavic.
159      - Changing MDMustStaple triggers certificate renewal.
160      - More verbosity when *not* handing out certificates, e.g. mod_ssl asks, but mod_md has no
161        idea what it is talking about. Some people report misbehaviour here.
162      - Re-enabled support for md_get_credentials() function that was used in older mod_ssl
163        patch, so that people with old patched servers get a chance to upgrade.
164      [Stefan Eissing, Yann Ylavic]
165
166   *) mod_susbtitute: Allow expressions in the subtitution, prefixed with expr=
167      [Eric Covener]
168
169   *) mod_md: fixed mem pool usage for auto-added server names. Added
170      error logging of exact ACME response when challenges failed.
171      [Stefan Eissing]
172
173   *) mod_md: reverses most of v1.0.5 optimization of post_config init, so that
174      mod_ssl can ask for certiticates without crashing. [Stefan Eissing]
175
176   *) mod_proxy: allow SSLProxyCheckPeer* usage for all proxy modules.
177      PR 61857.  [Yann Ylavic]
178
179   *) mod_proxy_html: fix handling of <meta http-equiv> elements.
180      PR 58121.  [Nick Kew]
181
182   *) mod_md: fixed backward compatibility to old <ManagedDomain configuration.
183      Add higher level WARNING log when initial request to ACME server fails, mentioning
184      some advice. [Stefan Eissing] 
185      
186   *) mod_md: name change in configuration directives. The old names are still working
187      in this version, so you can safely upgrade. They will give warnings in the log and
188      will disappear in the immediate future. ManagedDomain is now MDomain,
189      <ManagedDomain> is now <MDomainSet>. [Stefan Eissing]
190
191   *) mod_ssl: renamed section <SSLPolicy to <SSLPolicyDefine. Fixed behaviour
192      for new server config merge flag. Denying global, only once used directives
193      inside a SSLPolicyDefine. [Stefan Eissing]
194
195   *) mod_auth_basic: Be less tolerant when parsing the credencial. Only spaces
196      should be accepted after the authorization scheme. \t are also tolerated.
197      [Christophe Jaillet]
198   
199   *) mod_http2: fixed unfair scheduling when number of active connections
200      exceeded the scheduling fifo capacity. [Stefan Eissing]
201
202   *) core: Support zone/scope in IPv6 link-local addresses in Listen and
203      VirtualHost directives (requires APR 1.7.x or later).  PR 59396.  [Joe Orton]
204
205   *) mod_md: v1.0.5, restricting post_config dry run to be more silent and performing
206      only necessary work for mod_ssl to be also happy with the configuration.
207      [Stefan Eissing] 
208
209   *) mod_md: v1.0.4, removed the 'a2md' utility command from build. Only used in github
210      testing. Avoid problems with our build system that had problems after the latest
211      changes to make a clean initial build. Remove the windows a2md.dsp therefore also.
212      [Stefan Eissing] 
213
214   *) mod_ssl: Fail with 403 if the username for FakeBasicAuth mode
215      includes a colon character.  PR 52644.  [Joe Orton]
216
217   *) mod_md: v1.0.3, fixed various bugs in persisting job properties, so that status is 
218      persisted accross child process changes and staging is reset on reloads. Changed 
219      MDCertificateAgreement url checks. As long as the CA reports that the account has 
220      an agreement, no further checking is done. Existing accounts need no changes when
221      a new agreement comes out. [Stefan Eissing]
222
223   *) mod_watchdog: Correct some log messages.  [Rainer Jung]
224
225   *) mod_noloris: complete build setup.  [Rainer Jung]
226
227   *) mod_md: fix static compilation.  [Rainer Jung]
228
229   *) mod_md: fix compilation of helper binary a2md.  [Rainer Jung]
230
231   *) core: fix pcre feature detection in configure when using pcre2.  [Rainer Jung]
232
233 Changes with Apache 2.5.0-alpha
234
235   *) mod_md: v1.0.1, ServerName/Alias names from pure-http: virtual hosts are no longer
236      auto-added to a Managed Domain. Error counts of jobs are presisted. When the server
237      restarts (gracefully) any errored staging areas are purged to reset the signup/renewal
238      process. [Stefan Eissing]
239
240   *) mod_md: v1.0.0, new config directive 'MDNotifyCmd' to hook in a program when Managed
241      Domains have obtained/renewed their certificates successfully. [Stefan Eissing]
242
243   *) mod_md: v0.9.9, fix for applying challenge type based on available ports. [Stefan Eissing]
244
245   *) mod_md: v0.9.7
246      - Use of the new module flag
247      - Removed obsolete function from interface to mod_ssl. 
248      - Fallback certificates has version set and no longer claims to be a CA. (re issue #32)
249      - MDRequireHttps now happens before any Redirect.
250      [Stefan Eissing]
251
252   *) mod_ssl: unshare SSLSrvConfigRec instances between base server and virtual hosts. This avoids
253      overwrites of later initializattions (vhost_id), selective disables by "SSLEngine addr-list"
254      and certificate/key pickup from mod_md. [Stefan Eissing]
255
256   *) mod_md: v0.9.6: a "MDRequireHttps permament" configured domain automatically sends out
257      HSTS (rfc 6797) headers in https: responses. [Stefan Eissing]
258
259   *) mod_ssl: adding ssl_policies.h[.in] for policy cipher/protocol definitions. Use 
260      update_policies.py to update manually from Mozilla JSON definitions at
261      https://statics.tls.security.mozilla.org/server-side-tls-conf.json
262      [Stefan Eissing]
263      
264   *) mod_md: v0.9.5:
265      - New directive (srly: what do you expect at this point?) "MDMustStaple on|off" to control if
266        new certificates are requested with the OCSP Must Staple extension.
267      - Known limitation: when the server is configured to ditch and restart child processes, for example
268        after a certain number of connections/requests, the mod_md watchdog instance might migrate 
269        to a new child process. Since not all its state is persisted, some messsages might appear a
270        second time in the logs.
271      - Adding checks when 'MDRequireHttps' is used. It is considered an error when 'MDPortMap 443:-'
272        is used - which negates that a https: port exists. Also, a warning is logged if no 
273        VirtualHost can be found for a Managed Domain that has port 443 (or the mapped one) in
274        its address list.
275      - New directive 'MDRequireHttps' for redirecting http: traffic to a Managed Domain, permanently
276        or temporarily.
277      - Fix for using a fallback certificate on initial signup of a Managed Domain. Requires also
278        a changed mod_ssl patch (v5) to take effect.
279      - compatibility with libressl
280        [Stefan Eissing]
281
282   *) mod_md: v0.9.2: new directive 'MDHttpProxy' to define a proxy for outgoing connection,
283      some minor bugfixes, twiddle the build system to avoid non-pic code generation.
284      [Stefan Eissing]
285   
286   *) mod_md: v0.9.1:
287      - various fixes in MDRenewWindow handling when specifying percent. Serialization changed. If 
288        someone already used percent configurations, it is advised to change these to a new value,
289        reload and change back to the wanted ones.
290      - various fixes in handling of MDPrivateKeys when specifying 2048 bits (the default) explicitly.
291      - mod_md version removed from top level md_store.json file. The store has its own format version
292        to facilitate upgrades.
293     [Stefan Eissing]
294
295   *) mod_md: v0.9.0:
296      Certificate provisioning from Let's Encrypt (and other ACME CAs) for mod_ssl virtual hosts.
297      [Stefan Eissing]
298
299   *) mod_ssl: add SSLPolicy (define/use) and SSLProxyPolicy directives plus documentation. Add
300      core definitions for policies 'modern', 'intermediate' and 'old', as defined by Mozilla
301      in <https://wiki.mozilla.org/Security/Server_Side_TLS>. [Stefan Eissing]
302
303   *) mod_md: new module for managing domains across VirtualHosts with ACME protocol 
304      implementation for automated certificate signup and renewal. Default CA is
305      the test area of Let's Encrypt right now, so certificates root will not be valid.
306      Will be switched to the real service endpoint rather soon. If you need it now,
307      configure 'MDCertificateAuthority https://acme-v01.api.letsencrypt.org/directory'.
308      [Stefan Eissing] 
309
310   *) mod_rewrite: Add 'RewriteOptions LongURLOptimization' to free memory
311      from each set of unmatched rewrite conditions.
312      [Eric Covener]
313
314   *) Allow the argument to <IfFile>, <IfDefine>, <IfSection>, <IfDirective>, 
315      and <IfModule> to be quoted.  This is primarily for the benefit of
316      <IfFile>. [Eric Covener]
317
318   *) Introduce request taint checking framework to prevent privilege
319      hijacking through .htaccess. [Nick Kew]
320
321   *) Add <IfDirective> and <IfSection> directives.  [Joe Orton]
322
323   *) When using mod_status with the Event MPM, report the number of requests
324      associated with an active connection in the "ACC" field. Previously
325      zero was always reported with this MPM.  PR60647. [Eric Covener]
326
327   *) mod_remoteip: When overriding the useragent address from X-Forwarded-For,
328      zero out what had been initialized as the connection-level port.  PR59931.
329      [Hank Ibell <hwibell gmail.com>]
330
331   *) mod_proxy_wstunnel: Reliably run before mod_proxy_http.
332      [Eric Covener]
333
334   *) http: Allow unknown response status' lines returned in the form of
335      "HTTP/x.x xxx Status xxx".  [Yann Ylavic]
336
337   *) core: Add <IfFile> configuration section to allow any file on disk to be
338      used as a conditional.  [Edward Lu, Eric Covener]
339
340   *) mod_crypto: Add the all purpose crypto filters with support for HLS.
341      [Graham Leggett]
342
343   *) core: Drop an invalid Last-Modified header value coming
344      from a FCGI/CGI script instead of replacing it with Unix epoch.
345      Warn the users about Last-Modified header value replacements
346      and violations of the RFC.
347      [Yann Ylavic, Luca Toscano, William Rowe, Jacob Champion]
348
349   *) mod_dav: Allow other modules to become providers and add ACLs
350      to the DAV response.
351      [Jari Urpalainen <jari.urpalainen nokia.com>, Graham Leggett]
352
353   *) mod_dav: Add dav_begin_multistatus, dav_send_one_response,
354      dav_finish_multistatus, dav_send_multistatus, dav_handle_err,
355      dav_failed_proppatch, dav_success_proppatch to mod_dav.h.
356      [Jari Urpalainen <jari.urpalainen nokia.com>, Graham Leggett]
357
358   *) core: explicitly exclude 'h2' from protocols announced via an Upgrade: 
359      header as commanded by http-wg. [Stefan Eissing]
360
361   *) mod_proxy_ajp: Add "secret" parameter to proxy workers to implement legacy
362      AJP13 authentication.  PR 53098.  [Dmitry A. Bakshaev <dab1818 gmail com>]
363
364   *) mpm: Generalise the ap_mpm_register_socket functions to accept pipes
365      or sockets. [Graham Leggett]
366
367   *) core: Extend support for setting aside data from the network input filter
368      to any connection or request input filter. [Graham Leggett]
369
370   *) core: Split ap_create_request() from ap_read_request(). [Graham Leggett]
371
372   *) mod_auth_digest: Fix compatibility with expression-based Authname. PR59039.
373      [Eric Covener]
374
375   *) mpm: Add a complete_connection hook that confirms whether an MPM is allowed
376      to leave the WRITE_COMPLETION phase. Move filter code out of the MPMs.
377      [Graham Leggett]
378
379   *) mod_cache: Consider Cache-Control: s-maxage in expiration
380      calculations.  [Eric Covener]
381
382   *) mod_cache: Allow caching of responses with an Expires header
383      in the past that also has Cache-Control: max-age or s-maxage.
384      PR55156. [Eric Covener]
385
386   *) mod_session: Introduce SessionExpiryUpdateInterval which allows to
387      configure the session/cookie expiry's update interval. PR 57300.
388      [Paul Spangler <paul.spangler ni.com>]
389
390   *) core: Extend support for asynchronous write completion from the
391      network filter to any connection or request filter. [Graham Leggett]
392
393   *) mod_auth_digest: remove AuthDigestEnableQueryStringHack which is no
394      more documented since dec 2012 (r1415960). [Christophe Jaillet]
395
396   *) mod_charset_lite: On EBCDIC platforms, make sure mod_charset_lite runs
397      after other resource-level filters. [Eric Covener]
398
399   *) http: Don't remove the Content-Length of zero from a HEAD response if
400      it comes from an origin server, module or script.  [Yann Ylavic]
401
402   *) http: Add support for RFC2324/RFC7168. [Graham Leggett]
403
404   *) mod_authn_core: Add expression support to AuthName and AuthType.
405      [Graham Leggett]
406
407   *) suexec: Filter out the HTTP_PROXY environment variable because it is
408      treated as alias for http_proxy by some programs. [Stefan Fritsch]
409
410   *) mod_proxy_http: Don't establish or reuse a backend connection before pre-
411      fetching the request body, so to minimize the delay between it is supposed
412      to be alive and the first bytes sent: this is a best effort to prevent the
413      backend from closing because of idle or keepalive timeout in the meantime.
414      Also, handle a new "proxy-flushall" environment variable which allows to
415      flush any forwarded body data immediately. PR 56541+37920. [Yann Ylavic]
416
417   *) core: Define and UnDefine are no longer permitted in
418      directory context. Previously they would always be evaulated
419      as the configuration was read without regard for the directory
420      context. [Eric Covener]
421
422   *) config: For directives that do not expect any arguments, enforce
423      that none are specified in the configuration file. 
424      [Joachim Zobel <jzobel heute-morgen.de>, Eric Covener]
425
426   *) mod_rewrite: Improve 'bad flag delimeters' startup error by showing
427      how the input was tokenized.  PR 56528. [Edward Lu <Chaosed0 gmail.com>]
428
429   *) mod_proxy: Don't put non balancer-member workers in error state by
430      default for connection or 500/503 errors, and honor status=+I for
431      any error.  PR 48388.  [Yann Ylavic]
432
433   *) ap_expr: Add filemod function for checking file modification dates
434      [Daniel Gruno]
435
436   *) mod_authnz_ldap: Resolve crashes with LDAP authz and non-LDAP authn since 
437      r1608202. [Eric Covener]
438
439   *) apreq: Content-Length header should be always interpreted as a decimal.
440      Leading 0 could be erroneously considered as an octal value. PR 56598.
441      [Chris Card <ctcard hotmail com>]
442
443   *) mod_proxy: Now allow for 191 character worker names, with non-fatal
444      errors if name is truncated. PR53218. [Jim Jagielski]
445
446   *) mod_ssl: Add optional function "ssl_get_tls_cb" to allow support
447      for channel bindings.  [Simo Sorce <simo redhat.com>]
448
449   *) mod_proxy_wstunnel: Concurrent websockets messages could be 
450      lost or delayed with ProxyWebsocketAsync enabled.  
451      [Edward Lu <Chaosed0 gmail.com>]
452
453   *) core, mod_info: Add compiled and loaded PCRE versions to version
454      number display.  [Rainer Jung]
455
456   *) mod_authnz_ldap: Return LDAP connections to the pool before the handler
457      is run, instead of waiting until the end of the request. [Eric Covener]
458
459   *) mod_proxy_html: support automatic detection of doctype and processing
460      of FPIs.  PR56285 [Micha Lenk <micha lenk info>, Nick Kew]
461
462   *) core: Add ap_mpm_resume_suspended() API to allow a suspended connection
463      to resume. PR56333 
464      [Artem <artemciy gmail.com>, Edward Lu <Chaosed0 gmail.com>]
465
466   *) core: Add ap_mpm_register_socket_callback_timeout() API. [Eric Covener]
467
468   *) mod_proxy_wstunnel: Honor ProxyWebsocketIdleTimeout in asynchronous
469      processing mode. [Eric Covener]
470
471   *) mod_authnz_ldap: Fail explicitly when the filter is too long. Remove
472      unnecessary apr_pstrdup() and strlen(). [Graham Leggett]
473
474   *) Add the ldap-search option to mod_authnz_ldap, allowing authorization
475      to be based on arbitrary expressions that do not include the username.
476      [Graham Leggett]
477
478   *) Add the ldap function to the expression API, allowing LDAP filters and
479      distinguished names based on expressions to be escaped correctly to
480      guard against LDAP injection. [Graham Leggett]
481
482   *) Add module mod_ssl_ct, which provides an implementation of Certificate
483      Transparency (RFC 6962) for httpd.  [Jeff Trawick]
484
485   *) mod_proxy_wstunnel: Avoid sending error responses down an upgraded
486      websockets connection as it is being close down. [Eric Covener]
487
488   *) mod_proxy_wstunnel: Allow the administrator to cap the amount
489      of time a synchronous websockets connection stays idle with 
490      ProxyWebsocketIdleTimeout. [Eric Covener]
491
492   *) mod_proxy_wstunnel: Change to opt-in for asynchronous support, adding 
493      directives ProxyWebsocketAsync and ProxyWebsocketAsyncDelay. 
494      [Eric Covener]
495
496   *) mod_proxy_wstunnel: Stop leaking websockets backend connections under
497      event MPM (trunk-only). [Eric Covener]
498
499   *) mod_proxy_http: Add detach_backend hook (potentially usable
500      in other proxy scheme handlers).  [Jeff Trawick]
501
502   *) mod_deflate: Add DeflateAlterETag to control how the ETag
503      is modified. The 'NoChange' parameter mimics 2.2.x behavior.
504      PR 45023, PR 39727. [Eric Covener]
505
506   *) mod_dir: Default to 2.2-like behavior and skip execution when method is
507      neither GET nor POST, such as for DAV requests. PR 54914. [Chris Darroch]
508
509   *) mod_rewrite: Rename the handler that does per-directory internal 
510      redirects to "rewrite-redirect-handler" from "redirect-handler" so
511      it is less ambiguous and less likely to be reused. [Eric Covener]
512
513   *) mod_rewrite: Protect against looping with the [N] flag by enforcing a 
514      default limit of 10000 iterations, and allowing each rule to change its
515      limit. [Eric Covener]
516
517   *) mod_ssl: Fix config merging of SSLOCSPEnable and SSLOCSPOverrideResponder.
518      [Jeff Trawick]
519
520   *) Add HttpContentLengthHeadZero and HttpExpectStrict directives.
521      [Yehuda Sadeh <yehuda inktank com>, Justin Erenkrantz]
522
523   *) mod_ssl: Add -t -DDUMP_CA_CERTS option which dumps the filenames of all
524      configured SSL CA certificates to stdout the same way as DUMP_CERTS does.
525      [Jan Kaluza]
526
527   *) mod_ssl: Don't flush when an EOS is received. Prepares mod_ssl
528      to support write completion. [Graham Leggett]
529
530   *) core: Add parse_errorlog_arg callback to ap_errorlog_provider
531      to allow providers to check the ErrorLog argument. [Jan Kaluza]
532
533   *) mod_cgid: Use the servers Timeout for each read from a CGI script,
534      allow override with new CGIDRequestTimeout directive. PR43494
535      [Eric Covener, Toshikuni Fukaya <toshikuni-fukaya cybozu co jp>]
536
537   *) core: ensure any abnormal exit is reported to stderr if it's a tty.
538      PR 55670 [Nick Kew]
539
540   *) mod_lua: Let the Inter-VM get/set functions work with a global 
541      shared memory pool instead of a per-process pool. [Daniel Gruno]
542
543   *) ldap: Support ldaps when using the Microsoft LDAP SDK.
544      PR 54626. [Jean-Frederic Clere]
545
546   *) mod_authnz_ldap: Change default value of AuthLDAPMaxSubGroupDepth to 0
547      to avoid performance problems when subgroups aren't in use. [Eric Covener]
548
549   *) mod_syslog: New module implementing syslog ap_error_log provider.
550      Previously, this code was part of core, now it's in separate module.
551      [Jan Kaluza]
552
553   *) core: Add ap_errorlog_provider to make ErrorLog logging modular. Move
554      syslog support from core to new mod_syslog. [Jan Kaluza]
555
556   *) mod_status, mod_echo: Fix the display of client addresses.
557      They were truncated to 31 characters which is not enough for IPv6 addresses.
558      This is done by deprecating the use of the 'client' field and using
559      the new 'client64' field in worker_score.
560      PR 54848 [Bernhard Schmidt <berni birkenwald de>, Jim Jagielski]
561
562   *) core: merge AllowEncodedSlashes from the base configuration into
563      virtual hosts. [Eric Covener]
564
565   *) AIX: Install DSO's with "cp" instead of "install" in instdso.sh
566      [Eric Covener]
567
568   *) mod_ldap: Don't keep retrying if a new LDAP connection times out.
569      [Eric Covener]
570
571   *) mod_deflate: permit compilation of mod_deflate against a zlib that has
572      been configured with -D Z_PREFIX, which redefines the token "deflate".
573      [Eric Covener]
574
575   *) mod_auth_digest: Use the secret when generating nonces in all cases and
576      not only when AuthName is used in .htaccess files (this change may cause
577      problems if used with round robin load balancers). Don't regenerate the
578      secret on graceful restarts. PR 54637  [Stefan Fritsch]
579
580   *) core: Stop the HTTP_IN filter from attempting to write error buckets
581      to the output filters, which is bogus in the proxy case. Create a
582      clean mapping from APR codes to HTTP status codes, and use it where
583      needed. [Graham Leggett]
584
585   *) mod_proxy: Ensure network errors detected by the proxy are returned as
586      504 Gateway Timout as opposed to 502 Bad Gateway, in order to be
587      compliant with RFC2616 14.9.4 Cache Revalidation and Reload Controls.
588
589   *) mod_dav: mod_dav overrides dav_fs response on PUT failure. PR 35981
590      [Basant Kumar Kukreja <basant.kukreja sun.com>, Alejandro Alvarez
591      <alejandro.alvarez.ayllon cern.ch>]
592
593   *) mod_ldap: LDAP connections used for authentication were not respecting
594      LDAPConnectionPoolTimeout.  PR 54587
595
596   *) core: Add option to add valgrind support. Use it to reduce false positive
597      warnings in mod_ssl. [Stefan Fritsch]
598
599   *) mod_authn_file, mod_authn_dbd, mod_authn_dbm, mod_authn_socache:
600      Cache the result of the most recent password hash verification for every
601      keep-alive connection. This saves some expensive calculations.
602      [Stefan Fritsch]
603
604   *) http: Remove support for Request-Range header sent by Navigator 2-3 and
605      MSIE 3. [Stefan Fritsch]
606
607   *) core, http: Extend HttpProtocol with an option to enforce stricter HTTP
608      conformance or to only log the found problems. [Stefan Fritsch]
609
610   *) EventOpt MPM
611
612   *) core: Add LogLevelOverride directive that allows to override the
613      loglevel for clients from certain IPs. This also works for things
614      like the SSL handshake where <If> LogLevel ... </If> is evaluated
615      too late. [Stefan Fritsch]
616
617   *) core: Add new directive Warning to issue warnings from a configuration
618      file. Both Warning and Error now generate a timestamped log message.
619      [Fabien Coelho] 
620
621   *) ap_expr: Add SERVER_PROTOCOL_VERSION, ..._MAJOR, and ..._MINOR
622      variables. [Stefan Fritsch]
623
624   *) core: New directive HttpProtocol which allows to disable HTTP/0.9
625      support. [Stefan Fritsch]
626
627   *) mod_allowhandlers: New module to forbid specific handlers for specific
628      directories. [Stefan Fritsch]
629
630   *) mod_systemd: New module, for integration with systemd on Linux.
631      [Jan Kaluza <jkaluza redhat.com>]
632
633   *) WinNT MPM: Store pid and generation for each thread in scoreboard
634      to allow tracking of threads from exiting children via mod_status
635      or other such mechanisms.  [Jeff Trawick]
636
637   *) The following now respect DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR:
638      - APIs: ap_log_pid(), ap_remove_pid, ap_read_pid()
639      - mod_cache: thundering herd lock directory
640      - mod_lbmethod_heartbeat, mod_heartmonitor: heartbeat storage file
641      - mod_ldap: shared memory cache
642      - mod_socache_shmcb, mod_socache_dbm: shared memory or dbm for cache
643      [Jeff Trawick]
644
645   *) mod_ssl: Add support for TLS Next Protocol Negotiation.  PR 52210.
646      [Matthew Steele <mdsteele google.com>]
647
648   *) cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will
649      be compiled by the build compiler instead of the host compiler.
650      Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected.
651      PR 51257. [Guenter Knauf]
652
653   *) core: In maintainer mode, replace apr_palloc with a version that
654      initializes the allocated memory with non-zero values, except if
655      AP_DEBUG_NO_ALLOC_POISON is defined. [Stefan Fritsch]
656
657   *) mod_policy: Add a new testing module to help server administrators
658      enforce a configurable level of protocol compliance on their
659      servers and application servers behind theirs. [Graham Leggett]
660
661   *) mod_firehose: Add a new debugging module able to record traffic
662      passing through the server in such a way that connections and/or
663      requests be reconstructed and replayed. [Graham Leggett]
664
665   *) mod_noloris
666
667   *) APREQ
668
669   *) Simple MPM
670
671   *) mod_serf
672
673   [Apache 2.5.0-dev includes those bug fixes and changes with the
674    Apache 2.4.xx tree as documented below, except as noted.]
675
676 Changes with Apache 2.4.x and later:
677
678   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/CHANGES?view=markup
679
680 Changes with Apache 2.2.x and later:
681
682   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup
683
684 Changes with Apache 2.0.x and later:
685
686   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup