Enum EstablishedProxyRoute
#[non_exhaustive]pub enum EstablishedProxyRoute {
Direct,
Forward(ProxyAddress),
Tunnel(ProxyAddress),
}net only.Expand description
The proxy route actually established by a connector.
This is the authoritative connection outcome; ProxyRoute only describes
the requested route. The connector publishes this extension after success,
preserving the selected proxy address and credentials before dial-address
normalization. HTTP forwarding and CONNECT are distinct outcomes even when
they use the same proxy and origin.
A requested route that connects directly, including direct fallback or an
explicit bypass, publishes Self::Direct. An ordinary direct connection
for which no route was requested has no EstablishedProxyRoute extension.
Custom connectors must follow the same contract. Request metadata must never
be used to infer an established proxy connection.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Direct
A route was requested, but the connection was established without a proxy.
Forward(ProxyAddress)
Application requests are sent directly to an HTTP(S) forward proxy.
Tunnel(ProxyAddress)
A successful HTTP or SOCKS CONNECT exchange established an opaque tunnel. The selected proxy address carries its configured protocol. A tunnel does not itself imply encryption of the application traffic.
Implementations§
§impl EstablishedProxyRoute
impl EstablishedProxyRoute
pub const fn proxy_address(&self) -> Option<&ProxyAddress>
pub const fn proxy_address(&self) -> Option<&ProxyAddress>
Return the exact selected proxy address when a proxy was established.
pub fn is_http_forward(&self) -> bool
pub fn is_http_forward(&self) -> bool
Whether application requests are addressed to an HTTP forward proxy.
Trait Implementations§
§impl Clone for EstablishedProxyRoute
impl Clone for EstablishedProxyRoute
§fn clone(&self) -> EstablishedProxyRoute
fn clone(&self) -> EstablishedProxyRoute
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for EstablishedProxyRoute
impl Debug for EstablishedProxyRoute
impl Eq for EstablishedProxyRoute
impl Extension for EstablishedProxyRoute
impl NetExtension for EstablishedProxyRoute
§impl PartialEq for EstablishedProxyRoute
impl PartialEq for EstablishedProxyRoute
impl ProxyExtension for EstablishedProxyRoute
impl StructuralPartialEq for EstablishedProxyRoute
Auto Trait Implementations§
impl !Freeze for EstablishedProxyRoute
impl RefUnwindSafe for EstablishedProxyRoute
impl Send for EstablishedProxyRoute
impl Sync for EstablishedProxyRoute
impl Unpin for EstablishedProxyRoute
impl UnsafeUnpin for EstablishedProxyRoute
impl UnwindSafe for EstablishedProxyRoute
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