Struct RelayAttemptBucket
pub struct RelayAttemptBucket { /* private fields */ }Expand description
Class-wide attempt budget for relay-routed enrollment. Relay clients share one network identity (the bridge’s loopback), so per-client lockout cannot apply; this refilling bucket bounds their SUM of pairing attempts instead. Throttle, not lockout: a hostile client can slow relay enrollment, never freeze it for everyone. Brute-force exposure stays small because codes are one-time and short-lived, and the relay’s own per-node connect bucket caps attempt rate upstream. When pluggable inbound authentication lands at this enrollment boundary, authenticated enrollees get per-subject limits and this class bucket remains only for bare pairing-code enrollment.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for RelayAttemptBucket
impl RefUnwindSafe for RelayAttemptBucket
impl Send for RelayAttemptBucket
impl Sync for RelayAttemptBucket
impl Unpin for RelayAttemptBucket
impl UnsafeUnpin for RelayAttemptBucket
impl UnwindSafe for RelayAttemptBucket
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§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