Enum MalformedTlsPolicy
pub enum MalformedTlsPolicy {
Reject,
Fallback,
}tls only.Expand description
How ClientHello peeking handles recognized TLS that cannot be parsed.
Covers malformed headers/messages, reassembly-limit violations, and EOF
before a complete hello. QUIC also applies it to unsupported versions.
A parse failure does not necessarily mean the
destination would reject the connection. Timeouts use PeekTimeoutPolicy
separately; transport read errors always return an error.
Variants§
Reject
Reject the connection instead of invoking the fallback. Use this for routes whose policy depends on inspecting a valid ClientHello or SNI.
Fallback
Stop inspecting (the default) and invoke the configured fallback, replaying every
consumed wire byte unchanged. The functional API returns None for the
hello. Reassembly limits remain enforced; the fallback can forward the
connection without inspection. A strict SNI route is not guaranteed.
Trait Implementations§
§impl Clone for MalformedTlsPolicy
impl Clone for MalformedTlsPolicy
§fn clone(&self) -> MalformedTlsPolicy
fn clone(&self) -> MalformedTlsPolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for MalformedTlsPolicy
§impl Debug for MalformedTlsPolicy
impl Debug for MalformedTlsPolicy
§impl Default for MalformedTlsPolicy
impl Default for MalformedTlsPolicy
§fn default() -> MalformedTlsPolicy
fn default() -> MalformedTlsPolicy
impl Eq for MalformedTlsPolicy
§impl PartialEq for MalformedTlsPolicy
impl PartialEq for MalformedTlsPolicy
impl StructuralPartialEq for MalformedTlsPolicy
Auto Trait Implementations§
impl Freeze for MalformedTlsPolicy
impl RefUnwindSafe for MalformedTlsPolicy
impl Send for MalformedTlsPolicy
impl Sync for MalformedTlsPolicy
impl Unpin for MalformedTlsPolicy
impl UnsafeUnpin for MalformedTlsPolicy
impl UnwindSafe for MalformedTlsPolicy
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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> ⓘ
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more