pub struct TlsTermination {
pub watched_paths: Vec<PathBuf>,
/* private fields */
}Expand description
A hot-reloadable TLS termination configuration for one listener.
The current ServerConfig lives behind an ArcSwap; every accepted
connection snapshots the current Arc when its handshake starts.
TlsTermination::reload swaps in a rebuilt config; handshakes that
began earlier finish with the configuration they negotiated.
Fields§
§watched_paths: Vec<PathBuf>The cert/key paths this config was built from, so a watcher can observe exactly the files that matter.
Implementations§
Source§impl TlsTermination
impl TlsTermination
Sourcepub fn build(tls: &ListenerTls) -> Result<Self, TlsError>
pub fn build(tls: &ListenerTls) -> Result<Self, TlsError>
Build from a terminate-mode ListenerTls block.
Sourcepub fn config(&self) -> Arc<ServerConfig>
pub fn config(&self) -> Arc<ServerConfig>
The current server config; clone the Arc per accepted connection.
Sourcepub fn reload(&self, tls: &ListenerTls) -> Result<(), TlsError>
pub fn reload(&self, tls: &ListenerTls) -> Result<(), TlsError>
Rebuild from (possibly changed files on disk) and swap in. On any error — including a cert/key pair whose key does not match the leaf certificate (torn reload) — the current config is untouched and the previous certificates keep serving.
Auto Trait Implementations§
impl !Freeze for TlsTermination
impl !RefUnwindSafe for TlsTermination
impl Send for TlsTermination
impl Sync for TlsTermination
impl Unpin for TlsTermination
impl !UnwindSafe for TlsTermination
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more