Joe Orton [Mon, 4 Sep 2023 12:00:01 +0000 (12:00 +0000)]
Merge r1911651, r1911906 from trunk:
Add DAVBasePath directive to allow users to configure the real repos
root path, useful where the DAV repos is configured with a regex match.
* modules/dav/main/mod_dav.c
(dav_get_resource): If available, pass the configured base path
as the repos root to repos provider.
On the error path for fetching a resource, detect and warn
specifically when the location is configured via a regex.
(dav_cmd_davbasepath): New function.
URL: http://svn.apache.org/viewvc?rev=1911934&view=rev
Log:
Backport to v2.4:
*) mod_alias: Add RedirectRelative to allow relative redirect targets to be
issued as-is.
Trunk version of patch:
https://svn.apache.org/r1861542
https://svn.apache.org/r1861569
Backport version for 2.4.x of patch:
Trunk version of patch works
svn merge -c 1861542,r1861569 ^/httpd/httpd/trunk .
+1: minfrin, covener, icing
Stefan Eissing [Tue, 29 Aug 2023 07:23:10 +0000 (07:23 +0000)]
Merge from trunk:
*) mod_http2: added support for bootstrapping WebSockets via HTTP/2, as
described in RFC 8441. A new directive 'H2WebSockets on|off' has been
added. The feature is by default not enabled.
As also discussed in the manual, this feature should work for setups
using "ProxyPass backend-url upgrade=websocket" without further changes.
Special server modules for WebSockets will have to be adapted,
most likely, as the handling if IO events is different with HTTP/2.
HTTP/2 WebSockets are supported on platforms with native pipes. This
excludes Windows.
New directive `H2ProxyRequests on|off` to enable handling
of HTTP/2 requests in a forward proxy configuration.
General forward proxying is enabled via `ProxyRequests`. If the
HTTP/2 protocol is also enabled for such a server/host, this new
directive is needed in addition.
Graham Leggett [Sat, 26 Aug 2023 18:19:50 +0000 (18:19 +0000)]
Backport to v2.4:
*) mod_alias: Add RedirectRelative to allow relative redirect targets to be
issued as-is.
Trunk version of patch:
https://svn.apache.org/r1861542
https://svn.apache.org/r1861569
Backport version for 2.4.x of patch:
Trunk version of patch works
svn merge -c 1861542,r1861569 ^/httpd/httpd/trunk .
+1: minfrin, covener, icing
Rainer Jung [Thu, 24 Aug 2023 10:09:45 +0000 (10:09 +0000)]
Merge r1909429 and r1909606 from trunk:
mod_status: Remove duplicate keys "BusyWorkers" and "IdleWorkers".
Resolve inconsistency between the previous two occurrences by
counting workers in state SERVER_GRACEFUL no longer as busy,
but instead in a new counter "GracefulWorkers" (or on HTML
view as "workers gracefully restarting"). Also add the graceful
counter as a new column to the existing HTML per process table
for async MPMs.
* mod_md: fixed passing of the server environment variables to programs
started via MDMessageCmd and MDChallengeDns01 on *nix system.
See <https://github.com/icing/mod_md/issues/319>.
Graham Leggett [Mon, 17 Jul 2023 21:16:59 +0000 (21:16 +0000)]
Backport to v2.4:
*) 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.
trunk patch: https://svn.apache.org/r1908380
https://svn.apache.org/r1908383
https://svn.apache.org/r1908384
https://svn.apache.org/r1908388
https://svn.apache.org/r1908389
https://svn.apache.org/r1908390
https://svn.apache.org/r1908393
https://svn.apache.org/r1908394
https://svn.apache.org/r1908406
https://svn.apache.org/r1908407
https://svn.apache.org/r1908556
https://svn.apache.org/r1908557
2.4.x patch: svn merge -c 1908380,1908383-1908384,1908388-1908390,1908393-1908394,1908406-1908407,1908556-1908557 ^/httpd/httpd/trunk .
(merge works modulo MMN, or patch/PR below)
https://patch-diff.githubusercontent.com/raw/apache/httpd/pull/350.diff
https://github.com/apache/httpd/pull/350
+1: ylavic, rpluem, minfrin
Graham Leggett [Mon, 17 Jul 2023 20:40:44 +0000 (20:40 +0000)]
Backport to v2.4:
*) mod_deflate: Add DeflateAlterETag to control how the ETag
is modified. The 'NoChange' parameter mimics 2.2.x behavior.
PR 45023, PR 39727.
Trunk version of patch:
https://svn.apache.org/r1586542
Backport version for 2.4.x of patch:
https://raw.githubusercontent.com/jfclere/patch/main/mod_deflate.patch
+1: jfclere, rpluem, ylavic
rpluem says: Does anyone know why we don't merge the server config?
Submitted by: Richard de Boer <richard tubul.net>
Github: closes #144
Merge of PR 318:
*) 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]
Joe Orton [Fri, 7 Jul 2023 12:03:32 +0000 (12:03 +0000)]
Merge r1878890 from trunk:
mod_ldap: Use the LDAP API directly to implement the rebind callback
for modern versions of OpenLDAP, avoiding the overhead of the apr-util
implementation.
* modules/ldap/util_ldap.c:
Define USE_APR_LDAP_REBIND if a modern version of OpenLDAP is used.
(uldap_rebind_proc): New function.
(uldap_rebind_init, uldap_rebind_add): Define, using either the
callback or the (bad) APR-util versions.
(uldap_connection_unbind): Clear the rebind pool to remove rebind
references prior to destroying the LDAP *.
Omit for !USE_APR_LDAP_REBIND.
(uldap_connection_init): Use new wrappers, only create the rebind
pool if USE_APR_LDAP_REBIND.
* include/util_ldap.h: Don't include apr_ldap_rebind.h here.
Unless I missed somthing:
- H2StreamTimeout has been introduced in 2.4.55
- H2MaxDataFrameLen and H2MaxDataFrameLen will be available in the next 2.4.58.
Certificate Revoked Responder messages don't belong to 'error' class.
When the server receives one, it MUST be passed on to the client.
And stored for the normal period of basic responses.
Also don't log an error each time it is retrieved from cache,
only once when it is retrieved from the OCSP responder.
*) 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.
Merge r1909769 from trunk (plus sync mod_http2.xml)
*) mod_http2: v2.0.15 with the following fixes and improvements
- New directive 'H2EarlyHint name value' to add headers to a response,
picked up already when a "103 Early Hints" response is sent. 'name' and
'value' must comply to the HTTP field restrictions.
This directive can be repeated several times and header fields of the
same names add. Sending a 'Link' header with 'preload' relation will
also cause a HTTP/2 PUSH if enabled and supported by the client.
- Fixed an issue where requests were not logged and accounted in a timely
fashion when the connection returns to "keepalive" handling, e.g. when
the request served was the last outstanding one.
This led to late appearance in access logs with wrong duration times
reported.
- Accurately report the bytes sent for a request in the '%O' Log format.
This addresses #203, a long outstanding issue where mod_h2 has reported
numbers over-eagerly from internal buffering and not what has actually
been placed on the connection.
The numbers are now the same with and without H2CopyFiles enabled.
Merge r1910157 from trunk
* mod_proxy_http2: fixed using the wrong "bucket_alloc" from the backend
connection when sending data on the frontend one. This caused crashes
or infinite loops in rare situations.
* mod_proxy_http2: fixed a bug in retry/response handling that could lead
to wrong status codes or HTTP messages send at the end of response bodies
exceeding the announced content-length.
* mod_proxy_http2: fix retry handling to not leak temporary errors.
On detecting that that an existing connection was shutdown by the other
side, a 503 response leaked even though the request was retried on a
fresh connection.
* mod_http2: fixed a bug that did cleanup of consumed and pending buckets in
the wrong order when a bucket_beam was destroyed.
*) mod_http2: fixed a bug in flushing pending data on an already closed
connection that could lead to a busy loop, preventing the HTTP/2 session
to close down successfully. Fixed PR 66624.
Fixed a bug that could lead to a crash in main connection
output handling. This occured only when the last request on a HTTP/2
connection had been processed and the session decided to shut down.
This could lead to an attempt to send a final GOAWAY while the previous
write was still in progress. See PR 66646.