pub enum ProxyV2Error {
BadSignature,
BadVersion(u8),
BadCommand(u8),
UnsupportedFamilyProtocol(u8),
DeclaredLenTooLarge {
declared: usize,
},
AddressBlockTooShort {
declared: usize,
need: usize,
},
}Expand description
Why a byte sequence is not a valid v2 header. Every variant is a connection-fatal fault code (fail-closed, ADR 000057) — there is no “tolerate and pass through”.
Variants§
BadSignature
BadVersion(u8)
BadCommand(u8)
UnsupportedFamilyProtocol(u8)
PROXY with anything but TCP over IPv4/IPv6 (AF_UNSPEC / AF_UNIX / DGRAM / reserved):
rejected per ADR 000057 — the listener is a TCP fast path; an unspecified peer identity
must not silently degrade to the LB’s address.
DeclaredLenTooLarge
AddressBlockTooShort
Trait Implementations§
Source§impl Clone for ProxyV2Error
impl Clone for ProxyV2Error
Source§fn clone(&self) -> ProxyV2Error
fn clone(&self) -> ProxyV2Error
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for ProxyV2Error
Source§impl Debug for ProxyV2Error
impl Debug for ProxyV2Error
Source§impl Display for ProxyV2Error
impl Display for ProxyV2Error
impl Eq for ProxyV2Error
Source§impl Error for ProxyV2Error
impl Error for ProxyV2Error
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for ProxyV2Error
impl PartialEq for ProxyV2Error
impl StructuralPartialEq for ProxyV2Error
Auto Trait Implementations§
impl Freeze for ProxyV2Error
impl RefUnwindSafe for ProxyV2Error
impl Send for ProxyV2Error
impl Sync for ProxyV2Error
impl Unpin for ProxyV2Error
impl UnsafeUnpin for ProxyV2Error
impl UnwindSafe for ProxyV2Error
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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