diff options
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/paths.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/modules/paths.rs b/src/modules/paths.rs index 755d550..3dc7596 100644 --- a/src/modules/paths.rs +++ b/src/modules/paths.rs @@ -65,8 +65,16 @@ impl Node for Paths { let mut parts = http::uri::Parts::default(); parts.scheme = request.uri().scheme().cloned(); parts.authority = request.uri().authority().cloned(); - parts.path_and_query = - Some(rest.as_str().parse().map_err(|_| ServiceError::Other)?); + if let Some(q) = request.uri().query() { + parts.path_and_query = Some( + format!("{}?{}", rest.as_str(), q) + .parse() + .map_err(|_| ServiceError::Other)?, + ); + } else { + parts.path_and_query = + Some(rest.as_str().parse().map_err(|_| ServiceError::Other)?); + } *request.uri_mut() = Uri::from_parts(parts).map_err(|_| ServiceError::InvalidUri)? } |