feature-gate direct TLS mode to make rustls/aws-lc-rs optional
Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
87734a074f
commit
e5efd55838
7 changed files with 29 additions and 11 deletions
|
@ -42,9 +42,16 @@ systemd = [
|
|||
"dep:sd-notify",
|
||||
]
|
||||
|
||||
direct_tls = [
|
||||
"axum-server/tls-rustls",
|
||||
"dep:rustls",
|
||||
"dep:axum-server-dual-protocol",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
axum-client-ip.workspace = true
|
||||
axum-server-dual-protocol.workspace = true
|
||||
axum-server-dual-protocol.optional = true
|
||||
axum-server.workspace = true
|
||||
axum.workspace = true
|
||||
conduit-admin.workspace = true
|
||||
|
@ -63,6 +70,7 @@ hyper.workspace = true
|
|||
hyper-util.workspace = true
|
||||
ruma.workspace = true
|
||||
rustls.workspace = true
|
||||
rustls.optional = true
|
||||
sentry.optional = true
|
||||
sentry-tower.optional = true
|
||||
sentry-tower.workspace = true
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
mod plain;
|
||||
#[cfg(feature = "direct_tls")]
|
||||
mod tls;
|
||||
mod unix;
|
||||
|
||||
|
@ -23,7 +24,14 @@ pub(super) async fn serve(
|
|||
if cfg!(unix) && config.unix_socket_path.is_some() {
|
||||
unix::serve(server, app, shutdown).await
|
||||
} else if config.tls.is_some() {
|
||||
tls::serve(server, app, handle, addrs).await
|
||||
#[cfg(feature = "direct_tls")]
|
||||
return tls::serve(server, app, handle, addrs).await;
|
||||
|
||||
#[cfg(not(feature = "direct_tls"))]
|
||||
return conduit::Err!(Config(
|
||||
"tls",
|
||||
"conduwuit was not built with direct TLS support (\"direct_tls\")"
|
||||
));
|
||||
} else {
|
||||
plain::serve(server, app, handle, addrs).await
|
||||
}
|
||||
|
|
|
@ -20,7 +20,9 @@ pub(super) async fn serve(
|
|||
|
||||
// we use ring for ruma and hashing state, but aws-lc-rs is the new default.
|
||||
// without this, TLS mode will panic.
|
||||
_ = rustls::crypto::aws_lc_rs::default_provider().install_default();
|
||||
rustls::crypto::aws_lc_rs::default_provider()
|
||||
.install_default()
|
||||
.expect("failed to initialise aws-lc-rs rustls crypto provider");
|
||||
|
||||
debug!("Using direct TLS. Certificate path {certs} and certificate private key path {key}",);
|
||||
info!(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue