From cb1ffca05c679f41490a09fc9e107da707858068 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 27 Jun 2020 21:08:58 +0200 Subject: FastCgiRequest: Add request path --- src/lib.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index ca0fb83..f481f59 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -33,6 +33,7 @@ struct FastCgiRequest<'a> { host: String, method: conduit::Method, headers: conduit::HeaderMap, + path: String, } impl<'a> FastCgiRequest<'a> { @@ -48,6 +49,7 @@ impl<'a> FastCgiRequest<'a> { host: Self::host(&request), method: method, headers: headers, + path: Self::path(&request), }; Ok(r) @@ -119,6 +121,13 @@ impl<'a> FastCgiRequest<'a> { }) .collect() } + + fn path(request: &'a fastcgi::Request) -> String { + match request.param("SCRIPT_NAME") { + Some(p) => p, + None => "/".to_owned(), + } + } } impl<'a> conduit::RequestExt for FastCgiRequest<'a> { @@ -142,7 +151,10 @@ impl<'a> conduit::RequestExt for FastCgiRequest<'a> { None } - fn path(&self) -> &str { todo!() } + fn path(&self) -> &str { + &self.path + } + fn query_string(&self) -> std::option::Option<&str> { todo!() } fn remote_addr(&self) -> std::net::SocketAddr { todo!() } fn content_length(&self) -> std::option::Option { todo!() } -- cgit v1.2.3