From: Nutomic Date: Sat, 21 Aug 2021 13:36:33 +0000 (+0000) Subject: Dont append ? to url when cleaning it (#1716) X-Git-Url: http://these/git/%22https:/image.com/%22%7B%7D/static/%7B%60https:/%24%7Bi%7D%60%7D?a=commitdiff_plain;h=3b37ea6c8beeaa57754df698223e76c59e15b4f7;p=lemmy.git Dont append ? to url when cleaning it (#1716) --- diff --git a/crates/utils/src/utils.rs b/crates/utils/src/utils.rs index 1254aff0..0fb1f788 100644 --- a/crates/utils/src/utils.rs +++ b/crates/utils/src/utils.rs @@ -149,12 +149,14 @@ pub fn get_ip(conn_info: &ConnectionInfo) -> IpAddr { } pub fn clean_url_params(mut url: Url) -> Url { - let new_query = url - .query_pairs() - .filter(|q| !CLEAN_URL_PARAMS_REGEX.is_match(&q.0)) - .map(|q| format!("{}={}", q.0, q.1)) - .join("&"); - url.set_query(Some(&new_query)); + if url.query().is_some() { + let new_query = url + .query_pairs() + .filter(|q| !CLEAN_URL_PARAMS_REGEX.is_match(&q.0)) + .map(|q| format!("{}={}", q.0, q.1)) + .join("&"); + url.set_query(Some(&new_query)); + } url } @@ -169,5 +171,9 @@ mod tests { let cleaned = clean_url_params(url); let expected = Url::parse("https://example.com/path/123?username=randomuser&id=123").unwrap(); assert_eq!(expected.to_string(), cleaned.to_string()); + + let url = Url::parse("https://example.com/path/123").unwrap(); + let cleaned = clean_url_params(url.clone()); + assert_eq!(url.to_string(), cleaned.to_string()); } }