pub struct TlsServer { /* private fields */ }
Expand description
A server which terminates TLS connections and allows clients to communicate via HTTPS with the underlying HTTP router.
It also rotates the generated certificates as needed.
Implementations§
Source§impl TlsServer
impl TlsServer
Sourcepub async fn new(
router: Router,
options: WebhookOptions,
) -> Result<(Self, Receiver<Certificate>)>
pub async fn new( router: Router, options: WebhookOptions, ) -> Result<(Self, Receiver<Certificate>)>
Create a new TlsServer
.
This internally creates a CertificateResolver
with the provided
subject_alterative_dns_names
, which takes care of the certificate rotation. Afterwards it
creates the [ServerConfig
], which let’s the CertificateResolver
provide the needed
certificates.
Sourcepub async fn run(self) -> Result<()>
pub async fn run(self) -> Result<()>
Runs the TLS server by listening for incoming TCP connections on the bound socket address. It only accepts TLS connections. Internally each TLS stream get handled by a Hyper service, which in turn is an Axum router.
It also starts a background task to rotate the certificate as needed.
Auto Trait Implementations§
impl Freeze for TlsServer
impl !RefUnwindSafe for TlsServer
impl Send for TlsServer
impl Sync for TlsServer
impl Unpin for TlsServer
impl !UnwindSafe for TlsServer
Blanket Implementations§
Source§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
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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>
Converts
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>
Converts
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered
].