pub struct ConnStringLimits {
pub max_uri_bytes: usize,
pub max_query_params: usize,
pub max_cluster_hosts: usize,
}Expand description
DoS guardrails applied by parse before any URI work happens.
The connection-string parser is the only entry point an attacker
can reach BEFORE auth, so every limit here is enforced eagerly
and surfaces as a structured ParseErrorKind::LimitExceeded
error rather than a panic, hang, or unbounded allocation.
Fields§
§max_uri_bytes: usizeMaximum length of the input URI in bytes. Default 8 KiB.
max_query_params: usizeMaximum number of key=value query parameters. Default 32.
max_cluster_hosts: usizeMaximum number of comma-separated cluster hosts allowed in a
red:///reds:///grpc:// cluster URI. Default 64.
Trait Implementations§
Source§impl Clone for ConnStringLimits
impl Clone for ConnStringLimits
Source§fn clone(&self) -> ConnStringLimits
fn clone(&self) -> ConnStringLimits
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 moreSource§impl Debug for ConnStringLimits
impl Debug for ConnStringLimits
Source§impl Default for ConnStringLimits
impl Default for ConnStringLimits
Source§fn default() -> ConnStringLimits
fn default() -> ConnStringLimits
Returns the “default value” for a type. Read more
Source§impl PartialEq for ConnStringLimits
impl PartialEq for ConnStringLimits
Source§fn eq(&self, other: &ConnStringLimits) -> bool
fn eq(&self, other: &ConnStringLimits) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for ConnStringLimits
impl Eq for ConnStringLimits
impl StructuralPartialEq for ConnStringLimits
Auto Trait Implementations§
impl Freeze for ConnStringLimits
impl RefUnwindSafe for ConnStringLimits
impl Send for ConnStringLimits
impl Sync for ConnStringLimits
impl Unpin for ConnStringLimits
impl UnsafeUnpin for ConnStringLimits
impl UnwindSafe for ConnStringLimits
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§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<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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request