b0VIM 9.0 r�Qd�k|" emanuelemicheletti emanuele-em ~emanuelemicheletti/Documents/GitHub/man-in-the-middle-proxy/proxyapi/src/proxy_handler.rs utf-8
U3210 #"! U tp o ad o C o � � � ~ ` A � � � � � v T 3 �
�
�
�
�
v
l
f
e
� � � � � � g P F @ ? � � � � � � � b �
�
�
�
�
y
s
r
>
,
&
� � � � � � | \ A � x � � � � j O , � � � � � � � n [ ? � � ; � � l R 7 � � � � � � W K E C B }}}}} } 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: