From 3c96661660c14f20b454c42429b85ab55e45ddc8 Mon Sep 17 00:00:00 2001 From: Louis-Marie Givel Date: Thu, 30 Oct 2025 09:37:44 +0100 Subject: [PATCH] Fix panic on trying to get ~/ui path --- josh-proxy/src/bin/josh-proxy.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/josh-proxy/src/bin/josh-proxy.rs b/josh-proxy/src/bin/josh-proxy.rs index 3e0a07e3e..41ed6abb1 100644 --- a/josh-proxy/src/bin/josh-proxy.rs +++ b/josh-proxy/src/bin/josh-proxy.rs @@ -1209,6 +1209,13 @@ async fn call_service( }; if let Some(resource_path) = path.strip_prefix("/~/ui") { + if resource_path == "" { + let redirect_path = "/~/ui/".to_string(); + return Ok(Response::builder() + .status(hyper::StatusCode::FOUND) + .header(hyper::header::LOCATION, redirect_path) + .body(empty())?); + } return handle_ui_request(req, resource_path).await; } @@ -1257,7 +1264,7 @@ async fn call_service( let redirect_path = "/~/ui/".to_string(); return Ok(Response::builder() .status(hyper::StatusCode::FOUND) - .header("Location", redirect_path) + .header(hyper::header::LOCATION, redirect_path) .body(empty())?); } else { return Ok(Response::builder() @@ -1311,7 +1318,10 @@ async fn call_service( if parsed_url.pathinfo.starts_with("/info/lfs") { return Ok(Response::builder() .status(hyper::StatusCode::TEMPORARY_REDIRECT) - .header("Location", format!("{}{}", remote_url, parsed_url.pathinfo)) + .header( + hyper::header::LOCATION, + format!("{}{}", remote_url, parsed_url.pathinfo), + ) .body(empty())?); } @@ -1493,7 +1503,7 @@ async fn serve_query( Ok(Some((res, params))) => Response::builder() .status(hyper::StatusCode::OK) .header( - "content-type", + hyper::header::CONTENT_TYPE, params .get("content-type") .unwrap_or(&"text/plain".to_string()),