Remove QueryString
QueryString is an error-prone library that was
leftover from crow. Replace it with boost::url,
a header only library based and written by the
one of the authors of boost beast.
Tested: Verified logging paging still worked
as expected
Change-Id: I47c225089aa7d0f7d2299142f91806294f879381
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/http/http_connection.h b/http/http_connection.h
index 35bf99c..8dba3d6 100644
--- a/http/http_connection.h
+++ b/http/http_connection.h
@@ -728,13 +728,9 @@
return;
}
- // Compute the url parameters for the request
- req->url = req->target();
- std::size_t index = req->url.find("?");
- if (index != std::string_view::npos)
- {
- req->url = req->url.substr(0, index);
- }
+ req->urlView = boost::urls::url_view(req->target());
+ req->url = req->urlView.encoded_path();
+
crow::authorization::authenticate(*req, res, session);
bool loggedIn = req && req->session;
@@ -743,7 +739,16 @@
startDeadline(loggedInAttempts);
BMCWEB_LOG_DEBUG << "Starting slow deadline";
- req->urlParams = QueryString(std::string(req->target()));
+ req->urlParams = req->urlView.params();
+
+#ifdef BMCWEB_ENABLE_DEBUG
+ std::string paramList = "";
+ for (const auto param : req->urlParams)
+ {
+ paramList += param->key() + " " + param->value() + " ";
+ }
+ BMCWEB_LOG_DEBUG << "QueryParams: " << paramList;
+#endif
}
else
{