From a559c507e3af61781ad4849fc10f9e9a59d23e2e Mon Sep 17 00:00:00 2001 From: Dan Dumont Date: Tue, 6 Aug 2024 15:52:55 -0400 Subject: [PATCH] Allow TlsListener::from() to specify a resolver. --- core/lib/src/tls/listener.rs | 11 ++++++++--- core/lib/src/tls/resolver.rs | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/core/lib/src/tls/listener.rs b/core/lib/src/tls/listener.rs index 3bdf3f5667..a9963e598a 100644 --- a/core/lib/src/tls/listener.rs +++ b/core/lib/src/tls/listener.rs @@ -24,7 +24,13 @@ pub struct TlsListener { impl TlsListener where L: Listener::Connection>, { - pub async fn from(listener: L, config: TlsConfig) -> Result> { + pub async fn from( + listener: L, + mut config: TlsConfig, + resolver: Option + ) -> Result> { + config.resolver = resolver; + Ok(TlsListener { default: Arc::new(config.server_config().await?), listener, @@ -41,8 +47,7 @@ impl Bind for TlsListener async fn bind(rocket: &Rocket) -> Result { let listener = L::bind(rocket).map_err(|e| Error::Bind(Box::new(e))).await?; let mut config: TlsConfig = rocket.figment().extract_inner("tls")?; - config.resolver = DynResolver::extract(rocket); - Self::from(listener, config).await + Self::from(listener, config, DynResolver::extract(rocket)).await } fn bind_endpoint(rocket: &Rocket) -> Result { diff --git a/core/lib/src/tls/resolver.rs b/core/lib/src/tls/resolver.rs index 1b5dc11930..1185b79fd0 100644 --- a/core/lib/src/tls/resolver.rs +++ b/core/lib/src/tls/resolver.rs @@ -10,7 +10,7 @@ use crate::fairing::{self, Info, Kind}; /// Proxy type to get PartialEq + Debug impls. #[derive(Clone)] -pub(crate) struct DynResolver(Arc); +pub struct DynResolver(Arc); pub struct Fairing(PhantomData);