pub struct RoleListener { /* private fields */ }Expand description
A listener whose socket and TLS mode can both be replaced while it serves.
Implements axum::serve::Listener, so the server keeps being run by
axum::serve — including into_make_service_with_connect_info, which is what
the IP filters depend on (see RoleSocket).
Handshakes happen off the accept path. A background task accepts TCP
connections and spawns each handshake, so one slow client cannot hold up
every other connection for the length of the timeout; accept() only picks
up the results. A handshake that fails or runs out of budget is logged and
dropped — the trait’s accept() returns no Result, which suits this
exactly: a bad connection simply never becomes one.
Trait Implementations§
Source§impl Listener for RoleListener
impl Listener for RoleListener
Auto Trait Implementations§
impl Freeze for RoleListener
impl RefUnwindSafe for RoleListener
impl Send for RoleListener
impl Sync for RoleListener
impl Unpin for RoleListener
impl UnsafeUnpin for RoleListener
impl UnwindSafe for RoleListener
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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