Struct LazyHttpProxyConnectReplyService
#[non_exhaustive]pub struct LazyHttpProxyConnectReplyService;Available on crate features
http and std only.Expand description
A lazy Service which acknowledges an HTTP (proxy) CONNECT request
without first establishing the egress connection.
This is appropriate when the upgraded application stream must be observed before egress can be selected or constructed, such as application-aware routing for a custom tunneled protocol. It deliberately means that a successful CONNECT response does not confirm egress reachability.
For an ordinary HTTP proxy, including MITM where the CONNECT authority is
the target, use EagerHttpProxyConnector
so the client receives a successful response only after the egress
connection has been established.
Implementations§
§impl LazyHttpProxyConnectReplyService
impl LazyHttpProxyConnectReplyService
pub fn new() -> LazyHttpProxyConnectReplyService
pub fn new() -> LazyHttpProxyConnectReplyService
Create a new LazyHttpProxyConnectReplyService.
Trait Implementations§
§impl Clone for LazyHttpProxyConnectReplyService
impl Clone for LazyHttpProxyConnectReplyService
§fn clone(&self) -> LazyHttpProxyConnectReplyService
fn clone(&self) -> LazyHttpProxyConnectReplyService
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 more§impl Debug for LazyHttpProxyConnectReplyService
impl Debug for LazyHttpProxyConnectReplyService
§impl Default for LazyHttpProxyConnectReplyService
impl Default for LazyHttpProxyConnectReplyService
§fn default() -> LazyHttpProxyConnectReplyService
fn default() -> LazyHttpProxyConnectReplyService
Returns the “default value” for a type. Read more
§impl<Body> Service<Request<Body>> for LazyHttpProxyConnectReplyServicewhere
Body: Send + 'static,
impl<Body> Service<Request<Body>> for LazyHttpProxyConnectReplyServicewhere
Body: Send + 'static,
§type Output = UpgradeResponse<Request<Body>, Response>
type Output = UpgradeResponse<Request<Body>, Response>
The type of the output returned by the service.
§async fn serve(
&self,
req: Request<Body>,
) -> Result<<LazyHttpProxyConnectReplyService as Service<Request<Body>>>::Output, <LazyHttpProxyConnectReplyService as Service<Request<Body>>>::Error>
async fn serve( &self, req: Request<Body>, ) -> Result<<LazyHttpProxyConnectReplyService as Service<Request<Body>>>::Output, <LazyHttpProxyConnectReplyService as Service<Request<Body>>>::Error>
Serve an output or an error for the given input
§fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
Box this service to allow for dynamic dispatch.
Auto Trait Implementations§
impl Freeze for LazyHttpProxyConnectReplyService
impl RefUnwindSafe for LazyHttpProxyConnectReplyService
impl Send for LazyHttpProxyConnectReplyService
impl Sync for LazyHttpProxyConnectReplyService
impl Unpin for LazyHttpProxyConnectReplyService
impl UnsafeUnpin for LazyHttpProxyConnectReplyService
impl UnwindSafe for LazyHttpProxyConnectReplyService
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
Mutably borrows from an owned value. Read more
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<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> ⓘ
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§impl<S> IntoEndpointService<(S,)> for S
impl<S> IntoEndpointService<(S,)> for S
type Service = S
§fn into_endpoint_service(self) -> <S as IntoEndpointService<(S,)>>::Service
fn into_endpoint_service(self) -> <S as IntoEndpointService<(S,)>>::Service
convert the type into a
rama_core::Service.§impl<S, State> IntoEndpointServiceWithState<(S,), State> for S
impl<S, State> IntoEndpointServiceWithState<(S,), State> for S
type Service = S
§fn into_endpoint_service_with_state(
self,
_state: State,
) -> <S as IntoEndpointServiceWithState<(S,), State>>::Service
fn into_endpoint_service_with_state( self, _state: State, ) -> <S as IntoEndpointServiceWithState<(S,), State>>::Service
convert the type into a
rama_core::Service with state.§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
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>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more