pub struct SniProxyConfig {
pub bind_addr: SocketAddr,
pub upstream_addr: SocketAddr,
pub hostname_allowlist: Vec<String>,
pub cdn_providers: Vec<CdnProvider>,
pub cell_id: String,
pub run_id: String,
pub policy_digest: Option<String>,
pub keyset_id: Option<String>,
pub issuer_kid: Option<String>,
pub correlation_id: Option<String>,
pub upstream_resolver_id: String,
pub peek_timeout: Duration,
}Expand description
Subset of ExecutionCellSpec that the proxy needs at run-time. Owned
so the supervisor can build it once and pass it through the
async-to-sync-thread boundary without lifetime gymnastics (mirrors
crate::dns_proxy::DnsProxyConfig).
Fields§
§bind_addr: SocketAddrAddress the proxy listener is bound to inside the cell’s netns. Used for diagnostics; the caller passes the actual pre-bound listener.
upstream_addr: SocketAddrAddress the proxy forwards allowed connections to. In a real deployment this is a transparent next-hop (egress NAT, sidecar) that re-emits the bytes onto the wire. In the unit tests it is a localhost echo / handshake stub.
hostname_allowlist: Vec<String>Hostname allowlist (literal or single-leading-*. wildcard). Same
shape as crate::dns_proxy::DnsProxyConfig::hostname_allowlist —
shared matcher in cellos_core::hostname_allowlist.
cdn_providers: Vec<CdnProvider>CDN providers the workload’s spec declares (spec.authority.cdnAuthority.providers).
scope: retained for diagnostics and future SNI ↔ Host fronting
detection; the current decision logic does not branch on it.
cell_id: StringCell identifier (mirrors lifecycle.started.cellId).
run_id: StringRun identifier (mirrors lifecycle.started.runId).
policy_digest: Option<String>Optional policyDigest to bind into emitted events.
keyset_id: Option<String>Optional keysetId to bind into emitted events.
issuer_kid: Option<String>Optional issuerKid to bind into emitted events.
correlation_id: Option<String>Optional correlationId to bind into emitted events.
upstream_resolver_id: StringResolver / proxy identifier stamped into events for audit trail.
peek_timeout: DurationMaximum time to wait for first bytes from the workload. On timeout
the connection is dropped and one l7_peek_timeout event is emitted.
Trait Implementations§
Source§impl Clone for SniProxyConfig
impl Clone for SniProxyConfig
Source§fn clone(&self) -> SniProxyConfig
fn clone(&self) -> SniProxyConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SniProxyConfig
impl RefUnwindSafe for SniProxyConfig
impl Send for SniProxyConfig
impl Sync for SniProxyConfig
impl Unpin for SniProxyConfig
impl UnsafeUnpin for SniProxyConfig
impl UnwindSafe for SniProxyConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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