From 0be4106a600b2e038170d4c49136f50ad54af6b7 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 27 Jun 2020 21:17:14 +0200 Subject: FastCgiRequest: Add query string --- src/lib.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index f481f59..5571525 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,6 +34,7 @@ struct FastCgiRequest<'a> { method: conduit::Method, headers: conduit::HeaderMap, path: String, + query: Option, } impl<'a> FastCgiRequest<'a> { @@ -50,6 +51,7 @@ impl<'a> FastCgiRequest<'a> { method: method, headers: headers, path: Self::path(&request), + query: Self::query(&request), }; Ok(r) @@ -128,6 +130,10 @@ impl<'a> FastCgiRequest<'a> { None => "/".to_owned(), } } + + fn query(request: &'a fastcgi::Request) -> Option { + request.param("QUERY_STRING") + } } impl<'a> conduit::RequestExt for FastCgiRequest<'a> { @@ -155,7 +161,11 @@ impl<'a> conduit::RequestExt for FastCgiRequest<'a> { &self.path } - fn query_string(&self) -> std::option::Option<&str> { todo!() } + fn query_string(&self) -> std::option::Option<&str> { + self.query.as_ref() + .map(|p| p.as_str()) + } + fn remote_addr(&self) -> std::net::SocketAddr { todo!() } fn content_length(&self) -> std::option::Option { todo!() } fn headers(&self) -> &conduit::HeaderMap { todo!() } -- cgit v1.2.3