| -*- coding: utf-8 -*- |
| Changes with Apache 2.5.1 |
| |
| *) mod_authnz_ldap.c: Make sure the authentication variables are set in |
| all cases where another module is the source of the authentication, |
| and that authenticated user is looked up in LDAP. [Graham Leggett] |
| |
| *) mod_autht_jwt: New module to handle RFC 7519 JWT tokens within |
| bearer tokens, both as part of the aaa framework, and as a way to |
| generate tokens and pass them to backend servers and services. |
| [Graham Leggett] |
| |
| *) mod_auth_bearer: New module to handle RFC 6750 Bearer tokens, using |
| the token_checker hook. [Graham Leggett] |
| |
| *) mod_autht_core: New module to handle provider aliases for token |
| authentication. [Graham Leggett] |
| |
| *) core: Add the token_checker hook, that allows authentication to take |
| place using mechanisms other than username/password, such as bearer |
| tokens. [Graham Leggett] |
| |
| *) mod_alias: When an alias is declared inside a Location, make sure |
| the balance of the URL is preserved to match the alias declared |
| outside a location. Fixes an error where all requests are mapped |
| to the root of the location. [Graham Leggett] |
| |
| *) core: Be explicit if an enclosing directive contains a path or a |
| regex. [Graham Leggett] |
| |
| *) mod_http2: fixed a crash during connection termination. See PR 66539. |
| [Stefan Eissing] |
| |
| *) mod_mime: Do not match the extention against possible query string |
| parameters in case ProxyPass was used with the nocanon option. |
| [Ruediger Pluem] |
| |
| *) mod_proxy: In case that AllowEncodedSlashes is set to NoDecode do not |
| double encode encoded slashes in the URL sent by the reverse proxy to the |
| backend. [Ruediger Pluem] |
| |
| *) mod_rewrite: Add BCTLS flag similar to B, but only escaping the characters |
| checked by 2.4.56 in the query string. [Eric Covener] |
| |
| *) mod_md: |
| - Enabling ED25519 support and certificate transparency information when |
| building with libressl v3.5.0 and newer. Thanks to Giovanni Bechis. |
| - MDChallengeDns01 can now be configured for individual domains. |
| Thanks to Jérôme Billiras (@bilhackmac) for the initial PR. |
| - Fixed a bug found by Jérôme Billiras (@bilhackmac) that caused the challenge |
| teardown not being invoked as it should. |
| [Stefan Eissing] |
| |
| *) core: Add formats %{z} and %{strftime-format} to ErrorLogFormat, and make |
| sure that if the format is configured early enough it applies to every log |
| line. PR 62161. [Yann Ylavic] |
| |
| *) mod_proxy: Check before forwarding that a nocanon path has not been |
| rewritten with spaces during processing. [Yann Ylavic] |
| |
| *) mod_rewrite: Re-allow some proxy and redirect substitutions flagged as |
| 403 errors in 2.4.56. [Eric Covener] |
| |
| *) mod_rewrite: Fix a 2.4.56 regression for substitutions ending |
| in a question mark. [Eric Covener] |
| |
| *) Add a SSL_SHARED_CIPHER environment variable with the list of |
| client/server permitted ciphers. [Dirk-Willem van Gulik] |
| |
| *) mod_http2: field values (headers and trailers) are stripped of |
| leading/trailing whitespace (space +htab) before being processed |
| or send in a response. This is compatible behaviour to HTTP/1.1 |
| parsers that strip incoming headers of such characters. |
| [Stefan Eissing] |
| |
| *) build: Use 'command -v' instead of 'which' which is more portable. |
| PR 66130 [Sam James <sam@gentoo.org>] |
| |
| *) mod_dav: Allow to disable lock discovery via an DAVLockDiscovery |
| expression (per-request). PR 66313. [Emmanuel Dreyfus <manu netbsd.org>] |
| |
| *) mod_ssl: when a proxy connection had handled a request using SSL, an |
| error was logged when "SSLProxyEngine" was only configured in the |
| location/proxy section and not the overall server. The connection |
| continued to work, the error log was in error. Fixed PR66190. |
| [Stefan Eissing] |
| |
| *) mod_proxy: Ignore (and warn about) enablereuse=on for ProxyPassMatch when |
| some dollar substitution (backreference) happens in the hostname or port |
| part of the URL. [Yann Ylavic] |
| |
| *) rotatelogs: Add -T flag to allow subsequent rotated logfiles to be |
| truncated without the initial logfile being truncated. [Eric Covener] |
| |
| *) mod_md: a new directive `MDStoreLocks` can be used on cluster |
| setups with a shared file system for `MDStoreDir` to order |
| activation of renewed certificates when several cluster nodes are |
| restarted at the same time. Store locks are not enabled by default. |
| Restored curl_easy cleanup behaviour from v2.4.14 and refactored |
| the use of curl_multi for OCSP requests to work with that. |
| Fixes <https://github.com/icing/mod_md/issues/293>. |
| |
| *) mod_proxy_ajp: Report an error if the AJP backend sends an invalid number |
| of headers. [Ruediger Pluem] |
| |
| *) mod_proxy_http2: apply the standard httpd content type handling |
| to responses from the backend, as other proxy modules do. Fixes PR 66391. |
| Thanks to Jérôme Billiras for providing the patch. |
| [Stefan Eissing] |
| |
| *) mod_http2: fixed trailer handling. Empty response bodies |
| prevented trailers from being sent to a client. See |
| <https://github.com/icing/mod_h2/issues/233> for how |
| this affected gRPC use. |
| [Stefan Eissing] |
| |
| *) mod_proxy_http2: use only the ':authority' header to forward 'Host' |
| information to a backend. Deduce ':authority' from what the client |
| sent when 'ProxyPreserveHost' is on. |
| [Stefan Eissing] |
| |
| *) core: Improve the AH00124 error message about too many redirects by logging |
| the URI of the request. PR 66403 [Ruediger Pluem] |
| |
| *) mod_proxy_uwsgi: Stricter backend HTTP response parsing/validation. |
| [Yann Ylavic] |
| |
| *) mod_http2: new directive 'H2MaxDataFrameLen n' to limit the maximum |
| amount of response body bytes put into a single HTTP/2 DATA frame. |
| Setting this to 0 places no limit (but the max size allowed by the |
| protocol is observed). |
| The module, by default, tries to use the maximum size possible, which is |
| somewhat around 16KB. This sets the maximum. When less response data is |
| available, smaller frames will be sent. |
| |
| *) mod_http2: client resets of HTTP/2 streams led to unwanted 500 errors |
| reported in access logs and error documents. The processing of the |
| reset was correct, only unneccesary reporting was caused. |
| [Stefan Eissing] |
| |
| *) mod_proxy: Fix double encoding of the uri-path of the request forwarded |
| to the origin server, when using mapping=encoded|servlet. [Yann Ylavic] |
| |
| *) mod_dav: Open the lock database read-only when possible. |
| PR 36636 [Wilson Felipe <wfelipe gmail.com>, manu] |
| |
| *) mod_ldap: LDAPConnectionPoolTTL should accept negative values in order to |
| allow connections of any age to be reused. Up to now, a negative value |
| was handled as an error when parsing the configuration file. PR 66421. |
| [nailyk <bzapache nailyk.fr>, Christophe Jaillet] |
| |
| *) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302. |
| [Alessandro Cavaliere <alessandro.cavalier7 unibo.it>] |
| |
| *) mod_proxy_hcheck: Detect AJP/CPING support correctly. PR 66300. |
| [Alessandro Cavaliere <alessandro.cavalier7 unibo.it>] |
| |
| *) mod_proxy_hcheck: hcmethod now allows for HTTP/1.1 requests |
| using GET11, HEAD11 and/or OPTIONS11. [Jim Jagielski] |
| |
| *) mod_md: a bug was fixed that caused very large MDomains |
| with the combined DNS names exceeding ~7k to fail, as |
| request bodies would contain partially wrong data from |
| uninitialized memory. This would have appeared as failure |
| in signing-up/renewing such configurations. |
| [Stefan Eissing, Ronald Crane (Zippenhop LLC)] |
| |
| *) mod_proxy_http: Avoid 417 responses for non forwardable 100-continue. |
| PR 65666. [Yann Ylavic] |
| |
| *) mod_ssl: SSLFIPS compatible with OpenSSL 3.0. PR 66063. |
| [Petr Sumbera <petr.sumbera oracle.com>, Yann Ylavic] |
| |
| *) core: the conf/mime.types has been updated in conformance with RFC 9239: |
| - .js moved from 'application/javascript' to 'text/javascript' |
| - .mjs was added as 'text/javascript' |
| [Mathias Bynens <@mathiasbynens> via PR 318] |
| |
| *) mod_md: the `MDCertificateAuthority` directive can take more than one URL/name of |
| an ACME CA. This gives a failover for renewals when several consecutive attempts |
| to get a certificate failed. |
| A new directive was added: `MDRetryDelay` sets the delay of retries. |
| A new directive was added: `MDRetryFailover` sets the number of errored |
| attempts before an alternate CA is selected for certificate renewals. |
| [Stefan Eissing] |
| |
| *) mod_heartmonitor: Set the documented default value |
| "10" for HeartbeatMaxServers instead of "0". With "0" |
| no shared memory slotmem was initialized. [Rainer Jung] |
| |
| *) mod_md: fixed a bug leading to failed transfers for OCSP |
| stapling information when more than 6 certificates needed |
| updates in the same run. [Stefan Eissing] |
| |
| *) mod_http2: use the new REQUEST buckets to forward request |
| on secondary connections. Use the now generic |
| ap_process_connection() in h2 workers to process those. |
| [Stefan Eissing] |
| |
| *) Implement full auto status ("key: value" type status output). |
| Especially not only status summary counts for certificates and |
| OCSP stapling but also lists. Auto status format is similar to |
| what was used for mod_proxy_balancer. |
| [Rainer Jung] |
| |
| *) core/mod_http: use REQUEST meta buckets and a new HTTP/1.x specific |
| input filter to separate the handling for HTTP requests from the |
| handling of HTTP/1.x request parsing and checks. |
| A new HTTP1_REQUEST_IN filter installs itself on http/1.1 connections |
| before a request is being read. It generates either a REQUEST meta |
| bucket on success or an ERROR bucket with the proposed response status. |
| The core connection processing, relying on ap_read_request(), now expects |
| a REQUEST or ERROR bucket from the input filters and is agnostic to |
| specific HTTP versions and how they bring requests into the server. |
| [Stefan Eissing] |
| |
| *) mod_http2: remove unused and insecure code. Fixes PR66037. |
| Thanks to Ronald Crane (Zippenhop LLC) for reporting this. |
| [Stefan Eissing] |
| |
| *) mod_md: added support for managing certificates via a |
| local tailscale demon for users of that secure networking. |
| This gives trusted certificates for tailscale assigned |
| domain names in the *.ts.net space. |
| [Stefan Eissing] |
| |
| *) mod_md: a possible NULL pointer deref was fixed in |
| the JSON code for persisting time periods (start+end). |
| Fixes #282 on mod_md's github. |
| Thanks to @marcstern for finding this. |
| |
| *) core: Avoid an overflow on large inputs in ap_is_matchexp. PR 66033 |
| [Ruediger Pluem] |
| |
| *) core/mod_http: use RESPONSE meta buckets and a new HTTP/1.x specific |
| filter to send responses through the output filter chain. |
| Specifically: the HTTP_HEADER output filter and ap_send_interim_response() |
| create a RESPONSE bucket and no longer are concerned with HTTP/1.x |
| serialization. |
| A new HTTP1_RESPONSE_OUT transcode filter writes the proper HTTP/1.x |
| bytes when dealing with a RESPONSE bucket. That filter installs itself |
| on the pre_read_request hook when the connection has protocol 'http/1.1'. |
| [Stefan Eissing] |
| |
| *) MPM event: Restart children processes killed before idle maintenance. |
| PR 65769. [Yann Ylavic, Ruediger Pluem] |
| |
| *) core: Disable TCP_NOPUSH optimization on OSX since it might introduce |
| transmission delays. PR 66019. [Yann Ylavic] |
| |
| *) ab: Allow for TLSv1.3 when the SSL library supports it. |
| [abhilash1232 gmail.com, xiaolongx.jiang intel.com, Yann Ylavic] |
| |
| *) ab: Add the -W option to use worker threads, allowing for multiple CPUs |
| to handle the load. [Yann Ylavic] |
| |
| *) mod_substitute: Fix an integer overflow that can happen in very special |
| setups. PR 66034 [Ruediger Pluem] |
| |
| *) core: make ap_escape_quotes() work correctly on strings |
| with more than MAX_INT/2 characters, counting quotes double. |
| Credit to <generalbugs@zippenhop.com> for finding this. |
| [Stefan Eissing] |
| |
| *) core: adding a new hook and method to the API: |
| create_secondary_connection and ap_create_secondary_connection() |
| to setup connections related to a "master" one, as used in |
| the HTTP/2 protocol implementation. |
| *) mod_http2: using the new API calls to get rid of knowledge |
| about how the core handles conn_rec specifics. |
| Improvements in pollset stream handling to use less sets. |
| Using atomic read/writes instead of volatiles now. |
| Keeping a reserve of "transit" pools and bucket_allocs for |
| use on secondary connections to avoid repeated setup/teardowns. |
| |
| *) mod_proxy: Set a status code of 502 in case the backend just closed the |
| connection in reply to our forwarded request. [Ruediger Pluem] |
| |
| *) MPM event: Fix accounting of active/total processes on ungraceful restart, |
| PR 66004 (follow up to PR 65626 from 2.4.52). [Yann Ylavic] |
| |
| *) mod_proxy: Add backend port to log messages to |
| ease identification of involved service. [Rainer Jung] |
| |
| *) mod_systemd: Systemd socket activation can now be enabled at |
| build time but disabled at run time, if mod_systemd is not |
| loaded. [Lubos Uhliarik <luhliari redhat.com>] |
| |
| *) ab: Add an optional ramp delay when starting concurrent connections so |
| as to not trigger denial of service protection in the network. Report |
| levels of concurrency achieved in cases where the test completes before |
| full concurrency is achieved. [Graham Leggett] |
| |
| *) mod_http2: preserve the port number given in a HTTP/1.1 |
| request that was Upgraded to HTTP/2. Fixes PR65881. |
| [Stefan Eissing] |
| |
| *) mod_http2: :scheme pseudo-header values, not matching the |
| connection scheme, are forwarded via absolute uris to the |
| http protocol processing to preserve semantics of the request. |
| Checks on combinations of pseudo-headers values/absence |
| have been added as described in RFC 7540. |
| Fixes <https://github.com/icing/mod_h2/issues/230>. |
| [Stefan Eissing] |
| |
| *) core/mpm: add hook 'child_stopped` that gets called when the MPM has |
| stopped all processing in a child process. This is when all running |
| threads shall be stopped and joined. |
| [Stefan Eissing] |
| |
| *) core: Make sure and check that LimitXMLRequestBody fits in system memory. |
| [Ruediger Pluem, Yann Ylavic] |
| |
| *) ab: Fix the detection for when the server performed a legitimate |
| connection close as per RFC7230 6.3.1. We must check whedther the |
| connection was previously kept alive, and not whether the current |
| closed request is keepalive. [Graham Leggett] |
| |
| *) mod_rewrite: Make URI-to-filename rewrites work transparently with |
| proxy early mappings (mapping=servlet/decoded). [Yann Ylavic] |
| |
| *) mod_md: do not interfere with requests to /.well-known/acme-challenge/ |
| resources if challenge type 'http-01' is not configured for a domain. |
| Fixes <https://github.com/icing/mod_md/issues/279>. |
| [Stefan Eissing] |
| |
| *) mod_proxy: Bump limit of proxy workers names to 384 characters. PR 53218 |
| [Yann Ylavic] |
| |
| *) core: Simpler connection close logic if discarding the request body fails. |
| [Yann Ylavic, Ruediger Pluem] |
| |
| *) mod_proxy: Use the maxium of front end and backend timeouts instead of the |
| minimum when tunneling requests (websockets, CONNECT requests). |
| Backend timeouts can be configured more selectively (per worker if needed) |
| as front end timeouts and typically the backend timeouts reflect the |
| application requirements better. PR 65886 [Ruediger Pluem] |
| |
| *) mod_watchdog: use the `child_stopping` and `child_stopped` hooks |
| to shutdown workers before pool destruction releases global |
| resources and libraries. |
| [Stefan Eissing] |
| |
| *) ab: Respond appropriately to SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE. |
| Previously the correct event was polled for, but the response to the poll |
| would call write instead of read, and read instead of write. PR 55952 |
| [Graham Leggett] |
| |
| *) mod_md: the status description in MDomain's JSON, exposed in the |
| md-status handler (if configure) did sometimes not carry the correct |
| message when certificates needed renew. |
| [Stefan Eissing] |
| |
| *) mod_tls: Fix a linkage issue with rustls when compiled |
| with rust 1.55, 1.56 or 1.57. This prevents the loading |
| of the module because of an undefined symbol: fmaf |
| See https://github.com/rustls/rustls-ffi/issues/133 |
| [Christophe Jaillet] |
| |
| *) ap_regex: Use Thread Local Storage (TLS) to recycle ap_regexec() buffers |
| when an efficient TLS implementation is available. [Yann Ylavic] |
| |
| *) mod_reqtimeout: Fix missing handshake= timeout enforcement. [Yann Ylavic] |
| |
| *) mod_dav: Fix regression when gathering properties which could lead to huge |
| memory consumption proportional to the number of resources. |
| [Evgeny Kotkov, Ruediger Pluem] |
| |
| *) mod_unixd: CoreDumpDirectory requires enabling tracing on FreeBSD 11+. |
| PR 65819. [David CARLIER <devnexen gmail.com>] |
| |
| *) mpm_event: Fix a possible listener deadlock on heavy load when restarting |
| and/or reaching MaxConnectionsPerChild. PR 65769. [Yann Ylavic] |
| |
| *) http: Enforce that fully qualified uri-paths not to be forward-proxied |
| have an http(s) scheme, and that the ones to be forward proxied have a |
| hostname, per HTTP specifications. [Ruediger Pluem, Yann Ylavic] |
| |
| *) mod_http2: fixed a bug in v2.0.0 that could lead to an infinite |
| loop when clients close connections prematurely. |
| Enhanced the scoreboard status updates on h2 connections for |
| mod_status. 'server-status' now gives a better idea what the |
| connection is working on. |
| [Stefan Eissing] |
| |
| *) mod_http: Correctly sent a 100 Continue status code when sending an interim |
| response as result of an Expect: 100-Continue in the request and not the |
| current status code of the request. PR 65725 [Ruediger Pluem] |
| |
| *) mod_proxy_connect: Honor the smallest of the backend or client timeout |
| while tunneling. [Yann Ylavic] |
| |
| *) mod_http2: a regression in v1.15.24 of the modules was fixed that |
| could lead to httpd child processes not being terminated on a |
| graceful reload or when reaching MaxConnectionsPerChild. |
| When unprocessed h2 requests were queued at the time, these could stall. |
| See <https://github.com/icing/mod_h2/issues/212>. |
| [@hansborr, @famzah, Stefan Eissing] |
| |
| *) mod_proxy_uwsgi: Remove duplicate slashes at the beginning of PATH_INFO. |
| PR 65616. [Ruediger Pluem] |
| |
| *) mod_md: Fix memory leak in case of failures to load the private key. |
| PR 65620 [ Filipe Casal <filipe.casal@trailofbits.com> ] |
| |
| * mod_http2: the new pollset implementation is disabled when |
| compiling with an APR version less than 1.6. |
| |
| *) mod_autoindex: Add "IndexForbiddenReturn404" to return 404 instead of a |
| 403 when Options does not included "indexes". [Eric Covener] |
| |
| *) mod_dir: Add "NotFound" option to "DirectorySlash" directive to return |
| 404 instead of a DirectorySlash redirect. [Eric Covener] |
| |
| *) mod_md: adding v2.4.8 with the following changes |
| - Added support for ACME External Account Binding (EAB). |
| Use the new directive `MDExternalAccountBinding` to provide the |
| server with the value for key identifier and hmac as provided by |
| your CA. |
| While working on some servers, EAB handling is not uniform |
| across CAs. First tests with a Sectigo Certificate Manager in |
| demo mode are successful. But ZeroSSL, for example, seems to |
| regard EAB values as a one-time-use-only thing, which makes them |
| fail if you create a seconde account or retry the creation of the |
| first account with the same EAB. |
| - The directive 'MDCertificateAuthority' now checks if its parameter |
| is a http/https url or one of a set of known names. Those are |
| 'LetsEncrypt', 'LetsEncrypt-Test', 'Buypass' and 'Buypass-Test' |
| for now and they are not case-sensitive. |
| The default of LetsEncrypt is unchanged. |
| - `MDContactEmail` can now be specified inside a `<MDomain dnsname>` |
| section. |
| - Treating 401 HTTP status codes for orders like 403, since some ACME |
| servers seem to prefer that for accessing oders from other accounts. |
| - When retrieving certificate chains, try to read the repsonse even |
| if the HTTP Content-Type is unrecognized. |
| - Fixed a bug that reset the error counter of a certificate renewal |
| and prevented the increasing delays in further attempts. |
| - Fixed the renewal process giving up every time on an already existing |
| order with some invalid domains. Now, if such are seen in a previous |
| order, a new order is created for a clean start over again. |
| See <https://github.com/icing/mod_md/issues/268> |
| - Fixed a mixup in md-status handler when static certificate files |
| and renewal was configured at the same time. |
| |
| *) mod_http2: |
| - Fixed an issue since 1.15.24 that "Server" headers in proxied requests |
| were overwritten instead of preserved. [PR by @daum3ns] |
| - Added directove 'H2StreamTimeout' to configure a separate value for HTTP/2 |
| streams, overriding server's 'Timeout' configuration. [rpluem] |
| - HTTP/2 connections now use pollsets to monitor the status of the |
| ongoing streams and their main connection when host OS allows this. |
| - Removed work-arounds for older versions of libnghttp2 and checking |
| during configure that at least version 1.15.0 is present. |
| - The HTTP/2 connection state handler, based on an experiment and draft |
| at the IETF http working group (abandoned for some time), has been removed. |
| - H2SerializeHeaders no longer has an effect. A warning is logged when it is |
| set to "on". The switch enabled the internal writing of requests to be parsed |
| by the internal HTTP/1.1 protocol handler and was introduced to avoid |
| potential incompatibilities during the introduction of HTTP/2. |
| - Removed the abort/redo of tasks when mood swings lower the active limit. |
| [Ruediger Pluem, daum3ns, Stefan Eissing] |
| |
| *) core: Be safe with ap_lingering_close() called with a socket NULL-ed by |
| a third-party module. PR 65627. |
| [acmondor <bz.apache.org acmondor.ca>, Yann Ylavic] |
| |
| *) mpm_event: Restart stopping of idle children after a load peak. PR 65626. |
| [Yann Ylavic, Ruediger Pluem] |
| |
| *) mod_proxy: SetEnv proxy-nohalfclose (or alike) allows to disable TCP |
| half-close forwarding when tunneling protocols. [Yann Ylavic] |
| |
| *) mod_tls: added mod_tls from abetterinternet, donated |
| by ISRG/Prossimo <https://github.com/abetterinternet/mod_tls>. |
| - adds font-/backend TLS (v1.2/v1.3) via the Rust rustls crate |
| and its rustls-ffi C binding <https://github.com/rustls/rustls-ffi>. |
| - documentation at <https://github.com/abetterinternet/mod_tls> |
| (adding to Apache's manual TBD) |
| - build support for Apache httpd configure on *nix platforms, |
| rustls is linked statically into mod_tls. |
| |
| *) mod_md: values for External Account Binding (EAB) can |
| now also be configured to be read from a separate JSON |
| file. This allows to keep server configuration permissions |
| world readable without exposing secrets. |
| [Stefan Eissing] |
| |
| *) core: Add ap_unescape_url_ex() for better decoding control, and deprecate |
| unused AP_NORMALIZE_DROP_PARAMETERS flag. |
| [Yann Ylavic, Ruediger Pluem, Stefan Eissing, Joe Orton] |
| |
| *) core: AP_NORMALIZE_DECODE_UNRESERVED should normalize the second dot in |
| the uri-path when it's preceded by a dot. [Yann Ylavic] |
| |
| *) mod_proxy: New tunnel_forward hooking mechanism allowing modules to handle |
| Upgrade(d) protocols data. [Yann Ylavic] |
| |
| *) mod_dav: Correctly handle errors returned by dav providers on REPORT |
| requests. [Ruediger Pluem] |
| |
| *) mod_rewrite: Fix UDS ("unix:") scheme for [P] rules. PR 57691 + 65590. |
| [Janne Peltonen <janne.peltonen sange.fi>] |
| |
| *) mod_proxy: Handle UDS URIs with empty hostname ("unix:///...") as if they |
| had no hostname ("unix:/..."). [Yann Ylavic] |
| |
| *) event mpm: Correctly count active child processes in parent process if |
| child process dies due to MaxConnectionsPerChild. |
| PR 65592 [Ruediger Pluem] |
| |
| *) core: Add ap_pre_connection() as a wrapper to ap_run_pre_connection() |
| and use it to prevent that failures in running the pre_connection |
| hook cause crashes afterwards. [Ruediger Pluem] |
| |
| *) mod_md: fixed a bug in handling multiple parallel OCSP requests. These could |
| run into an assertion which terminated (and restarted) the child process where |
| the task was running. Eventually, all OCSP responses were collected, but not |
| in the way that things are supposed to work. |
| See also <https://bz.apache.org/bugzilla/show_bug.cgi?id=65567>. |
| The bug was possibly triggered when more than one OCSP status needed updating |
| at the same time. For example for several renewed certificates after a server |
| reload. |
| |
| *) mod_md: when MDMessageCmd for a 'challenge-setup:<type>:<dnsname>' |
| fails (!= 0 exit), the renewal process is aborted and an error is |
| reported for the MDomain. This provides scripts that distribute |
| information in a cluster to abort early with bothering an ACME |
| server to validate a dns name that will not work. The common |
| retry logic will make another attempt in the future, as with |
| other failures. |
| Fixed a bug when adding private key specs to an already working |
| MDomain, see <https://github.com/icing/mod_md/issues/260>. |
| [Stefan Eissing] |
| |
| *) core: Add ap_create_connection() to create either a server or client/proxy |
| connection. |
| |
| *) mod_http2: when a server is restarted gracefully, any idle h2 worker |
| threads are shut down immediately. [Stefan Eissing] |
| |
| *) core: Initialize the request fields on read failure to avoid NULLs. |
| [Yann Ylavic] |
| |
| *) mod_proxy: Do not canonicalize the proxied URL when both "nocanon" and |
| "ProxyPassInterpolateEnv On" are configured. PR 65549. |
| [Joel Self <joelself gmail.com>] |
| |
| *) mpm_event: Fix children processes possibly not stopped on graceful |
| restart. PR 63169. [Joel Self <joelself gmail.com>] |
| |
| *) mod_unique_id: Reduce the time window where duplicates may be generated |
| PR 65159 |
| [Christophe Jaillet] |
| |
| *) Revert "mod_unique_id: Fix potential duplicated ID generation under heavy load. |
| PR 65159" added in 2.4.47. |
| This causes issue on Windows. |
| [Christophe Jaillet] |
| |
| *) mod_proxy_uwsgi: Fix PATH_INFO setting for generic worker. [Yann Ylavic] |
| |
| *) mod_md: Certificate/keys pairs are verified as matching before a renewal is accepted |
| as successful or a staged renewal is replacing the existing certificates. |
| This avoid potential mess ups in the md store file system to render the active |
| certificates non-working. [@mkauf] |
| |
| *) mod_proxy: Fix a potential infinite loop when tunneling Upgrade(d) |
| protocols from mod_proxy_http, and a timeout triggering falsely when |
| using mod_proxy_wstunnel, mod_proxy_connect or mod_proxy_http with |
| upgrade= setting. PRs 65521 and 65519. [Yann Ylavic] |
| |
| *) mod_proxy: Faster unix socket path parsing in the "proxy:" URL. |
| [Yann Ylavic] |
| |
| *) mpm_event: Fix graceful stop/restart of children processes if connections |
| are in lingering close for too long. [Yann Ylavic] |
| |
| *) mod_md: fixed a potential null pointer dereference if ACME/OCSP |
| server returned 2xx responses without content type. Reported by chuangwen. |
| [chuangwen, Stefan Eissing] |
| |
| * core/mpm: add hook 'child_stopping` that gets called when the MPM is |
| stopping a child process. The additional `graceful` parameter allows |
| registered hooks to free resources early during a graceful shutdown. |
| [Yann Ylavic, Stefan Eissing] |
| |
| *) mod_proxy: Fix icomplete initialization of BalancerMember(s) from the |
| balancer-manager, which can lead to a crash. [Yann Ylavic] |
| |
| *) mod_http2: |
| - Aborting requests via RST_STREAM no longer affect the available |
| resources of a connection when the first chunk of the response |
| body has been sent. |
| - H2Min/MaxWorkers behave as intended again. The module will initially |
| create H2MinWorkers threads and add up to H2MaxWorkers when needed. These |
| additional workers time out when idle after H2MaxWorkerIdleSeconds and |
| disappear again. |
| - Added a timeout to h2 worker cleanup to exit latest after 5 seconds of |
| waiting on idle workers to terminate. This happens after all connections |
| have been processed. a WARNING is logged in case workers lagged behind. |
| - When the shutdown of a child is detected (e.g. graceful shutdown), the |
| module will terminate all idle workers above H2MinWorkers right away. |
| This detection currently only happens when a HTTP/2 connection is active. |
| [Stefan Eissing] |
| |
| *) mod_md: |
| - Domain names in `<MDomain ...>` can now appear in quoted form. |
| - Fixed a failure in ACME challenge selection that aborted further searches |
| when the tls-alpn-01 method did not seem to be suitable. |
| - Changed the tls-alpn-01 setup to only become unsuitable when none of the |
| dns names showed support for a configured 'Protocols ... acme-tls/1'. This |
| allows use of tls-alpn-01 for dns names that are not mapped to a VirtualHost. |
| [Stefan Eissing] |
| |
| *) core/mod_proxy/mod_ssl: |
| Adding `outgoing` flag to conn_rec, indicating a connection is |
| initiated by the server to somewhere, in contrast to incoming |
| connections from clients. |
| Adding 'ap_ssl_bind_outgoing()` function that marks a connection |
| as outgoing and is used by mod_proxy instead of the previous |
| optional function `ssl_engine_set`. This enables other SSL |
| module to secure proxy connections. |
| The optional functions `ssl_engine_set`, `ssl_engine_disable` and |
| `ssl_proxy_enable` are now provided by the core to have backward |
| compatibility with non-httpd modules that might use them. mod_ssl |
| itself no longer registers these functions, but keeps them in its |
| header for backward compatibility. |
| The core provided optional function wrap any registered function |
| like it was done for `ssl_is_ssl`. |
| [Stefan Eissing] |
| |
| *) mod_h2: Don't strip headers from 304 responses. [Yann Ylavic] |
| |
| *) mod_proxy: Fix possible reuse/merging of Proxy(Pass)Match worker instances |
| with others when their URLs contain a '$' substitution. PR 65419. |
| [Yann Ylavic] |
| |
| *) mpm_prefork: Block signals for child_init hooks to prevent potential |
| threads created from there to catch MPM's signals. |
| [Ruediger Pluem, Yann Ylavic] |
| |
| *) mod_ssl: tighten the handling of ALPN for outgoing (proxy) |
| connections. If ALPN protocols are provided and sent to the |
| remote server, the received protocol selected is inspected |
| and checked for a match. Without match, the peer handshake |
| fails. |
| An exception is the proposal of "http/1.1" where it is |
| accepted if the remote server did not answer ALPN with |
| a selected protocol. This accomodates for hosts that do |
| not observe/support ALPN and speak http/1.x be default. |
| |
| * mod_log_config/mod_ssl: moved the log_handlers registered by mod_ssl |
| into mod_log_config itself. These now use the global `ap_ssl_var_lookup()` |
| functions and work for all running SSL modules. |
| The dependency from mod_ssl to mod_log_config and its header is removed. |
| mod_ssl now provides the content of "{errstr}c" as variable "SSL_CLIENT_VERIFY_ERRSTR". |
| This change should be fully compatible to all deployed configurations. |
| [Stefan Eissing] |
| |
| *) dbm: Split the loading of a dbm driver from the opening of a dbm file. When |
| an attempt to load a dbm driver fails, log clearly which driver triggered |
| the error (not "default"), and what the error was. [Graham Leggett] |
| |
| *) core: Fix a regression that stripped the ETag header from 304 responses. |
| PR 61820 [Ruediger Pluem, Roy T. Fielding] |
| |
| *) core/mod_ssl/mod_md: adding OCSP response provisioning as core feature. This |
| allows modules to access and provide OCSP response data without being tied |
| of each other. The data is exchanged in standard, portable formats (PEM encoded |
| certificates and DER encoded responses), so that the actual SSL/crypto |
| implementations used by the modules are independant of each other. |
| Registration and retrieval happen in the context of a server (server_rec) |
| which modules may use to decide if they are configured for this or not. |
| The area of changes: |
| 1. core: defines 2 functions in include/http_ssl.h, so that modules may |
| register a certificate, together with its issuer certificate for OCSP |
| response provisioning and ask for current response data (DER bytes) later. |
| Also, 2 hooks are defined that allow modules to implement this OCSP |
| provisioning. |
| 2. mod_ssl uses the new functions, in addition to what it did already, to |
| register its certificates this way. If no one is interested in providing |
| OCSP, it falls back to its own (if configured) stapling implementation. |
| 3. mod_md registers itself at the core hooks for OCSP provisioning. Depending |
| on configuration, it will accept registrations of its own certificates only, |
| all certificates or none. |
| [Stefan Eissing] |
| |
| *) mod_proxy_wstunnel: Add ProxyWebsocketFallbackToProxyHttp to opt-out the |
| fallback to mod_proxy_http for WebSocket upgrade and tunneling. |
| [Yann Ylavic] |
| |
| *) mod_proxy_hcheck: Honor worker timeout settings. [Yann Ylavic] |
| |
| *) mod_lua: Add support to Lua 5.4 [Joe Orton, Giovanni Bechis, Ruediger Pluem] |
| |
| *) mod_md: Tolerate a missing "revokeCert" or "keyChange" resource. |
| [Fraser Tweedale <ftweedal redhat.com>] |
| |
| *) mod_ssl: Add SSL_{CLIENT,SERVER}_B64CERT variables with |
| base64-encoded DER certificates. Add SSL_CLIENT_B64CERT_CHAIN_n |
| equivalents for SSL_CLIENT_CERT_CHAIN_n, and new |
| "ExportBase64CertData" argument for SSLOptions. PR 65169. |
| [Joe Orton] |
| |
| *) mod_proxy_balancer: Include nonce in XML output. PR 63074. |
| Federico Mennite <federico.mennite lifeware.ch> |
| |
| *) mod_http2: Fixed a race condition that could lead to streams being |
| aborted (RST to the client), although a response had been produced. |
| [Stefan Eissing] |
| |
| *) mod_unique_id: Fix potential duplicated ID generation under heavy load. |
| PR 65159 |
| [Jonas Müntener <jonas.muentener ergon.ch>, Christophe Jaillet] |
| |
| *) core: provide ap_ssl_* functions in new http_ssl.h header file. |
| [Stefan Eissing] |
| |
| *) mod_socache_shmcb: Avoid double SHM cleanup and possible crash on |
| restart/stop. PR 59798. [Yann Ylavic] |
| |
| *) mod_md: v2.4.0 with improvements and bugfixes |
| - MDPrivateKeys allows the specification of several types. Beside "RSA" plus |
| optional key lengths elliptic curves can be configured. This means you can |
| have multiple certificates for a Managed Domain with different key types. |
| With ```MDPrivateKeys secp384r1 rsa2048``` you get one ECDSA and one RSA |
| certificate and all modern client will use the shorter ECDSA, while older |
| client will get the RSA certificate. |
| Many thanks to @tlhackque who pushed and helped on this. |
| - Support added for MDomains consisting of a wildcard. Configuring |
| ```MDomain *.host.net``` will match all virtual hosts matching that pattern |
| and obtain one certificate for it (assuming you have 'dns-01' challenge |
| support configured). Addresses #239. |
| - Removed support for ACMEv1 servers. The only known installation used to |
| be Let's Encrypt which has disabled that version more than a year ago for |
| new accounts. |
| - Andreas Ulm (<https://github.com/root360-AndreasUlm>) implemented the |
| ```renewing``` call to ```MDMessageCmd``` that can deny a certificate |
| renewal attempt. This is useful in clustered installations, as |
| discussed in #233). |
| - New event ```challenge-setup:<type>:<domain>```, triggered when the |
| challenge data for a domain has been created. This is invoked before the |
| ACME server is told to check for it. The type is one of the ACME challenge |
| types. This is invoked for every DNS name in a MDomain. |
| - The max delay for retries has been raised to daily (this is like all |
| retries jittered somewhat to avoid repeats at fixed time of day). |
| - Certain error codes reported by the ACME server that indicate a problem |
| with the configured data now immediately switch to daily retries. For |
| example: if the ACME server rejects a contact email or a domain name, |
| frequent retries will most likely not solve the problem. But daily retries |
| still make sense as there might be an error at the server and un-supervised |
| certificate renewal is the goal. Refs #222. |
| - Test case and work around for domain names > 64 octets. Fixes #227. |
| When the first DNS name of an MD is longer than 63 octets, the certificate |
| request will not contain a CN field, but leave it up to the CA to choose one. |
| Currently, Lets Encrypt looks for a shorter name in the SAN list given and |
| fails the request if none is found. But it is really up to the CA (and what |
| browsers/libs accept here) and may change over the years. That is why |
| the decision is best made at the CA. |
| - Retry delays now have a random +/-[0-50]% modification applied to let |
| retries from several servers spread out more, should they have been |
| restarted at the same time of day. |
| - Fixed several places where the 'badNonce' return code from an ACME server |
| was not handled correctly. The test server 'pebble' simulates this behaviour |
| by default and helps nicely in verifying this behaviour. Thanks, pebble! |
| - Set the default `MDActivationDelay` to 0. This was confusing to users that |
| new certificates were deemed not usably before a day of delay. When clocks are |
| correct, using a new certificate right away should not pose a problem. |
| - When handling ACME authorization resources, the module no longer requires |
| the server to return a "Location" header, as was necessary in ACMEv1. |
| Fixes #216. |
| - Fixed a theoretical uninitialized read when testing for JSON error responses |
| from the ACME CA. Reported at <https://bz.apache.org/bugzilla/show_bug.cgi?id=64297>. |
| - ACME problem reports from CAs that include parameters in the Content-Type |
| header are handled correctly. (Previously, the problem text would not be |
| reported and retries could exist CA limits.) |
| - Account Update transactions to V2 CAs now use the correct POST-AS-GET method. |
| Previously, an empty JSON object was sent - which apparently LE accepted, |
| but others reject. |
| - MDCertificateFile and MDCertificateKeyFile can now be specified several |
| times to add multiple, static certificates to a MDomain. |
| [Stefan Eissing, @tlhackque, Andreas Ulm] |
| |
| *) mod_session: Improve session parsing. [Yann Yalvic] |
| |
| *) mod_proxy_hcheck: Don't pile up health checks if the previous one did |
| not finish before hcinterval. PR 63010. [Yann Ylavic] |
| |
| *) core: Adding SSL related inquiry functions to the server API. |
| These function are always available, even when no module providing |
| SSL is loaded. They provide their own "shadowing" implementation for |
| the optional functions of similar name that mod_ssl and impersonators |
| of mod_ssl provide. |
| This enables loading of several SSL providing modules when all but |
| one of them registers itself into the new hooks. Two old-style SSL |
| modules will not work, as they replace the others optional functions |
| with their own. |
| Modules using the old-style optional functions will continue to work |
| as core supplies its own versions of those. |
| The following has been added so far: |
| - ap_ssl_conn_is_ssl() to query if a connection is using SSL. |
| - ap_ssl_var_lookup() to query SSL related variables for a |
| server/connection/request. |
| - Hooks for 'ssl_conn_is_ssl' and 'ssl_var_lookup' where modules |
| providing SSL can install their own value supplying functions. |
| - ap_ssl_add_cert_files() to enable other modules like mod_md to provide |
| certificate and keys for an SSL module like mod_ssl. |
| - ap_ssl_add_fallback_cert_files() to enable other modules like mod_md to |
| provide a fallback certificate in case no 'proper' certificate is |
| available for an SSL module like mod_ssl. |
| - ap_ssl_answer_challenge() to enable other modules like mod_md to |
| provide a certificate as used in the RFC 8555 'tls-alpn-01' challenge |
| for the ACME protocol for an SSL module like mod_ssl. The function |
| and its hook provide PEM encoded data instead of file names. |
| - Hooks for 'ssl_add_cert_files', 'ssl_add_fallback_cert_files' and |
| 'ssl_answer_challenge' where modules like mod_md can provide providers |
| to the above mentioned functions. |
| [Stefan Eissing] |
| |
| *) mod_http2: new option 'H2OutputBuffering on/off' which controls the |
| buffering of stream output. The default is on, which is the behaviour of |
| previous mod-h2 versions. When off, all bytes are made available immediately |
| to the main connection for sending them out to the client. This fixes interop |
| issues with certain flavours of gRPC. [Stefan Eissing] |
| |
| *) mod_authnz_ldap: Prevent authentications with empty passwords for the |
| initial bind to fail with status 500. [Ruediger Pluem] |
| |
| *) mod_http2: Fixed reporting of transferred bytes for mod_logio for |
| modifiers %O (and %S) to report the number of transferred header and |
| body lengths. This is still only an approximation of the bytes on the |
| connection. The data is subject to header compression and h2 framing |
| afterwards. [Stefan Eissing] |
| |
| *) mod_cgid: Intercept and log stderr output correctly on Unix systems |
| supporting fd passing. PR 54221. [Joe Orton] |
| |
| *) mod_auth_digest: Fast validation of the nonce's base64 to fail early if |
| the format can't match anyway. [Yann Ylavic] |
| |
| *) mod_xml2enc: Update check to match MIME types matching |
| "+xml" rather than anything containing "xml", avoiding |
| corruption of Microsoft OOXML formats. PR 64339. |
| [Joseph Heenan <joseph.heenan fintechlabs.io>] |
| |
| *) mod_proxy_wstunnel: Leave Upgrade requests handling to mod_proxy_http, |
| allowing for (non-)Upgrade negotiation with the origin server. |
| [Yann Ylavic] |
| |
| *) mod_ssl: SSLProxyMachineCertificateFile/Path may reference files |
| which include CA certificates; those CA certs are treated as if |
| configured with SSLProxyMachineCertificateChainFile. [Joe Orton] |
| |
| *) mpm_event: don't reset connections after lingering close, restoring prior |
| to 2.4.28 behaviour. [Yann Ylavic] |
| |
| *) mod_dav_fs: Improve logging output when failing to open files for |
| writing. PR 64413. [Bingyu Shen <ahshenbingyu gmail.com>] |
| |
| *) mod_proxy: Add optional third argument for ProxyRemote, which |
| configures Basic authentication credentials to pass to the remote |
| proxy. PR 37355. [Joe Orton] |
| |
| *) mod_proxy_http: Fix 100-continue deadlock for spooled request bodies, |
| leading to Request Timeout (408). PR 63855. [Yann Ylavic] |
| |
| *) http: Allow unknown response status' lines returned in the form of |
| "HTTP/x.x xxx Status xxx". [Yann Ylavic] |
| |
| *) mod_proxy_fcgi: Honor "SetEnv proxy-sendcl" to forward a chunked |
| Transfer-Encoding from the client, spooling the request body when needed |
| to provide a Content-Length to the backend. PR 57087. [Yann Ylavic] |
| |
| *) mpm_event: kill connections in keepalive state only when there is no more |
| workers available, not when the maximum number of connections is reached, |
| restoring prior to 2.4.30 behaviour. [Yann Ylavic] |
| |
| *) mod_allowmethods: Allow methods to be added/removed with +/- prefix. PR64785. |
| [Marcel Montes <spiceman gmail.com>] |
| |
| *) mod_unique_id: Use base64url encoding for UNIQUE_ID variable, |
| avoiding the use of '@'. PR 57044. |
| [Michael Kaufmann <apache-bugzilla michael-kaufmann.ch>] |
| |
| *) core: add ReadBufferSize, FlushMaxThreshold and FlushMaxPipelined |
| directives. [Yann Ylavic] |
| |
| *) mod_md: lowered the required minimal libcurl version from 7.50 to 7.29 |
| as proposed by <alexander.gerasimov@codeit.pro>. |
| |
| *) mod_http2: Log requests and sent the configured error response in case of |
| early detected errors like too many or too long headers. |
| [Ruediger Pluem, Stefan Eissing] |
| |
| *) mod_proxy_uwsgi: Fix a crash when sending environment variables with no |
| value. PR 64598 [Ruediger Pluem] |
| |
| *) mod_cgi/mod_cgid: Avoid a second read from a CGI script after a |
| timeout, which effectively doubled the configured timeout setting. |
| PR 64709. [Joe Orton] |
| |
| *) core: handle headers when replying a 304 following RFC7234. |
| [Giovanni Bechis] |
| |
| *) mod_http2: remove support for abandoned http-wg draft |
| <https://datatracker.ietf.org/doc/draft-kazuho-h2-cache-digest/>. |
| [Stefan Eissing] |
| |
| *) mod_proxy_uwsgi: Error out on HTTP header larger than 16K (hard |
| protocol limit). [Yann Ylavic] |
| |
| *) mod_dav: Some DAV extensions, like CalDAV, specify both document |
| elements and property elements that need to be taken into account |
| when generating a property. The document element and property element |
| are made available in the dav_liveprop_elem structure under the |
| DAV_PROP_ELEMENT key in the resource pool. [Graham Leggett] |
| |
| *) mod_dav: Add utility functions dav_validate_root_ns(), |
| dav_find_child_ns(), dav_find_next_ns(), dav_find_attr_ns() and |
| dav_find_attr() so that other modules get to play too. |
| [Graham Leggett] |
| |
| *) mod_http2: |
| Fixes <https://github.com/icing/mod_h2/issues/200>: |
| "LimitRequestFields 0" now disables the limit, as documented. |
| Fixes <https://github.com/icing/mod_h2/issues/201>: |
| Do not count repeated headers with same name against the field |
| count limit. The are merged internally, as if sent in a single HTTP/1 line. |
| [Stefan Eissing] |
| |
| *) mod_http2: Avoid segfaults in case of handling certain responses for |
| already aborted connections. [Stefan Eissing, Ruediger Pluem] |
| |
| *) core: Remove support for the Content-MD5 header, removed in RFC7231. |
| Functions ap_md5digest() and ap_md5contextTo64() removed, and |
| ContentDigest directive. [Graham Leggett] |
| |
| *) mod_dav: Allow other DAV modules to use dav_get_resource(). |
| [Graham Leggett] |
| |
| *) mpm_common: remove ap_mpm_unregister_poll_callback() and |
| mpm_unregister_poll_callback hook. [Yann Ylavic] |
| |
| *) mod_proxy_http: add asynchronous handling of Upgrade(d) protocols, |
| where idle connections are returned to the MPM and rescheduled on |
| another thread when ready. [Yann Ylavic] |
| |
| *) mod_dav: Add method_precondition hook. WebDAV extensions define |
| conditions that must exist before a WebDAV method can be executed. |
| This hook allows a WebDAV extension to verify these preconditions. |
| [Graham Leggett] |
| |
| *) Add hooks deliver_report and gather_reports to mod_dav.h. Allows other |
| modules apart from versioning implementations to handle the REPORT method. |
| [Graham Leggett] |
| |
| *) Add dav_get_provider(), dav_open_lockdb() and dav_close_lockdb() mod_dav.h. |
| [Graham Leggett] |
| |
| *) "[mod_dav_fs etag handling] should really honor the FileETag setting". |
| - It now does. |
| - Add "Digest" to FileETag directive, allowing a strong ETag to be |
| generated using a file digest. |
| - Add ap_make_etag_ex() and ap_set_etag_fd() to allow full control over |
| ETag generation. |
| - Add concept of "binary notes" to request_rec, allowing packed bit flags |
| to be added to a request. |
| - First binary note - AP_REQUEST_STRONG_ETAG - allows modules to force |
| the ETag to a strong ETag to comply with RFC requirements, such as those |
| mandated by various WebDAV extensions. |
| [Graham Leggett] |
| |
| *) mod_ssl: Fix a race condition and possible crash when using a proxy client |
| certificate (SSLProxyMachineCertificateFile). |
| [Armin Abfalterer <a.abfalterer gmail.com>] |
| |
| *) mod_proxy: recognize parameters from ProxyPassMatch workers with dollar |
| substitution, such that they apply to the backend connection. Note that |
| connection reuse is disabled by default to avoid compatibility issues. |
| [Takashi Sato, Jan Kaluza, Eric Covener, Yann Ylavic, Jean-Frederic Clere] |
| |
| *) mod_proxy_http: remove proxy-sendchunked and proxy-sendchunks |
| handling, the default behaviour being now to stream the request body |
| using Content-Length when the length is known and fall back to chunked |
| Transfer-Encoding otherwise (unless proxy-sendcl is set thus requiring |
| that the request body be spooled to memory or filesystem). [Yann Ylavic] |
| |
| *) mod_ldap: Avoid performance overhead of APR-util rebind cache for |
| OpenLDAP 2.2+. PR 64414. [Joe Orton] |
| |
| *) mod_proxy_http: flush spooled request body in one go to avoid |
| leaking (or long lived) temporary file. PR 64452. [Yann Ylavic] |
| |
| *) mod_proxy_fcgi: ProxyFCGISetEnvIf unsets variables when expression |
| evaluates to false. PR64365. [Michael König <mail ikoenig.net>] |
| |
| *) mod_proxy_http: handle Upgrade request, 101 (Switching Protocol) response |
| and switched protocol forwarding. [Yann Ylavic] |
| |
| *) mod_ssl: The "ssl_var_lookup" optional function API now takes a |
| const char *name argument and returns a const char * string |
| value. The pool argument must now be non-NULL. [Joe Orton] |
| |
| *) mod_ssl: With OpenSSL 1.1.1 and later, SSLRandomSeed is now |
| ignored. OpenSSL must be configured with a suitable entropy |
| source, or mod_ssl will fail to start up. [Joe Orton] |
| |
| *) mod_ssl: With OpenSSL 1.1.1 and later, client-initiated |
| renegotiation in TLSv1.2 and earlier is blocked at SSL library |
| level (with a TLS warning alert sent), rather than by aborting |
| the connection inside mod_ssl. [Joe Orton] |
| |
| *) core: Add optional "options=" argument to Listen. Supported |
| keywords are "freebind", "reuseport" and "v6only". PR 61865. |
| [Jan Kaluza, Lubos Uhliarik <luhliari redhat.com>, Joe Orton] |
| |
| *) config: Allow for environment variable substitution with default value, |
| for when the variable is not defined, using format ${VAR?=default value}. |
| [Yann Ylavic] |
| |
| *) htcacheclean: Empty directories in CacheRoot are still present even after |
| using "-t". PR64313 [Petros Marios Prokopiou <pprokopi redhat.com>, |
| Ruediger Pluem, Jean-Frederic Clere] |
| |
| *) mod_reqtimeout: Cannot override default Virtualhost's mod_reqtimeout. |
| PR64295 [Jean-Frederic Clere] |
| |
| *) mod_proxy: Allow ProxyErrorOverride to be restricted to specific status |
| codes. PR63628. [Martin Drößler <mail martindroessler.de>] |
| |
| *) configtest: Issue a warning for non-existent directories in <Directory> config |
| sections. PR63079. [Stephane Blondon <stephane.blondon gmail.com>]. |
| |
| *) mod_proxy_http: Fix random memory-corruption in case of an error while |
| reading a response from the backend. |
| PR 64234 [Ruediger Pluem, Barnim Dzwillo <dzwillo@strato.de>] |
| |
| *) core: Use a temporary file when writing the pid file, avoiding |
| startup failure if an empty pidfile is left over from a |
| previous crashed or aborted invocation of httpd. PR 63140. |
| [Nicolas Carrier <carrier.nicolas0 gmail.com>, Joe Orton] |
| |
| *) mod_http2: Fixes issue where mod_unique_id would generate non-unique request |
| identifier under load, see <https://github.com/icing/mod_h2/issues/195>. |
| [Michael Kaufmann, Stefan Eissing] |
| |
| *) mod_session_cookie: Add SessionCookieMaxAge to allow the mod_session |
| cookie to be sent as a "session cookie" with no expiration even when the |
| SessionMaxAge will be enforced on the server. PR56040 [Eric Covener] |
| |
| *) mod_session: Fix an issue that blocked new sessions being created after |
| session expiration or other session errors. PR56052 [Eric Covener] |
| |
| *) mod_proxy_hcheck: Allow healthcheck expressions to use %{Content-Type}. |
| PR64140. [Renier Velazco <renier.velazco upr.edu>] |
| |
| *) mod_ssl: Fix memory leak of OCSP stapling response. [Yann Ylavic] |
| |
| *) mod_authz_groupfile: Drop AH01666 from loglevel "error" to "info". |
| PR64172. |
| |
| *) mod_usertrack: Add CookieSameSite, CookieHTTPOnly, and CookieSecure |
| to allow customization of the usertrack cookie. PR64077. |
| [Prashant Keshvani <prashant2400 gmail.com>, Eric Covener] |
| |
| *) mpm_event: avoid possible KeepAlveTimeout off by -100 ms. |
| [Eric Covener, Yann Ylavic] |
| |
| *) mod_md: |
| - Prefer MDContactEmail directive to ServerAdmin for registration. New directive |
| thanks to Timothe Litt (@tlhackque). |
| - protocol check for pre-configured "tls-alpn-01" challenge has been improved. It will now |
| check all matching virtual hosts for protocol support. Thanks to @mkauf. |
| - Corrected a check when OCSP stapling was configured for hosts |
| where the responsible MDomain is not clear, by Michal Karm Babacek (@Karm). |
| - Softening the restrictions where mod_md configuration directives may appear. This should |
| allow for use in <If> and <Macro> sections. If all possible variations lead to the configuration |
| you wanted in the first place, is another matter. |
| [Michael Kaufmann <mail michael-kaufmann.ch>, Timothe Litt (@tlhackque), |
| Michal Karm Babacek (@Karm), Stefan Eissing (@icing)] |
| |
| *) core: ap_method_mask_t type added for method bitmasks, changed |
| from apr_int64_t and used for the method_mask field in |
| ap_method_list_t, AP_METHOD_BIT, allowed field of request_rec, |
| limited field of cmd_parms. PR 63885. [Joe Orton] |
| |
| *) mod_ssl: Do not keep connections to OCSP responders alive when doing |
| OCSP requests. PR 64135. [Ruediger Pluem] |
| |
| *) mod_ssl: Disable client verification on ACME ALPN challenges. Fixes github |
| issue mod_md#172 (https://github.com/icing/mod_md/issues/172). |
| [Michael Kaufmann <mail michael-kaufmann.ch>, Stefan Eissing] |
| |
| *) mod_rewrite: Extend the [CO] (cookie) flag of RewriteRule to accept a |
| SameSite attribute. [Eric Covener] |
| |
| *) Update DOCTYPE tags in server-generated HTML. PR62989. |
| [Andra Farkas <deepbluemistake gmail.com>, Giovanni Bechis <giovanni paclan.it>] |
| |
| *) mod_setenvif: Passing an env-variable parameter of "--early" in non-perdir |
| context runs directives from this module before `RequestHeader ... early` |
| are evaluated. This allows results of SetEnvIf conditionals to be used |
| to modify request headers in early mode. [Eric Covener] |
| |
| *) config: Speed up graceful restarts by using pre-hashed command table. PR 64066. |
| [Giovanni Bechis <giovanni paclan.it>, Jim Jagielski] |
| |
| *) mod_lua: Add r:headers_in_table, r:headers_out_table, r:err_headers_out_table, |
| r:notes_table, r:subprocess_env_table as read-only native table alternatives |
| that can be iterated over. [Eric Covener] |
| |
| *) configure: Add manualdir and proxycachedir to the APR_ENABLE_LAYOUT macro call. |
| [Graham Leggett] |
| |
| *) Add support for cross compiling to apxs. If apxs is being executed from somewhere |
| other than its target location, add that prefix to includes and library directories. |
| Without this, apxs would fail to find config_vars.mk and exit. [Graham Leggett] |
| |
| *) Add a config layout for OpenWRT. [Graham Leggett] |
| |
| *) mod_http2: Fixed rare cases where a h2 worker could deadlock the main connection. |
| [Yann Ylavic, Stefan Eissing] |
| |
| *) mod_lua: Accept nil assignments to the exposed tables (r.subprocess_env, |
| r.headers_out, etc) to remove the key from the table. PR63971. |
| [Eric Covener] |
| |
| *) mod_http2: Fixed interaction with mod_reqtimeout. A loaded mod_http2 was disabling the |
| ssl handshake timeouts. Also, fixed a mistake of the last version that made `H2Direct` |
| always `on`, regardless of configuration. Found and reported by |
| <Armin.Abfalterer@united-security-providers.ch> and |
| <Marcial.Rion@united-security-providers.ch>. [Stefan Eissing] |
| |
| *) mod_http2: Multiple field length violations in the same request no longer cause |
| several log entries to be written. [@mkauf] |
| |
| *) mod_md: v2.2.4 from github, Fixes a compile time issue with OpenSSL 1.0.2 in |
| the new OCSP code. Skips port checks for domain server_rec selection when "tls-alpn-01" |
| is configured explicitly (related to #133). [@mkauf, Stefan Eissing] |
| |
| *) mod_ssl: Support logging private key material for use with |
| wireshark via log file given by SSLKEYLOGFILE environment |
| variable. Requires OpenSSL 1.1.1. PR 63391. [Joe Orton] |
| |
| *) mod_proxy: Improve tunneling loop to support half closed connections and |
| pending data draining (for protocols like rsync). PR 61616. [Yann Ylavic] |
| |
| *) mod_proxy: Add proxy check_trans hook for proxy modules to possibly |
| decline request handling at early stage. [Yann Ylavic] |
| |
| *) mod_proxy: Put mod_proxy_{connect,wstunnel} tunneling code in common in |
| proxy_util. [Yann Ylavic] |
| |
| *) mod_proxy_http: Fix the forwarding of requests with content body when a |
| balancer member is unavailable; the retry on the next member was issued |
| with an empty body (regression introduced in 2.4.41). [Yann Ylavic] |
| |
| *) mod_ssl: negotiate the TLS protocol version per name based vhost |
| configuration, when linked with OpenSSL-1.1.1 or later. The base vhost's |
| SSLProtocol (from the first vhost declared on the IP:port) is now only |
| relevant if no SSLProtocol is declared for the vhost or globally, |
| otherwise the vhost or global value apply. [Yann Ylavic] |
| |
| *) mod_proxy_http: Fix 100-continue deadlock for spooled request bodies, |
| leading to Request Timeout (408). PR 63855. [Yann Ylavic] |
| |
| *) mod_deflate, mod_brotli: honor "Accept-Encoding: foo;q=0" as per RFC 7231; which |
| means 'foo' is "not acceptable". PR 58158 [Chistophe Jaillet] |
| |
| *) mod_proxy: Fix crash by resolving pool concurrency problems. PR 63503 |
| [Ruediger Pluem, Eric Covener] |
| |
| *) core: On Windows, fix a start-up crash if <IfFile ...> is used with a path that is not |
| valid (For example, testing for a file on a flash drive that is not mounted) |
| [Christophe Jaillet] |
| |
| *) mod_proxy_balancer: Fix case-sensitive referer check related to CSRF/XSS |
| protection. PR63688. [Armin Abfalterer <a.abfalterer gmail.com>] |
| |
| *) mod_authn_socache: Increase the maximum length of strings that can be cached by |
| the module from 100 to 256. PR 62149 [<thorsten.meinl knime.com>] |
| |
| *) mod_ssl: reverting a 2.4.40 change where a superfluous SSLCertificateChainFile configuration |
| for a domain managed by mod_md caused a startup error. This happened when mod_md installed |
| its fallback certificate, before it got the first real certificate from Lets Encrypt. |
| [Stefan Eissing] |
| |
| *) core, mod_rewrite: Set PCRE_DOTALL by default. Revert via |
| RegexDefaultOptions -DOTALL [Yann Ylavic] |
| |
| *) core: Remove request details from built-in error documents [Eric Covener] |
| |
| *) mod_http2: core setting "LimitRequestFieldSize" is not additionally checked on |
| merged header fields, just as HTTP/1.1 does. [Stefan Eissing, Michael Kaufmann] |
| |
| *) mod_http2: fixed a bug that prevented proper stream cleanup when connection |
| throttling was in place. Stream resets by clients on streams initiated by them |
| are counted as possible trigger for throttling. [Stefan Eissing] |
| |
| *) mod_http2/mpm_event: Fixes the behaviour when a HTTP/2 connection has nothing |
| more to write with streams ongoing (flow control block). The timeout waiting |
| for the client to send WINODW_UPDATE was incorrectly KeepAliveTimeout and not |
| Timeout as it should be. Fixes PR 63534. [Yann Ylavic, Stefan Eissing] |
| |
| *) mod_ssl/mod_md: reversing dependency by letting mod_ssl offer hooks for |
| adding certificates and keys to a virtual host. An additional hook allows |
| answering special TLS connections as used in ACME challenges. |
| Adding 2 new hooks for init/get of OCSP stapling status information when |
| other modules want to provide those. Falls back to own implementation with |
| same behaviour as before. |
| [Stefan Eissing] |
| |
| *) mod_ssl: use OPENSSL_init_ssl() to initialise OpenSSL on versions 1.1+. |
| [Graham Leggett] |
| |
| *) mod_proxy_http2: adding support for handling trailers in both directions. PR 63502. |
| [Stefan Eissing] |
| |
| *) mod_reqtimeout: Fix default rates missing (not applied) in 2.4.39. |
| PR 63325. [Yann Ylavic] |
| |
| *) mod_ldap: Avoid potential crashes in util_ldap_cache_module_kill() or other |
| LDAP related functions during graceful restart of a busy server. PR63305. |
| [Martin Fúsek <mfusek newps.cz>] |
| |
| *) mod_cache: Fix parsing of quoted Cache-Control token arguments. |
| PR 63288. [Yann Ylavic] |
| |
| *) mod_md: Store permissions are enforced on file creation, enforcing restrictions in |
| spite of umask. Fixes <https://github.com/icing/mod_md/issues/117>. [Stefan Eissing] |
| |
| *) mod_ssl: Correctly restore SSL verify state after TLSv1.3 PHA failure. |
| [Michael Kaufmann <mail michael-kaufmann.ch>] |
| |
| *) Merge consecutive slashes in URL's. Opt-out with `MergeSlashes OFF`. |
| [Eric Covener] |
| |
| *) mod_proxy/ssl: Cleanup per-request SSL configuration anytime a backend |
| connection is recycled/reused to avoid a possible crash with some SSLProxy |
| configurations in <Location> or <Proxy> context. PR 63256. [Yann Ylavic] |
| |
| *) mod_mime: Add `MimeOptions` directive to allow Content-Type or all metadata |
| detection to use only the last (right-most) file extension or to be |
| disabled per-dir. [Eric Covener] |
| |
| *) MPMs unix: bind the bucket number of each child to its slot number, for a |
| more efficient per bucket maintenance. [Yann Ylavic] |
| |
| *) http: Fix possible empty response with mod_ratelimit for HEAD requests. |
| PR 63192. [Yann Ylavic] |
| |
| *) mod_cache_socache: Avoid reallocations and be safe with outgoing data |
| lifetime. [Yann Ylavic] |
| |
| *) mod_reqtimeout: Allow to configure (TLS-)handshake timeouts. |
| PR 61310. [Yann Ylavic] |
| |
| *) mod_auth_digest: Fix a race condition. Authentication with valid credentials could be |
| refused in case of concurrent accesses from different users. |
| PR 63124 [Simon Kappel <simon.kappel axis.com>] |
| |
| *) mod_ssl: Don't unset FIPS mode on restart unless it's forced by |
| configuration (SSLFIPS on) and not active by default in OpenSSL. |
| PR 63136. [Yann Ylavic] |
| |
| *) mod_ssl: give mod_md the chance to override certificate after ALPN protocol |
| negotiation. [Stefan Eissing] |
| |
| *) mod_proxy_wstunnel: Fix websocket proxy over UDS. |
| PR 62932 <pavel dcmsys.com> |
| |
| *) mod_negociation: LanguagePriority should be case-insensitive in order to |
| match AddLanguage behavior. PR 39730 [Christophe Jaillet] |
| |
| *) mod_session: Always decode session attributes early. [Hank Ibell] |
| |
| *) core: Incorrect values for environment variables are substituted when |
| multiple environment variables are specified in a directive. [Hank Ibell] |
| |
| *) core: Split out the ability to parse wildcard files and directories |
| from the Include/IncludeOptional directives into a generic set of |
| functions ap_dir_nofnmatch() and ap_dir_fnmatch(). [Graham Leggett] |
| |
| *) mod_ssl: Fix mod_authz provider for "require ssl" directive to check correctly |
| on HTTP/2 connections. Fixes PR 62654. [Stefan Eissing] |
| |
| *) mod_ssl: clear *SSL errors before loading certificates and checking |
| afterwards. Otherwise errors are reported when other SSL using modules |
| are in play. Fixes PR 62880. [Michael Kaufmann] |
| |
| *) core: Ensure that aborted connections are logged as such. PR 62823 |
| [Arnaud Grandville <contact@grandville.net>] |
| |
| *) mpm_event: Stop issuing AH00484 "server reached MaxRequestWorkers..." when |
| there are still idle threads available. When there are less idle threads than |
| MinSpareThreads, issue new one-time message AH10159. Matches worker MPM. |
| [Eric Covener] |
| |
| *) mod_proxy_scgi, mod_proxy_uwsgi: improve error handling when sending the |
| body of the response. [Jim Jagielski] |
| |
| *) mod_session_cookie: avoid duplicate Set-Cookie header in the response. |
| [Emmanuel Dreyfus <manu@netbsd.org>, Luca Toscano] |
| |
| *) mod_dav_fs: Set a default DAVLockDB within the state directory. |
| [Joe Orton] |
| |
| *) core: Add DefaultStateDir and layout-specific state directory |
| created at "make install". [Joe Orton] |
| |
| *) ab: Add client certificate support. [Graham Leggett] |
| |
| *) mod_proxy_hcheck: Fix issues with TCP health checks. PR 61499 |
| [Dominik Stillhard <dominik.stillhard united-security-providers.ch>] |
| |
| *) MPMs: Initialize all runtime/asynchronous objects on a dedicated pool and |
| before signals handling to avoid lifetime issues on restart or shutdown. |
| PR 62658. [Yann Ylavic] |
| |
| *) core: Add StrictHostCheck to allow unconfigured hostnames to be |
| rejected. [Eric Covener] |
| |
| *) mod_status: Cumulate CPU time of exited child processes in the |
| "cu" and "cs" values. Add CPU time of the parent process to the |
| "c" and "s" values. |
| [Rainer Jung] |
| |
| *) mod_status: Add cumulated response duration time in milliseconds. |
| [Rainer Jung] |
| |
| *) mod_status: Complete the data shown for async MPMs in "auto" mode. |
| Added number of processes, number of stopping processes and number |
| of busy and idle workers. [Rainer Jung] |
| |
| *) mod_proxy: Improve the balancer member data shown in mod_status when |
| "ProxyStatus" is "On": add "busy" count and show byte counts in auto |
| mode always in units of kilobytes. [Rainer Jung] |
| |
| *) mod_proxy: If ProxyPassReverse is used for reverse mapping of relative |
| redirects, subsequent ProxyPassReverse statements, whether they are |
| relative or absolute, may fail. PR 60408. [Peter Haworth <pmh1wheel gmail.com>] |
| |
| *) mod_ratelimit: Don't interfere with "chunked" encoding, fixing regression |
| introduced in 2.4.34. PR 62568. [Yann Ylavic] |
| |
| *) mod_proxy_http: forward 100-continue, and minimize race conditions when |
| reusing backend connections. PR 60330. [Yann Ylavic, Jean-Frederic Clere] |
| |
| *) mod_proxy: Remove load order and link dependency between mod_lbmethod_* |
| modules and mod_proxy. PR 62557. [Ruediger Pluem, William Rowe] |
| |
| *) mod_md: more robust handling of http-01 challenges and hands-off when module |
| should not be involved, e.g. challenge setup by another ACME client. [Stefan Eissing] |
| |
| *) ru, zh-cn and zh-tw translations of errordocs have been added. |
| Contributed by Alexander Gaganashvili and CodeingBoy |
| |
| *) mod_userdir: If several directories are given in a UserDir directive, only files |
| in the first existing one are checked. If the file is not found there, the |
| other possible directories are not checked. The doc clearly states that they |
| will be checked one by one, until a match is found or an external redirect is |
| performed. PR 59636. |
| [Christophe Jaillet] |
| |
| *) mod_rewrite: Only create the global mutex used by "RewriteMap prg:" when |
| this type of map is present in the configuration. PR62311. |
| [Hank Ibell <hwibell gmail.com>] |
| |
| *) mod_ldap: Abort on LDAP locking errors. [Eric Covener] |
| |
| *) mod_ssl: Support loading certificates and private keys from the |
| PKCS#11 OpenSSL engine. [Anderson Sasaki <ansasaki redhat.com>, |
| Joe Orton] |
| |
| *) http: LimitRequestBody applies to proxied requests. [Yann Ylavic] |
| |
| *) mod_logio: Add LogIOTrackTTFU and %^FU logformat to log the time |
| difference between request start and last request body byte read (finished upload). |
| [Rainer Jung] |
| |
| *) mod_ssl: add support for TLSv1.3 (tested with OpenSSL v1.1.1-pre4, other libs may |
| need more sugar). SSL(Proxy)CipherSuite now has an optional first parameter for the |
| protocol the ciphers are for. |
| Directive "SSLVerifyClient" now triggers certificate retrieval from the client (this |
| is not fully tested - but fails in similar fashion as in TLSv1.2 in my setups). |
| Verifying the client fails exactly the same for HTTP/2 connections for all SSL protocols, |
| as this would need to trigger the master connection thread - which we do not support |
| right now. |
| Renegotiation of ciphers is intentionally ignored for TLSv1.3 connections. "SSLCipherSuite" |
| does not allow to specify TLSv1.3 ciphers in a directory context (because it cannot work) and |
| TLSv1.2 or lower ciphers are not relevant, as cipher suites are completely separate. |
| This means there is a bit if a world split when simultaneously having TLSv1.2 and TLSv1.3 |
| connections to the same server. |
| [Yann Ylavic, Stefan Eissing] |
| |
| *) mod_ssl: proper checks for libressl 2.07/8 and its TLSv1_3 support, see PR 62236. |
| [Bernard Spil <brnrd@freebsd.org>] |
| |
| *) mod_cgi: Add CGIScriptTimeout to make mod_cgi's timeout per-directory and |
| independent of the core Timeout directive. PR 62229. |
| [Hank Ibell <hwibell gmail.com>] |
| |
| *) mod_ssl: heavily simplified SSLPolicy. No more user defines, no propxy policies, |
| just the basic "modern", "intermediate" and "old" as specified by Mozilla security. |
| [Stefan Eissing] |
| |
| *) mod_md: fixes error in renew window calculation that may lead to mod_md running |
| watchdog in a tight loop until actual renewal becomes necessary. [Stefan Eissing] |
| |
| *) mod_md: /.well-known/acme-challenge requests that cannot be answered for hostnames |
| outside the configured MDs are free to be answered by other handlers. This allows |
| co-existance between mod_md and other ACME clients on the same server (implements PR62189). |
| [Stefan Eissing, Arkadiusz Miskiewicz <arekm@maven.pl>] |
| |
| *) core: Create a conn_config_t structure to hold an extendable core config rather |
| than consuming the whole pointer with the connection socket. [Graham Leggett] |
| |
| *) core: adding AP_DECLARE for ap_parse_vhost_addrs() and minor bump mmn. Resolves |
| building mod_ssl on Windows. [Stefan Eissing, Gregg Smith] |
| |
| *) core: adding defines to allow interworking with honggfuzz without |
| further patches. [Stefan Eissing, Robert Swiecki] |
| |
| *) mod_headers: 'RequestHeader set|edit|edit_r Content-Type X' could |
| inadvertently modify the Content-Type _response_ header. Applies to |
| Content-Type only and likely to only affect static file responses. |
| [Eric Covener] |
| |
| *) mod_cgi: Improve AH01215 messages to make it more clear that the message is |
| the CGI scripts stderr output. PR 61980. [Hank Ibell <hwibell gmail.com>] |
| |
| *) mod_headers: Allow 'Header unset Content-Type' to remove the Content-Type |
| header. PR 61983. [Hank Ibell <hwibell gmail.com>] |
| |
| *) mod_md v1.1.8: new configuration directive "MDBaseServer on|off" to allow/inhibit |
| management of the base server domains outside VirtualHosts. By default, this is "off", |
| e.g. mod_md will not manage certificates or perform https: redirections on the |
| base server. [Stefan Eissing] |
| |
| *) core: Add "AcceptErrorsNonFatal" to allow ECONNREFUSED, ECONNABORTED, and |
| ECONNRESET during the client accept() to not trigger graceful shutdown of |
| the child process. [Eric Covener] |
| |
| *) mod_md v1.1.7: |
| - MDMustStaple was unable to create the necessary OpenSSL OBJ identifier on some platforms, |
| possibly because this fails if the OID is already configured in ```openssl.cnf```, see |
| [here](https://github.com/openssl/openssl/issues/2795). |
| - Two memory leaks in cert issuer and alt-names lookup eliminated by Yann Ylavic. |
| - Changing MDMustStaple triggers certificate renewal. |
| - More verbosity when *not* handing out certificates, e.g. mod_ssl asks, but mod_md has no |
| idea what it is talking about. Some people report misbehaviour here. |
| - Re-enabled support for md_get_credentials() function that was used in older mod_ssl |
| patch, so that people with old patched servers get a chance to upgrade. |
| [Stefan Eissing, Yann Ylavic] |
| |
| *) mod_substitute: Allow expressions in the substitution, prefixed with expr= |
| [Eric Covener] |
| |
| *) mod_md: fixed mem pool usage for auto-added server names. Added |
| error logging of exact ACME response when challenges failed. |
| [Stefan Eissing] |
| |
| *) mod_md: reverses most of v1.0.5 optimization of post_config init, so that |
| mod_ssl can ask for certificates without crashing. [Stefan Eissing] |
| |
| *) mod_proxy: allow SSLProxyCheckPeer* usage for all proxy modules. |
| PR 61857. [Yann Ylavic] |
| |
| *) mod_proxy_html: fix handling of <meta http-equiv> elements. |
| PR 58121. [Nick Kew] |
| |
| *) mod_md: fixed backward compatibility to old <ManagedDomain configuration. |
| Add higher level WARNING log when initial request to ACME server fails, mentioning |
| some advice. [Stefan Eissing] |
| |
| *) mod_md: name change in configuration directives. The old names are still working |
| in this version, so you can safely upgrade. They will give warnings in the log and |
| will disappear in the immediate future. ManagedDomain is now MDomain, |
| <ManagedDomain> is now <MDomainSet>. [Stefan Eissing] |
| |
| *) mod_ssl: renamed section <SSLPolicy to <SSLPolicyDefine. Fixed behaviour |
| for new server config merge flag. Denying global, only once used directives |
| inside a SSLPolicyDefine. [Stefan Eissing] |
| |
| *) mod_auth_basic: Be less tolerant when parsing the credencial. Only spaces |
| should be accepted after the authorization scheme. \t are also tolerated. |
| [Christophe Jaillet] |
| |
| *) core: Support zone/scope in IPv6 link-local addresses in Listen and |
| VirtualHost directives (requires APR 1.7.x or later). PR 59396. [Joe Orton] |
| |
| *) mod_md: v1.0.5, restricting post_config dry run to be more silent and performing |
| only necessary work for mod_ssl to be also happy with the configuration. |
| [Stefan Eissing] |
| |
| *) mod_md: v1.0.4, removed the 'a2md' utility command from build. Only used in github |
| testing. Avoid problems with our build system that had problems after the latest |
| changes to make a clean initial build. Remove the windows a2md.dsp therefore also. |
| [Stefan Eissing] |
| |
| *) mod_ssl: Fail with 403 if the username for FakeBasicAuth mode |
| includes a colon character. PR 52644. [Joe Orton] |
| |
| *) mod_md: v1.0.3, fixed various bugs in persisting job properties, so that status is |
| persisted across child process changes and staging is reset on reloads. Changed |
| MDCertificateAgreement url checks. As long as the CA reports that the account has |
| an agreement, no further checking is done. Existing accounts need no changes when |
| a new agreement comes out. [Stefan Eissing] |
| |
| *) mod_watchdog: Correct some log messages. [Rainer Jung] |
| |
| *) mod_noloris: complete build setup. [Rainer Jung] |
| |
| *) mod_md: fix static compilation. [Rainer Jung] |
| |
| *) mod_md: fix compilation of helper binary a2md. [Rainer Jung] |
| |
| *) core: fix pcre feature detection in configure when using pcre2. [Rainer Jung] |
| |
| Changes with Apache 2.5.0-alpha |
| |
| *) mod_speling: Add CheckBasenameMatch PR 44221. [Christophe Jaillet] |
| |
| *) mod_md: v1.0.1, ServerName/Alias names from pure-http: virtual hosts are no longer |
| auto-added to a Managed Domain. Error counts of jobs are persisted. When the server |
| restarts (gracefully) any errored staging areas are purged to reset the signup/renewal |
| process. [Stefan Eissing] |
| |
| *) mod_md: v1.0.0, new config directive 'MDNotifyCmd' to hook in a program when Managed |
| Domains have obtained/renewed their certificates successfully. [Stefan Eissing] |
| |
| *) mod_md: v0.9.9, fix for applying challenge type based on available ports. [Stefan Eissing] |
| |
| *) mod_md: v0.9.7 |
| - Use of the new module flag |
| - Removed obsolete function from interface to mod_ssl. |
| - Fallback certificates has version set and no longer claims to be a CA. (re issue #32) |
| - MDRequireHttps now happens before any Redirect. |
| [Stefan Eissing] |
| |
| *) mod_ssl: unshare SSLSrvConfigRec instances between base server and virtual hosts. This avoids |
| overwrites of later initializattions (vhost_id), selective disables by "SSLEngine addr-list" |
| and certificate/key pickup from mod_md. [Stefan Eissing] |
| |
| *) mod_md: v0.9.6: a "MDRequireHttps permanent" configured domain automatically sends out |
| HSTS (rfc 6797) headers in https: responses. [Stefan Eissing] |
| |
| *) mod_ssl: adding ssl_policies.h[.in] for policy cipher/protocol definitions. Use |
| update_policies.py to update manually from Mozilla JSON definitions at |
| https://statics.tls.security.mozilla.org/server-side-tls-conf.json |
| [Stefan Eissing] |
| |
| *) mod_md: v0.9.5: |
| - New directive (srly: what do you expect at this point?) "MDMustStaple on|off" to control if |
| new certificates are requested with the OCSP Must Staple extension. |
| - Known limitation: when the server is configured to ditch and restart child processes, for example |
| after a certain number of connections/requests, the mod_md watchdog instance might migrate |
| to a new child process. Since not all its state is persisted, some messages might appear a |
| second time in the logs. |
| - Adding checks when 'MDRequireHttps' is used. It is considered an error when 'MDPortMap 443:-' |
| is used - which negates that a https: port exists. Also, a warning is logged if no |
| VirtualHost can be found for a Managed Domain that has port 443 (or the mapped one) in |
| its address list. |
| - New directive 'MDRequireHttps' for redirecting http: traffic to a Managed Domain, permanently |
| or temporarily. |
| - Fix for using a fallback certificate on initial signup of a Managed Domain. Requires also |
| a changed mod_ssl patch (v5) to take effect. |
| - compatibility with libressl |
| [Stefan Eissing] |
| |
| *) mod_md: v0.9.2: new directive 'MDHttpProxy' to define a proxy for outgoing connection, |
| some minor bugfixes, twiddle the build system to avoid non-pic code generation. |
| [Stefan Eissing] |
| |
| *) mod_md: v0.9.1: |
| - various fixes in MDRenewWindow handling when specifying percent. Serialization changed. If |
| someone already used percent configurations, it is advised to change these to a new value, |
| reload and change back to the wanted ones. |
| - various fixes in handling of MDPrivateKeys when specifying 2048 bits (the default) explicitly. |
| - mod_md version removed from top level md_store.json file. The store has its own format version |
| to facilitate upgrades. |
| [Stefan Eissing] |
| |
| *) mod_md: v0.9.0: |
| Certificate provisioning from Let's Encrypt (and other ACME CAs) for mod_ssl virtual hosts. |
| [Stefan Eissing] |
| |
| *) mod_ssl: add SSLPolicy (define/use) and SSLProxyPolicy directives plus documentation. Add |
| core definitions for policies 'modern', 'intermediate' and 'old', as defined by Mozilla |
| in <https://wiki.mozilla.org/Security/Server_Side_TLS>. [Stefan Eissing] |
| |
| *) mod_md: new module for managing domains across VirtualHosts with ACME protocol |
| implementation for automated certificate signup and renewal. Default CA is |
| the test area of Let's Encrypt right now, so certificates root will not be valid. |
| Will be switched to the real service endpoint rather soon. If you need it now, |
| configure 'MDCertificateAuthority https://acme-v01.api.letsencrypt.org/directory'. |
| [Stefan Eissing] |
| |
| *) mod_rewrite: Add 'RewriteOptions LongURLOptimization' to free memory |
| from each set of unmatched rewrite conditions. |
| [Eric Covener] |
| |
| *) Allow the argument to <IfFile>, <IfDefine>, <IfSection>, <IfDirective>, |
| and <IfModule> to be quoted. This is primarily for the benefit of |
| <IfFile>. [Eric Covener] |
| |
| *) Introduce request taint checking framework to prevent privilege |
| hijacking through .htaccess. [Nick Kew] |
| |
| *) Add <IfDirective> and <IfSection> directives. [Joe Orton] |
| |
| *) When using mod_status with the Event MPM, report the number of requests |
| associated with an active connection in the "ACC" field. Previously |
| zero was always reported with this MPM. PR60647. [Eric Covener] |
| |
| *) mod_proxy_wstunnel: Reliably run before mod_proxy_http. |
| [Eric Covener] |
| |
| *) http: Allow unknown response status' lines returned in the form of |
| "HTTP/x.x xxx Status xxx". [Yann Ylavic] |
| |
| *) core: Add <IfFile> configuration section to allow any file on disk to be |
| used as a conditional. [Edward Lu, Eric Covener] |
| |
| *) mod_crypto: Add the all purpose crypto filters with support for HLS. |
| [Graham Leggett] |
| |
| *) core: Drop an invalid Last-Modified header value coming |
| from a FCGI/CGI script instead of replacing it with Unix epoch. |
| Warn the users about Last-Modified header value replacements |
| and violations of the RFC. |
| [Yann Ylavic, Luca Toscano, William Rowe, Jacob Champion] |
| |
| *) mod_dav: Allow other modules to become providers and add ACLs |
| to the DAV response. |
| [Jari Urpalainen <jari.urpalainen nokia.com>, Graham Leggett] |
| |
| *) mod_dav: Add dav_begin_multistatus, dav_send_one_response, |
| dav_finish_multistatus, dav_send_multistatus, dav_handle_err, |
| dav_failed_proppatch, dav_success_proppatch to mod_dav.h. |
| [Jari Urpalainen <jari.urpalainen nokia.com>, Graham Leggett] |
| |
| *) core: explicitly exclude 'h2' from protocols announced via an Upgrade: |
| header as commanded by http-wg. [Stefan Eissing] |
| |
| *) mod_proxy_ajp: Add "secret" parameter to proxy workers to implement legacy |
| AJP13 authentication. PR 53098. [Dmitry A. Bakshaev <dab1818 gmail com>] |
| |
| *) mpm: Generalise the ap_mpm_register_socket functions to accept pipes |
| or sockets. [Graham Leggett] |
| |
| *) core: Extend support for setting aside data from the network input filter |
| to any connection or request input filter. [Graham Leggett] |
| |
| *) core: Split ap_create_request() from ap_read_request(). [Graham Leggett] |
| |
| *) mod_auth_digest: Fix compatibility with expression-based Authname. PR59039. |
| [Eric Covener] |
| |
| *) mpm: Add a complete_connection hook that confirms whether an MPM is allowed |
| to leave the WRITE_COMPLETION phase. Move filter code out of the MPMs. |
| [Graham Leggett] |
| |
| *) mod_cache: Consider Cache-Control: s-maxage in expiration |
| calculations. [Eric Covener] |
| |
| *) mod_cache: Allow caching of responses with an Expires header |
| in the past that also has Cache-Control: max-age or s-maxage. |
| PR55156. [Eric Covener] |
| |
| *) mod_session: Introduce SessionExpiryUpdateInterval which allows to |
| configure the session/cookie expiry's update interval. PR 57300. |
| [Paul Spangler <paul.spangler ni.com>] |
| |
| *) core: Extend support for asynchronous write completion from the |
| network filter to any connection or request filter. [Graham Leggett] |
| |
| *) mod_auth_digest: remove AuthDigestEnableQueryStringHack which is no |
| more documented since dec 2012 (r1415960). [Christophe Jaillet] |
| |
| *) mod_charset_lite: On EBCDIC platforms, make sure mod_charset_lite runs |
| after other resource-level filters. [Eric Covener] |
| |
| *) http: Don't remove the Content-Length of zero from a HEAD response if |
| it comes from an origin server, module or script. [Yann Ylavic] |
| |
| *) http: Add support for RFC2324/RFC7168. [Graham Leggett] |
| |
| *) mod_authn_core: Add expression support to AuthName and AuthType. |
| [Graham Leggett] |
| |
| *) suexec: Filter out the HTTP_PROXY environment variable because it is |
| treated as alias for http_proxy by some programs. [Stefan Fritsch] |
| |
| *) mod_proxy_http: Don't establish or reuse a backend connection before pre- |
| fetching the request body, so to minimize the delay between it is supposed |
| to be alive and the first bytes sent: this is a best effort to prevent the |
| backend from closing because of idle or keepalive timeout in the meantime. |
| Also, handle a new "proxy-flushall" environment variable which allows to |
| flush any forwarded body data immediately. PR 56541+37920. [Yann Ylavic] |
| |
| *) core: Define and UnDefine are no longer permitted in |
| directory context. Previously they would always be evaluated |
| as the configuration was read without regard for the directory |
| context. [Eric Covener] |
| |
| *) config: For directives that do not expect any arguments, enforce |
| that none are specified in the configuration file. |
| [Joachim Zobel <jzobel heute-morgen.de>, Eric Covener] |
| |
| *) mod_rewrite: Improve 'bad flag delimeters' startup error by showing |
| how the input was tokenized. PR 56528. [Edward Lu <Chaosed0 gmail.com>] |
| |
| *) mod_proxy: Don't put non balancer-member workers in error state by |
| default for connection or 500/503 errors, and honor status=+I for |
| any error. PR 48388. [Yann Ylavic] |
| |
| *) ap_expr: Add filemod function for checking file modification dates |
| [Daniel Gruno] |
| |
| *) mod_authnz_ldap: Resolve crashes with LDAP authz and non-LDAP authn since |
| r1608202. [Eric Covener] |
| |
| *) apreq: Content-Length header should be always interpreted as a decimal. |
| Leading 0 could be erroneously considered as an octal value. PR 56598. |
| [Chris Card <ctcard hotmail com>] |
| |
| *) mod_proxy: Now allow for 191 character worker names, with non-fatal |
| errors if name is truncated. PR53218. [Jim Jagielski] |
| |
| *) mod_ssl: Add optional function "ssl_get_tls_cb" to allow support |
| for channel bindings. [Simo Sorce <simo redhat.com>] |
| |
| *) mod_proxy_wstunnel: Concurrent websockets messages could be |
| lost or delayed with ProxyWebsocketAsync enabled. |
| [Edward Lu <Chaosed0 gmail.com>] |
| |
| *) core, mod_info: Add compiled and loaded PCRE versions to version |
| number display. [Rainer Jung] |
| |
| *) mod_authnz_ldap: Return LDAP connections to the pool before the handler |
| is run, instead of waiting until the end of the request. [Eric Covener] |
| |
| *) mod_proxy_html: support automatic detection of doctype and processing |
| of FPIs. PR56285 [Micha Lenk <micha lenk info>, Nick Kew] |
| |
| *) core: Add ap_mpm_resume_suspended() API to allow a suspended connection |
| to resume. PR56333 |
| [Artem <artemciy gmail.com>, Edward Lu <Chaosed0 gmail.com>] |
| |
| *) core: Add ap_mpm_register_socket_callback_timeout() API. [Eric Covener] |
| |
| *) mod_proxy_wstunnel: Honor ProxyWebsocketIdleTimeout in asynchronous |
| processing mode. [Eric Covener] |
| |
| *) mod_authnz_ldap: Fail explicitly when the filter is too long. Remove |
| unnecessary apr_pstrdup() and strlen(). [Graham Leggett] |
| |
| *) Add the ldap-search option to mod_authnz_ldap, allowing authorization |
| to be based on arbitrary expressions that do not include the username. |
| [Graham Leggett] |
| |
| *) Add the ldap function to the expression API, allowing LDAP filters and |
| distinguished names based on expressions to be escaped correctly to |
| guard against LDAP injection. [Graham Leggett] |
| |
| *) Add module mod_ssl_ct, which provides an implementation of Certificate |
| Transparency (RFC 6962) for httpd. [Jeff Trawick] |
| |
| *) mod_proxy_wstunnel: Avoid sending error responses down an upgraded |
| websockets connection as it is being close down. [Eric Covener] |
| |
| *) mod_proxy_wstunnel: Allow the administrator to cap the amount |
| of time a synchronous websockets connection stays idle with |
| ProxyWebsocketIdleTimeout. [Eric Covener] |
| |
| *) mod_proxy_wstunnel: Change to opt-in for asynchronous support, adding |
| directives ProxyWebsocketAsync and ProxyWebsocketAsyncDelay. |
| [Eric Covener] |
| |
| *) mod_proxy_wstunnel: Stop leaking websockets backend connections under |
| event MPM (trunk-only). [Eric Covener] |
| |
| *) mod_proxy_http: Add detach_backend hook (potentially usable |
| in other proxy scheme handlers). [Jeff Trawick] |
| |
| *) mod_deflate: Add DeflateAlterETag to control how the ETag |
| is modified. The 'NoChange' parameter mimics 2.2.x behavior. |
| PR 45023, PR 39727. [Eric Covener] |
| |
| *) mod_dir: Default to 2.2-like behavior and skip execution when method is |
| neither GET nor POST, such as for DAV requests. PR 54914. [Chris Darroch] |
| |
| *) mod_rewrite: Rename the handler that does per-directory internal |
| redirects to "rewrite-redirect-handler" from "redirect-handler" so |
| it is less ambiguous and less likely to be reused. [Eric Covener] |
| |
| *) mod_rewrite: Protect against looping with the [N] flag by enforcing a |
| default limit of 10000 iterations, and allowing each rule to change its |
| limit. [Eric Covener] |
| |
| *) mod_ssl: Fix config merging of SSLOCSPEnable and SSLOCSPOverrideResponder. |
| [Jeff Trawick] |
| |
| *) Add HttpContentLengthHeadZero and HttpExpectStrict directives. |
| [Yehuda Sadeh <yehuda inktank com>, Justin Erenkrantz] |
| |
| *) mod_ssl: Add -t -DDUMP_CA_CERTS option which dumps the filenames of all |
| configured SSL CA certificates to stdout the same way as DUMP_CERTS does. |
| [Jan Kaluza] |
| |
| *) mod_ssl: Don't flush when an EOS is received. Prepares mod_ssl |
| to support write completion. [Graham Leggett] |
| |
| *) core: Add parse_errorlog_arg callback to ap_errorlog_provider |
| to allow providers to check the ErrorLog argument. [Jan Kaluza] |
| |
| *) mod_cgid: Use the servers Timeout for each read from a CGI script, |
| allow override with new CGIDRequestTimeout directive. PR43494 |
| [Eric Covener, Toshikuni Fukaya <toshikuni-fukaya cybozu co jp>] |
| |
| *) core: ensure any abnormal exit is reported to stderr if it's a tty. |
| PR 55670 [Nick Kew] |
| |
| *) mod_lua: Let the Inter-VM get/set functions work with a global |
| shared memory pool instead of a per-process pool. [Daniel Gruno] |
| |
| *) ldap: Support ldaps when using the Microsoft LDAP SDK. |
| PR 54626. [Jean-Frederic Clere] |
| |
| *) mod_authnz_ldap: Change default value of AuthLDAPMaxSubGroupDepth to 0 |
| to avoid performance problems when subgroups aren't in use. [Eric Covener] |
| |
| *) mod_syslog: New module implementing syslog ap_error_log provider. |
| Previously, this code was part of core, now it's in separate module. |
| [Jan Kaluza] |
| |
| *) core: Add ap_errorlog_provider to make ErrorLog logging modular. Move |
| syslog support from core to new mod_syslog. [Jan Kaluza] |
| |
| *) mod_status, mod_echo: Fix the display of client addresses. |
| They were truncated to 31 characters which is not enough for IPv6 addresses. |
| This is done by deprecating the use of the 'client' field and using |
| the new 'client64' field in worker_score. |
| PR 54848 [Bernhard Schmidt <berni birkenwald de>, Jim Jagielski] |
| |
| *) core: merge AllowEncodedSlashes from the base configuration into |
| virtual hosts. [Eric Covener] |
| |
| *) AIX: Install DSO's with "cp" instead of "install" in instdso.sh |
| [Eric Covener] |
| |
| *) mod_ldap: Don't keep retrying if a new LDAP connection times out. |
| [Eric Covener] |
| |
| *) mod_deflate: permit compilation of mod_deflate against a zlib that has |
| been configured with -D Z_PREFIX, which redefines the token "deflate". |
| [Eric Covener] |
| |
| *) mod_auth_digest: Use the secret when generating nonces in all cases and |
| not only when AuthName is used in .htaccess files (this change may cause |
| problems if used with round robin load balancers). Don't regenerate the |
| secret on graceful restarts. PR 54637 [Stefan Fritsch] |
| |
| *) core: Stop the HTTP_IN filter from attempting to write error buckets |
| to the output filters, which is bogus in the proxy case. Create a |
| clean mapping from APR codes to HTTP status codes, and use it where |
| needed. [Graham Leggett] |
| |
| *) mod_dav: mod_dav overrides dav_fs response on PUT failure. PR 35981 |
| [Basant Kumar Kukreja <basant.kukreja sun.com>, Alejandro Alvarez |
| <alejandro.alvarez.ayllon cern.ch>] |
| |
| *) mod_ldap: LDAP connections used for authentication were not respecting |
| LDAPConnectionPoolTimeout. PR 54587 |
| |
| *) core: Add option to add valgrind support. Use it to reduce false positive |
| warnings in mod_ssl. [Stefan Fritsch] |
| |
| *) mod_authn_file, mod_authn_dbd, mod_authn_dbm, mod_authn_socache: |
| Cache the result of the most recent password hash verification for every |
| keep-alive connection. This saves some expensive calculations. |
| [Stefan Fritsch] |
| |
| *) http: Remove support for Request-Range header sent by Navigator 2-3 and |
| MSIE 3. [Stefan Fritsch] |
| |
| *) core, http: Extend HttpProtocol with an option to enforce stricter HTTP |
| conformance or to only log the found problems. [Stefan Fritsch] |
| |
| *) EventOpt MPM |
| |
| *) core: Add LogLevelOverride directive that allows to override the |
| loglevel for clients from certain IPs. This also works for things |
| like the SSL handshake where <If> LogLevel ... </If> is evaluated |
| too late. [Stefan Fritsch] |
| |
| *) core: Add new directive Warning to issue warnings from a configuration |
| file. Both Warning and Error now generate a timestamped log message. |
| [Fabien Coelho] |
| |
| *) ap_expr: Add SERVER_PROTOCOL_VERSION, ..._MAJOR, and ..._MINOR |
| variables. [Stefan Fritsch] |
| |
| *) core: New directive HttpProtocol which allows to disable HTTP/0.9 |
| support. [Stefan Fritsch] |
| |
| *) mod_allowhandlers: New module to forbid specific handlers for specific |
| directories. [Stefan Fritsch] |
| |
| *) mod_systemd: New module, for integration with systemd on Linux. |
| [Jan Kaluza <jkaluza redhat.com>] |
| |
| *) WinNT MPM: Store pid and generation for each thread in scoreboard |
| to allow tracking of threads from exiting children via mod_status |
| or other such mechanisms. [Jeff Trawick] |
| |
| *) The following now respect DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR: |
| - APIs: ap_log_pid(), ap_remove_pid, ap_read_pid() |
| - mod_cache: thundering herd lock directory |
| - mod_lbmethod_heartbeat, mod_heartmonitor: heartbeat storage file |
| - mod_ldap: shared memory cache |
| - mod_socache_shmcb, mod_socache_dbm: shared memory or dbm for cache |
| [Jeff Trawick] |
| |
| *) mod_ssl: Add support for TLS Next Protocol Negotiation. PR 52210. |
| [Matthew Steele <mdsteele google.com>] |
| |
| *) cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will |
| be compiled by the build compiler instead of the host compiler. |
| Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected. |
| PR 51257. [Guenter Knauf] |
| |
| *) core: In maintainer mode, replace apr_palloc with a version that |
| initializes the allocated memory with non-zero values, except if |
| AP_DEBUG_NO_ALLOC_POISON is defined. [Stefan Fritsch] |
| |
| *) mod_policy: Add a new testing module to help server administrators |
| enforce a configurable level of protocol compliance on their |
| servers and application servers behind theirs. [Graham Leggett] |
| |
| *) mod_firehose: Add a new debugging module able to record traffic |
| passing through the server in such a way that connections and/or |
| requests be reconstructed and replayed. [Graham Leggett] |
| |
| *) mod_noloris |
| |
| *) APREQ |
| |
| *) Simple MPM |
| |
| *) mod_serf |
| |
| [Apache 2.5.0-dev includes those bug fixes and changes with the |
| Apache 2.4.xx tree as documented below, except as noted.] |
| |
| Changes with Apache 2.4.x and later: |
| |
| *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/CHANGES?view=markup |
| |
| Changes with Apache 2.2.x and later: |
| |
| *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup |
| |
| Changes with Apache 2.0.x and later: |
| |
| *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup |