4509 Commits

Author SHA1 Message Date
1a02ff94f9 Tweak formatting and fix credit to Charles Smutz.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921879 13f79535-47bb-0310-9956-ffa450edef68
2024-11-13 19:27:07 +00:00
52a5a0e1c7 * Fix typo [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1920992 13f79535-47bb-0310-9956-ffa450edef68
2024-09-27 15:25:06 +00:00
c83f4e53c4 some text formatting cleanup
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1920741 13f79535-47bb-0310-9956-ffa450edef68
2024-09-17 10:39:29 +00:00
3cdd54ce63 update changes
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1920740 13f79535-47bb-0310-9956-ffa450edef68
2024-09-17 10:37:57 +00:00
4915c21524 Add Multipath TCP (MPTCP) support (Proxy)
Multipath TCP (MPTCP), standardized in RFC8684 [1],
is a TCP extension that enables a TCP connection to
use different paths.

Multipath TCP has been used for several use cases.
On smartphones, MPTCP enables seamless handovers between
cellular and Wi-Fi networks while preserving established
connections. This use-case is what pushed Apple to use
MPTCP since 2013 in multiple applications [2]. On dual-stack
hosts, Multipath TCP enables the TCP connection to
automatically use the best performing path, either IPv4
or IPv6. If one path fails, MPTCP automatically uses
the other path.

To benefit from MPTCP, both the client and the server
have to support it. Multipath TCP is a backward-compatible
TCP extension that is enabled by default on recent
Linux distributions (Debian, Ubuntu, Redhat, ...). Multipath
TCP is included in the Linux kernel since version 5.6 [3].
To use it on Linux, an application must explicitly enable
it when creating the socket. No need to change anything
else in the application.

Adding the possibility to create MPTCP sockets would thus
be a really fine addition to httpd, by allowing clients
to make use of their different interfaces.

This patch introduces the possibilty to connect to backend
servers using MPTCP. Note however that these changes are
only available on Linux, as IPPROTO_MPTCP is Linux specific
for the time being.

For proxies, we can connect using MPTCP by passing the
\"multipathtcp\" parameter:

ProxyPass \"/example\" \"http://backend.example.com\" multipathtcp=On

We then store this information in the worker and create sockets
appropriately according to this value.

Link: https://www.rfc-editor.org/rfc/rfc8684.html [1]
Link: https://www.tessares.net/apples-mptcp-story-so-far/ [2]
Link: https://www.mptcp.dev [3]
Add Multipath TCP (MPTCP) support (Core)

Multipath TCP (MPTCP), standardized in RFC8684 [1],
is a TCP extension that enables a TCP connection to
use different paths.

Multipath TCP has been used for several use cases.
On smartphones, MPTCP enables seamless handovers between
cellular and Wi-Fi networks while preserving established
connections. This use-case is what pushed Apple to use
MPTCP since 2013 in multiple applications [2]. On dual-stack
hosts, Multipath TCP enables the TCP connection to
automatically use the best performing path, either IPv4
or IPv6. If one path fails, MPTCP automatically uses
the other path.

To benefit from MPTCP, both the client and the server
have to support it. Multipath TCP is a backward-compatible
TCP extension that is enabled by default on recent
Linux distributions (Debian, Ubuntu, Redhat, ...). Multipath
TCP is included in the Linux kernel since version 5.6 [3].
To use it on Linux, an application must explicitly enable
it when creating the socket. No need to change anything
else in the application.

Adding the possibility to create MPTCP sockets would thus
be a really fine addition to httpd, by allowing clients
to make use of their different interfaces.

This patch introduces the possibility to listen with MPTCP
sockets. Note however that these changes are only available
on Linux, as IPPROTO_MPTCP is Linux specific for the time being.

To do so, we extended the Listen directive to include
a \"multipathtcp\" option, allowing to create MPTCP sockets
instead of regular TCP ones:

Listen 80 options=multipathtcp

We then store this information in flags for the listen directive
and create sockets appropriately according to this value.

Link: https://www.rfc-editor.org/rfc/rfc8684.html [1]
Link: https://www.tessares.net/apples-mptcp-story-so-far/ [2]
Link: https://www.mptcp.dev [3]

Submitted by: Aperence <anthony.doeraene hotmail.com>
Github: closes #476


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1920586 13f79535-47bb-0310-9956-ffa450edef68
2024-09-12 07:59:22 +00:00
ad0cbd766a 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.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909928 13f79535-47bb-0310-9956-ffa450edef68
2023-05-19 10:29:02 +00:00
d8246a15d7 *) 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.

  *) mod_auth_bearer: New module to handle RFC 6750 Bearer tokens, using
     the token_checker hook.

  *) mod_autht_core: New module to handle provider aliases for token
     authentication.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909411 13f79535-47bb-0310-9956-ffa450edef68
2023-04-25 17:52:18 +00:00
3e638ff283 core: Add the token_checker hook, that allows authentication to take
place using mechanisms other than username/password, such as bearer
tokens.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909409 13f79535-47bb-0310-9956-ffa450edef68
2023-04-25 17:35:08 +00:00
c216724c64 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.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909137 13f79535-47bb-0310-9956-ffa450edef68
2023-04-14 14:07:49 +00:00
1925882d55 core: Be explicit if an enclosing directive contains a path or a
regex.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909135 13f79535-47bb-0310-9956-ffa450edef68
2023-04-14 14:02:11 +00:00
f375a726eb Sync CHANGES.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908867 13f79535-47bb-0310-9956-ffa450edef68
2023-03-31 15:11:00 +00:00
3067b17275 Add SSL_SHARED_CIPHER environment variable
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908132 13f79535-47bb-0310-9956-ffa450edef68
2023-03-06 17:46:04 +00:00
6c9b8075bc Sync changes [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1907983 13f79535-47bb-0310-9956-ffa450edef68
2023-03-02 15:24:08 +00:00
ac04f2ff6b *) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302.
[Alessandro Cavaliere <alessandro.cavalier7 unibo.it>]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904518 13f79535-47bb-0310-9956-ffa450edef68
2022-10-11 13:20:11 +00:00
01defbcd9d Remove trailing whitespace
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904517 13f79535-47bb-0310-9956-ffa450edef68
2022-10-11 13:16:41 +00:00
093aa70e77 *) mod_proxy_hcheck: Detect AJP/CPING support correctly. PR 66300.
[Alessandro Cavaliere <alessandro.cavalier7 unibo.it>]




git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1904516 13f79535-47bb-0310-9956-ffa450edef68
2022-10-11 13:15:24 +00:00
ef734b9b89 Document hcmethod enhancement to allow HTTP/1.1 comms
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1903745 13f79535-47bb-0310-9956-ffa450edef68
2022-08-28 20:07:35 +00:00
a63e1f45bd Trigger ci (check APR revert r1902369).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1902370 13f79535-47bb-0310-9956-ffa450edef68
2022-06-30 13:44:58 +00:00
cb9854c342 typo [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1901596 13f79535-47bb-0310-9956-ffa450edef68
2022-06-03 14:55:48 +00:00
63b5e4da31 Sync CHANGES [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1901551 13f79535-47bb-0310-9956-ffa450edef68
2022-06-02 09:58:42 +00:00
0e0c5202ba Credits [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1901035 13f79535-47bb-0310-9956-ffa450edef68
2022-05-18 12:47:06 +00:00
0f4842ef5a Sync CHANGES entries [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1901034 13f79535-47bb-0310-9956-ffa450edef68
2022-05-18 12:44:41 +00:00
3814c12e5a Revert r1899809: Will reapply using new
changes-entries method for CHANGES handling.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900025 13f79535-47bb-0310-9956-ffa450edef68
2022-04-19 08:58:07 +00:00
c6099d586f mod_heartmonitor: Set the documented default value
"10" for HeartbeatMaxServers instead of "0". With "0"
no shared memory slotmem was initialized.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899809 13f79535-47bb-0310-9956-ffa450edef68
2022-04-13 12:11:01 +00:00
db0631ed09 Remove libsystemd dependency from main httpd binary
Until this change httpd was linking libsystemd to the main httpd binary. If you want to run lightweight version of httpd in container, sometimes you just want to install
httpd binary with as little dependencies as possible to make container small in size and do not pull uncencessary dependencies and libraries.

This change will move all systemd library calls from listen.c to mod_systemd module and remove systemd linking from the main httpd bin.
Fixed mixed declaration and wrongly declared variable.

Submitted by: Luboš Uhliarik <luhliari redhat.com>

Github: closes #312


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899784 13f79535-47bb-0310-9956-ffa450edef68
2022-04-12 15:43:04 +00:00
05e559da21 Revert r1899390.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899479 13f79535-47bb-0310-9956-ffa450edef68
2022-04-01 10:30:06 +00:00
2bcf00780e Add WorkerBalancerGrowth. To allow creation of workers
to dynamically added balancers.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899390 13f79535-47bb-0310-9956-ffa450edef68
2022-03-30 14:42:14 +00:00
df4d79d1a7 Sync CHANGES entries [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898697 13f79535-47bb-0310-9956-ffa450edef68
2022-03-07 14:54:52 +00:00
448a49613c Fix CHANGES typo. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897862 13f79535-47bb-0310-9956-ffa450edef68
2022-02-08 12:14:09 +00:00
7953689acc Sync CHANGES entries. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897858 13f79535-47bb-0310-9956-ffa450edef68
2022-02-08 11:04:49 +00:00
b11e669f07 *) core/mod_ssl/mpm_event: reverting changes to nonblocing SSL handshakes
to stabilize CI tests again. Previous revision of trunk has been copied
     to branches/trunk-ssl-handshake-unblocking to make those into a PR where
     changes can be discussed and tested separately.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897760 13f79535-47bb-0310-9956-ffa450edef68
2022-02-04 12:22:26 +00:00
3c6a707491 event: Add AP_MPM_CAN_AGAIN and AGAIN to signal to the MPM that
non blocking behaviour is requested.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897423 13f79535-47bb-0310-9956-ffa450edef68
2022-01-24 16:14:42 +00:00
54a200291b event: Add support for non blocking behaviour in the
CONN_STATE_READ_REQUEST_LINE phase, in addition to the existing
CONN_STATE_WRITE_COMPLETION phase. Update mod_ssl to perform non blocking
TLS handshakes.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897281 13f79535-47bb-0310-9956-ffa450edef68
2022-01-21 00:09:24 +00:00
62db0c63ab Revert 1897156.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897273 13f79535-47bb-0310-9956-ffa450edef68
2022-01-20 22:13:24 +00:00
c51dccd833 core: Allow an optional expression to be specified for an effective
path in the DirectoryMatch and LocationMatch directives. This allows
modules like mod_dav to map URLs to URL spaces or to directories on
the filesystem.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897156 13f79535-47bb-0310-9956-ffa450edef68
2022-01-17 16:10:51 +00:00
c85af20789 Trim leading empty lines [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895957 13f79535-47bb-0310-9956-ffa450edef68
2021-12-14 15:42:43 +00:00
14ffd8c7b3 Sync changes-entries [skip ci].
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895953 13f79535-47bb-0310-9956-ffa450edef68
2021-12-14 15:24:32 +00:00
c035005055 * Whitespace fixes
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895718 13f79535-47bb-0310-9956-ffa450edef68
2021-12-09 08:31:09 +00:00
34da2e78b7 Sync CHANGES entries. [skip ci].
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1895558 13f79535-47bb-0310-9956-ffa450edef68
2021-12-03 16:09:47 +00:00
476b41695c Sync CHANGES [skip ci].
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893983 13f79535-47bb-0310-9956-ffa450edef68
2021-10-07 12:41:24 +00:00
4a06138a82 Adding old changelog entry
[skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893735 13f79535-47bb-0310-9956-ffa450edef68
2021-09-29 19:35:19 +00:00
df3a613555 * Update CHANGES [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893590 13f79535-47bb-0310-9956-ffa450edef68
2021-09-24 06:45:09 +00:00
40df9da013 Sync CHANGES [skip ci].
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1893049 13f79535-47bb-0310-9956-ffa450edef68
2021-09-07 15:29:23 +00:00
2a8cdcefdf Sync CHANGES [skip ci].
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1892879 13f79535-47bb-0310-9956-ffa450edef68
2021-09-03 17:07:37 +00:00
c1619c6843 Sync CHANGES entries [skip ci].
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1892737 13f79535-47bb-0310-9956-ffa450edef68
2021-08-30 17:05:13 +00:00
f5935699a8 Fix CHANGES typo s/mpm/mod/ [skip ci].
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1891478 13f79535-47bb-0310-9956-ffa450edef68
2021-07-12 10:36:51 +00:00
71736a1f42 Sync CHANGES entries.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1891217 13f79535-47bb-0310-9956-ffa450edef68
2021-07-02 22:39:11 +00:00
95592b5dda 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.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1891019 13f79535-47bb-0310-9956-ffa450edef68
2021-06-24 10:27:49 +00:00
c3685c7a96 Sync CHANGES entries. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1889961 13f79535-47bb-0310-9956-ffa450edef68
2021-05-17 13:54:02 +00:00
4754347970 Fix some typos
[skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1888963 13f79535-47bb-0310-9956-ffa450edef68
2021-04-19 13:04:25 +00:00