1N/AChanges with Apache 2.5.0
1N/A *) apreq: Content-Length header should be always interpreted as a decimal.
1N/A Leading 0 could be erroneously considered as an octal value. PR 56598.
1N/A [Chris Card <ctcard hotmail com>]
1N/A mod_cache: Avoid a crash when Content-Type has an empty value. PR56924.
1N/A *) mod_proxy: Now allow for 191 character worker names, with non-fatal
1N/A errors if name is truncated. PR53218. [Jim Jagielski]
1N/A *) mod_ssl: Add optional function "ssl_get_tls_cb" to allow support
1N/A *) mod_cache: Avoid sending 304 responses during failed revalidations
1N/A PR56881. [Eric Covener]
1N/A *) core: Avoid useless warning message when parsing a section guarded by
835N/A <IfDefine foo> if $(foo) is used within the section.
1N/A PR 56858 [Christophe Jaillet]
22N/A *) mod_proxy_fcgi: Fix faulty logging of large amounts of stderr from the
22N/A application. PR 56858. [Manuel Mausz <manuel-asf
mausz.at>]
0N/A *) mod_ratelimit: Drop severity of AH01455 and AH01457 (ap_pass_brigade
221N/A failed) messages from ERROR to TRACE1. Other filters do not bother
539N/A re-reporting failures from lower level filters. PR56832. [Eric Covener]
221N/A *) mod_proxy_http: Proxy responses with error status and
14N/A "ProxyErrorOverride On" hang until proxy timeout.
14N/A PR53420 [Rainer Jung]
14N/A *) mod_proxy_wstunnel: Concurrent websockets messages could be
14N/A lost or delayed with ProxyWebsocketAsync enabled.
22N/A *) core, mod_info: Add compiled and loaded PCRE versions to version
22N/A number display. [Rainer Jung]
22N/A *) mpm_winnt: Accept utf-8 (Unicode) service names and descriptions for
14N/A internationalization. [William Rowe]
926N/A *) mpm_winnt: Normalize the error and status messages emitted by
service.c,
926N/A the service control interface for Windows. [William Rowe]
116N/A *) http_protocol: fix logic in ap_method_list_(add|remove) in order:
926N/A - to correctly reset bits
660N/A - not to modify the 'method_mask' bitfield unnecessarily
391N/A *) mod_authnz_ldap: Return LDAP connections to the pool before the handler
0N/A is run, instead of waiting until the end of the request. [Eric Covener]
192N/A *) mod_ldap: Be more conservative with the last-used time for
0N/A LDAPConnectionPoolTTL. PR54587 [Eric Covener]
479N/A *) mod_deflate: Don't fail when flushing inflated data to the user-agent
926N/A and that coincides with the end of stream ("Zlib error flushing inflate
565N/A *) mod_proxy: Don't limit the size of the connectable Unix Domain Socket
926N/A paths. [Christophe Jaillet, Yann Ylavic]
926N/A *) mod_ssl: dump SSL
IO/state for the write side of the connection(s),
926N/A like reads (level TRACE4). [Yann Ylavic]
926N/A *) mod_proxy: Shutdown (eg. close notify) the backend connection before
26N/A *) mpm_event[opt]: Send the SSL close notify alert when the KeepAliveTimeout
926N/A expires. PR54998. [Yann Ylavic]
926N/A *) mod_ssl: Ensure that the SSL close notify alert is flushed to the client.
621N/A *) mod_log_config: Add GlobalLog to allow a globally defined log to
926N/A be inherited by virtual hosts that define a CustomLog.
565N/A *) MPMs: Support SO_REUSEPORT to create multiple duplicated listener
1087N/A records for scalability. [Yingqi Lu <yingqi.lu@intel.com>,
565N/A Jeff Trawick, Jim Jagielski]
1086N/A *) mod_proxy_html: support automatic detection of doctype and processing
429N/A of FPIs. PR56285 [Micha Lenk <micha lenk info>, Nick Kew]
1086N/A *) mod_proxy_html: skip documents shorter than 4 bytes
1086N/A PR 56286 [Micha Lenk <micha lenk info>]
1086N/A *) mod_proxy_fdpass: Fix computation of the size of 'struct sockaddr_un'
1086N/A when passed to 'connect()'.
1086N/A [Graham Dumpleton <grahamd apache org>]
497N/A *) core: Add ap_mpm_resume_suspended() API to allow a suspended connection
497N/A *) core: Add ap_mpm_register_socket_callback_timeout() API. [Eric Covener]
384N/A *) mod_proxy_wstunnel: Honor ProxyWebsocketIdleTimeout in asynchronous
497N/A processing mode. [Eric Covener]
1086N/A *) mod_authnz_ldap: Fail explicitly when the filter is too long. Remove
429N/A unnecessary apr_pstrdup() and strlen(). [Graham Leggett]
301N/A *) Add the ldap-search option to mod_authnz_ldap, allowing authorization
301N/A to be based on arbitrary expressions that do not include the username.
384N/A *) Add the ldap function to the expression API, allowing LDAP filters and
0N/A distinguished names based on expressions to be escaped correctly to
0N/A guard against LDAP injection. [Graham Leggett]
301N/A *) Add module mod_ssl_ct, which provides an implementation of Certificate
662N/A Transparency (RFC 6962) for httpd. [Jeff Trawick]
996N/A *) mod_proxy: Preserve original request headers even if they differ
884N/A from the ones to be forwarded to the backend. PR 45387.
162N/A *) mod_remoteip: Prevent an external proxy from presenting an internal
301N/A proxy. PR 55962. [Mike Rumph]
987N/A *) mod_ssl: Add hooks to allow other modules to perform processing at
662N/A several stages of initialization and connection handling. See
662N/A *) mod_proxy_wstunnel: Avoid sending error responses down an upgraded
582N/A websockets connection as it is being close down. [Eric Covener]
938N/A *) mod_proxy_wstunnel: Allow the administrator to cap the amount
938N/A of time a synchronous websockets connection stays idle with
310N/A ProxyWebsocketIdleTimeout. [Eric Covener]
551N/A *) mod_proxy_wstunnel: Change to opt-in for asynchronous support, adding
551N/A directives ProxyWebsocketAsync and ProxyWebsocketAsyncDelay.
938N/A *) mod_proxy_wstunnel: Stop leaking websockets backend connections under
662N/A event MPM (trunk-only). [Eric Covener]
926N/A *) mod_proxy_http: Add detach_backend hook (potentially usable
926N/A in other proxy scheme handlers). [Jeff Trawick]
539N/A *) mod_deflate: Add DeflateAlterETag to control how the ETag
429N/A is modified. The 'NoChange' parameter mimics
2.2.x behavior.
26N/A PR 45023, PR 39727. [Eric Covener]
362N/A *) mod_rewrite: Add 'BNF' (backreferences-no-plus) flag to RewriteRule to
934N/A allow spaces in backreferences to be encoded as %20 instead of '+'.
384N/A *) mod_rewrite: Support an optional list of characters to escape in the
1086N/A argument for the 'B' (escape backreferences) flag. [Eric Covener]
104N/A *) mod_ssl: Add SSLOCSPUseRequestNonce directive to control whether or not
104N/A OCSP requests should use a nonce to be checked against the responder's
104N/A one. PR 56233. [ Yann Ylavic ]
104N/A *) mod_dir: Default to 2.2-like behavior and skip execution when method is
429N/A neither GET nor POST, such as for DAV requests. PR 54914. [Chris Darroch]
429N/A *) mod_rewrite: Rename the handler that does per-directory internal
693N/A redirects to "rewrite-redirect-handler" from "redirect-handler" so
693N/A it is less ambiguous and less likely to be reused. [Eric Covener]
526N/A *) mod_rewrite: Protect against looping with the [N] flag by enforcing a
526N/A default limit of 10000 iterations, and allowing each rule to change its
526N/A *) mod_ssl: Fix config merging of SSLOCSPEnable and SSLOCSPOverrideResponder.
526N/A *) Add HttpContentLengthHeadZero and HttpExpectStrict directives.
526N/A [Yehuda Sadeh <yehuda inktank com>, Justin Erenkrantz]
526N/A *) mod_ssl: Add -t -DDUMP_CA_CERTS option which dumps the filenames of all
526N/A configured SSL CA certificates to stdout the same way as DUMP_CERTS does.
526N/A *) mod_ssl: Don't flush when an EOS is received. Prepares mod_ssl
526N/A to support write completion. [Graham Leggett]
996N/A *) core: Add parse_errorlog_arg callback to ap_errorlog_provider
996N/A to allow providers to check the ErrorLog argument. [Jan Kaluza]
996N/A *) mod_cgid: Use the servers Timeout for each read from a CGI script,
221N/A allow override with new CGIDRequestTimeout directive. PR43494
996N/A [Eric Covener, Toshikuni Fukaya <toshikuni-fukaya cybozu co jp>]
219N/A *) core: ensure any abnormal exit is reported to stderr if it's a tty.
996N/A *) mod_lua: Let the Inter-VM
get/set functions work with a global
219N/A shared memory pool instead of a per-process pool. [Daniel Gruno]
219N/A *) ldap: Support ldaps when using the Microsoft LDAP SDK.
219N/A PR 54626. [Jean-Frederic Clere]
221N/A *) mod_proxy: Add ap_connection_reusable() for checking if a connection
301N/A is reusable as of this point in processing. [Jeff Trawick]
219N/A *) mod_authnz_ldap: Change default value of AuthLDAPMaxSubGroupDepth to 0
219N/A to avoid performance problems when subgroups aren't in use. [Eric Covener]
219N/A *) mod_syslog: New module implementing syslog ap_error_log provider.
575N/A Previously, this code was part of core, now it's in separate module.
996N/A *) core: Add ap_errorlog_provider to make ErrorLog logging modular. Move
219N/A syslog support from core to new mod_syslog. [Jan Kaluza]
429N/A *) mod_status, mod_echo: Fix the display of client addresses.
301N/A They were truncated to 31 characters which is not enough for IPv6 addresses.
219N/A PR 54848 [Bernhard Schmidt <berni birkenwald de>]
301N/A *) core: Add ap_log_data(), ap_log_rdata(), etc. for logging buffers.
307N/A *) mod_unique_id: Use output of the PRNG rather than IP address and
219N/A pid, avoiding sleep() call and possible DNS issues at startup,
526N/A plus improving randomness for IPv6-only hosts.
556N/A *) mod_authnz_ldap: Support primitive LDAP servers that do not accept
301N/A filters, such as "SDBM-backed LDAP" on
z/OS, by allowing a special
219N/A filter "none" to be specified in AuthLDAPURL. [Eric Covener]
526N/A *) mod_file_cache: mod_file_cache should be able to serve files that
219N/A haven't had a Content-Type set via
e.g. mod_mime. [Eric Covener]
996N/A *) core: merge AllowEncodedSlashes from the base configuration into
996N/A virtual hosts. [Eric Covener]
996N/A *) mod_ldap: Don't keep retrying if a new LDAP connection times out.
1102N/A *) mod_deflate: permit compilation of mod_deflate against a zlib that has
1102N/A been configured with -D Z_PREFIX, which redefines the token "deflate".
996N/A *) mod_auth_digest: Use the secret when generating nonces in all cases and
996N/A not only when AuthName is used in .htaccess files (this change may cause
789N/A problems if used with round robin load balancers). Don't regenerate the
770N/A secret on graceful restarts. PR 54637 [Stefan Fritsch]
575N/A *) core: Remove apr_brigade_flatten(), buffering and duplicated code
575N/A from the HTTP_IN filter, parse chunks in a single pass with zero copy.
575N/A Reduce memory usage by 48 bytes per request. [Graham Leggett]
575N/A *) core: Stop the HTTP_IN filter from attempting to write error buckets
575N/A to the output filters, which is bogus in the proxy case. Create a
575N/A clean mapping from APR codes to HTTP status codes, and use it where
575N/A needed. [Graham Leggett]
219N/A *) mod_proxy: Ensure network errors detected by the proxy are returned as
219N/A 504 Gateway Timout as opposed to 502 Bad Gateway, in order to be
219N/A compliant with RFC2616 14.9.4 Cache Revalidation and Reload Controls.
221N/A *) mod_dav: mod_dav overrides dav_fs response on PUT failure. PR 35981
301N/A *) mod_ldap: LDAP connections used for authentication were not respecting
384N/A LDAPConnectionPoolTimeout. PR 54587
384N/A *) core: ap_rgetline_core now pulls from r->proto_input_filters.
384N/A *) mod_proxy_html: process parsed comments immediately.
926N/A Fixes bug where parsed comments may be lost. [Nick Kew]
221N/A *) mod_proxy_html: introduce doctype for HTML 5 [Nick Kew]
301N/A *) mod_proxy_html: fix typo-bug processing "strict" vs "transitional"
301N/A *) core: Add option to add valgrind support. Use it to reduce false positive
301N/A warnings in mod_ssl. [Stefan Fritsch]
926N/A *) mod_authn_file, mod_authn_dbd, mod_authn_dbm, mod_authn_socache:
307N/A Cache the result of the most recent password hash verification for every
926N/A keep-alive connection. This saves some expensive calculations.
926N/A *) http: Remove support for Request-Range header sent by Navigator 2-3 and
926N/A MSIE 3. [Stefan Fritsch]
384N/A *) core, http: Extend HttpProtocol with an option to enforce stricter HTTP
301N/A conformance or to only log the found problems. [Stefan Fritsch]
301N/A *) core: Correctly parse an IPv6 literal host specification in an absolute
838N/A URL in the request line. [Stefan Fritsch]
926N/A *) core: Add LogLevelOverride directive that allows to override the
539N/A loglevel for clients from certain IPs. This also works for things
384N/A like the SSL handshake where <If> LogLevel ... </If> is evaluated
301N/A too late. [Stefan Fritsch]
526N/A *) core: Add new directive Warning to issue warnings from a configuration
526N/A file. Both Warning and Error now generate a timestamped log message.
526N/A *) ap_expr: Add SERVER_PROTOCOL_VERSION, ..._MAJOR, and ..._MINOR
526N/A variables. [Stefan Fritsch]
526N/A *) core: New directive RegisterHttpMethod for registering non-standard
526N/A HTTP methods. [Stefan Fritsch]
361N/A *) core: New directive HttpProtocol which allows to disable HTTP/0.9
526N/A support. [Stefan Fritsch]
556N/A *) mod_allowhandlers: New module to forbid specific handlers for specific
556N/A directories. [Stefan Fritsch]
556N/A *) mod_systemd: New module, for integration with systemd on Linux.
221N/A *) WinNT MPM: Store pid and generation for each thread in scoreboard
556N/A to allow tracking of threads from exiting children via mod_status
556N/A or other such mechanisms. [Jeff Trawick]
565N/A - APIs: ap_log_pid(), ap_remove_pid, ap_read_pid()
526N/A - core: the scoreboard (ScoreBoardFile), pid file (PidFile), and
526N/A - mod_cache: thundering herd lock directory
556N/A - mod_lbmethod_heartbeat, mod_heartmonitor: heartbeat storage file
556N/A - mod_ldap: shared memory cache
219N/A - mod_socache_shmcb, mod_socache_dbm: shared memory or dbm for cache
526N/A *) suexec: Add --enable-suexec-capabilites support on Linux, to use
1063N/A *) suexec: Add support for logging to syslog as an alternative to logging
1063N/A to a file; configure --without-suexec-logfile --with-suexec-syslog.
219N/A *) mod_ssl: Add support for TLS Next Protocol Negotiation. PR 52210.
235N/A *) cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will
235N/A be compiled by the build compiler instead of the host compiler.
235N/A Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected.
235N/A PR 51257. [Guenter Knauf]
251N/A *) core: In maintainer mode, replace apr_palloc with a version that
236N/A initializes the allocated memory with non-zero values, except if
235N/A AP_DEBUG_NO_ALLOC_POISON is defined. [Stefan Fritsch]
222N/A *) mod_policy: Add a new testing module to help server administrators
583N/A enforce a configurable level of protocol compliance on their
583N/A servers and application servers behind theirs. [Graham Leggett]
583N/A *) mod_firehose: Add a new debugging module able to record traffic
583N/A passing through the server in such a way that connections
and/or 583N/A requests be reconstructed and replayed. [Graham Leggett]
583N/A [Apache 2.5.0-dev includes those bug fixes and changes with the
583N/A Apache
2.4.xx tree as documented below, except as noted.]