Struct http_mitm_proxy::Communication

source ·
pub struct Communication<B> {
    pub client_addr: SocketAddr,
    pub request: Request<Incoming>,
    pub request_back: Sender<Request<B>>,
    pub response: Receiver<Result<Response<UnboundedReceiver<Result<Frame<Bytes>, Arc<Error>>>>, Error>>,
    pub upgrade: Receiver<Upgrade>,
}
Expand description

Communication between client and server.

Note: http-mitm-proxy observe by Communication basis, not Connection basis. Some Communications may belong to the same connection using keep-alive.

Fields§

§client_addr: SocketAddr

Client address

§request: Request<Incoming>

Request from client. request.uri() is an absolute URI except for CONNECT method. If you modify uri of CONNECT method, subsequent request will be sent to the modified uri (off course you can modify it). But HOST header remains the original value.

§request_back: Sender<Request<B>>

Send request back to server. You can modify request before sending it back. NOTE: If you drop this without send(), communication will be canceled and server will not receive request and client will get 500 Internal Server Error.

§response: Receiver<Result<Response<UnboundedReceiver<Result<Frame<Bytes>, Arc<Error>>>>, Error>>

Response from server. Be sent error if fails to get response from server.

§upgrade: Receiver<Upgrade>

Upgraded connection. Proxy will upgrade connection if and only if response status is 101.

Auto Trait Implementations§

§

impl<B> !Freeze for Communication<B>

§

impl<B> !RefUnwindSafe for Communication<B>

§

impl<B> Send for Communication<B>
where B: Send,

§

impl<B> Sync for Communication<B>
where B: Send,

§

impl<B> Unpin for Communication<B>

§

impl<B> !UnwindSafe for Communication<B>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more