From ba910a084ae83f4fb77d76b82d5c1edb8f3c13d7 Mon Sep 17 00:00:00 2001 From: SpikeHD Date: Mon, 16 May 2022 23:29:12 -0700 Subject: [PATCH] simplify proxy request handling --- src-tauri/src/proxy.rs | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src-tauri/src/proxy.rs b/src-tauri/src/proxy.rs index de2f0fe..3836228 100644 --- a/src-tauri/src/proxy.rs +++ b/src-tauri/src/proxy.rs @@ -44,28 +44,25 @@ pub fn set_proxy_addr(addr: String){ impl HttpHandler for ProxyHandler { async fn handle_request(&mut self, _context: &HttpContext, - request: Request + mut request: Request ) -> RequestOrResponse { - // Get request parts. - let (parts, body) = request.into_parts(); + println!("Request: {}", &request.uri()); - // Parse request URI. - let mut uri = parts.uri.clone(); - let path = uri.to_string(); + // Get request URI + let uri = request.uri().to_string(); + let uri_path = request.uri().path(); - // Check URI against constraints. - if path.contains("hoyoverse.com") || path.contains("mihoyo.com") || path.contains("yuanshen.com") { - println!("uri path: {}{}", *SERVER.lock().unwrap(), uri.path()); - uri = format!("https://{}{}", *SERVER.lock().unwrap(), uri.path()).parse::().unwrap(); + // Only switch up if request is to the game servers + if uri.contains("hoyoverse.com") || uri.contains("mihoyo.com") || uri.contains("yuanshen.com") { + // Copy the request and just change the URI + let uri = format!("https://{}{}", SERVER.lock().unwrap(), uri_path).parse::().unwrap(); + + *request.uri_mut() = uri; } - let builder = Request::builder() - .method(&parts.method) - .uri(&uri) - .version(parts.version); - let modified = builder.body(body).unwrap(); + println!("New request: {}", &request.uri()); - RequestOrResponse::Request(modified) + RequestOrResponse::Request(request) } async fn handle_response(&mut self,