proxyapi 0.4.0

Core library for the Proxelar MITM proxy
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
b0VIM 9.0r�Qd�k|"emanuelemichelettiemanuele-em~emanuelemicheletti/Documents/GitHub/man-in-the-middle-proxy/proxyapi/src/proxy_handler.rsutf-8
U3210#"! UtpoadoCo���~`A�����vT3�
�
�
�
�
v
l
f
e

������gPF@?�������b�
�
�
�
�
y
s
r
>
,
&
�	�	�	�	�	�	|	\	A		�x����jO,�������n[?��;��lR7������WKECB}}}}}    }        res        //Self::sanitize_body(res.body_mut());        self.set_res(output_response).send_output();        );            chrono::Local::now().timestamp_nanos(),            body_bytes,            res.headers().clone(),            res.version(),            res.status(),        let output_response = ProxiedResponse::new(����        *body_mut = Body::from(body_bytes.clone()); // Replacing the potentially mutated body with a reference to the entire contents        let body_bytes = to_bytes(&mut body_mut).await.unwrap_or_default();����        let mut body_mut = res.body_mut();����        //println!("res: {:?}\n\n", res);    ) -> Response<Body> {        mut res: Response<Body>,        _ctx: &HttpContext,        &mut self,    async fn handle_response(    }        req.into()        *self = self.set_req(output_request);        );            chrono::Local::now().timestamp_nanos(),            body_bytes,            req.headers().clone(),            req.version(),            req.uri().clone(),            req.method().clone(),        let output_request = ProxiedRequest::new(����        *body_mut = Body::from(body_bytes.clone()); // Replacing the potentially mutated body with a reference to the entire contents        let body_bytes = to_bytes(&mut body_mut).await.unwrap_or_default();����        let mut body_mut = req.body_mut();����        //println!("request{:?}\n", req);    ) -> RequestResponse {        mut req: Request<Body>,        _ctx: &HttpContext,        &mut self,    async fn handle_request(impl HttpHandler for ProxyHandler {#[async_trait]}��������    }        &self.res    pub fn res(&self) -> &Option<ProxiedResponse> {    }        &self.req    pub fn req(&self) -> &Option<ProxiedRequest> {    }        }            eprintln!("Error on sending Response to main thread: {}", e);        if let Err(e) = self.tx.send(self.clone()) {����    pub fn send_output(self) {    }        }            res: Some(res),            req: self.clone().req,            tx: self.clone().tx,        Self {    pub fn set_res(&mut self, res: ProxiedResponse) -> Self {    }        }            res: None,            req: Some(req),            tx: self.clone().tx,        Self {    pub fn set_req(&mut self, req: ProxiedRequest) -> Self {    }        (self.req, self.res)    pub fn to_parts(self) -> (Option<ProxiedRequest>, Option<ProxiedResponse>) {    }        }            res: None,            req: None,            tx,        Self {    pub fn new(tx: SyncSender<ProxyHandler>) -> Self {impl ProxyHandler {}    res: Option<ProxiedResponse>,    req: Option<ProxiedRequest>,    tx: SyncSender<ProxyHandler>,pub struct ProxyHandler {#[derive(Clone, Debug)]use crate::{HttpContext, HttpHandler, RequestResponse};pub use proxyapi_models::{ProxiedRequest, ProxiedResponse};use hyper::{body::to_bytes, Body};use http::{Request, Response};use async_trait::async_trait;use std::sync::mpsc::SyncSender;// https://github.com/omjadas/hudsucker// This code was derived from the hudsucker repository: