pub struct L4ProxyConfig {
pub upstream: Option<String>,
pub sni_routing: bool,
pub idle_timeout: Option<Duration>,
pub session_timeout: Duration,
pub max_sessions: usize,
}Expand description
Compiled L4 proxying configuration (from L4Config).
upstream is the fallback / fixed upstream name; sni_routing
selects per-connection routing via the TLS ClientHello SNI. The
idle_timeout closes the splice after the configured inactivity
gap (None = no timeout). session_timeout and max_sessions are
UDP-specific: the session timeout expires idle NAT sessions, and
max_sessions bounds the session table.
Fields§
§upstream: Option<String>The configured (or fallback) upstream name. None when
sni_routing is true and no fallback is configured (close on
no match).
sni_routing: boolPeek the TLS ClientHello SNI and route via tls.sni_routes.
idle_timeout: Option<Duration>Idle timeout for an established splice. None = no timeout.
session_timeout: DurationDP-01 (#234): UDP session idle timeout (default 30s). Sessions that receive no datagrams for this duration are evicted from the session table.
max_sessions: usizeDP-01 (#234): maximum concurrent UDP sessions (default 4096). When the table is full, new sessions replace the oldest idle session (LRU eviction).
Implementations§
Source§impl L4ProxyConfig
impl L4ProxyConfig
Sourcepub fn from_config(cfg: &L4Config) -> Self
pub fn from_config(cfg: &L4Config) -> Self
Build from the config schema.
Trait Implementations§
Source§impl Clone for L4ProxyConfig
impl Clone for L4ProxyConfig
Source§fn clone(&self) -> L4ProxyConfig
fn clone(&self) -> L4ProxyConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for L4ProxyConfig
impl RefUnwindSafe for L4ProxyConfig
impl Send for L4ProxyConfig
impl Sync for L4ProxyConfig
impl Unpin for L4ProxyConfig
impl UnwindSafe for L4ProxyConfig
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§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