diff options
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -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<u64> { todo!() } |