Start using sdbusplus::message::filename()
Lots of code gets checked in that does this path checking incorrectly.
So much so, that we have it documented in COMMON_ERRORS.md, yet, we
persist. This patchset starts using the new object_path::filename()
method that was added recently to sdbusplus. Overall, it deletes code,
and makes for a much better developer experience.
Tested:
Pulled down several endpoints and verified that filename() method works
properly, and the collections are returned as expected.
curl -vvvv --insecure --user root:0penBmc https://192.168.7.2/redfish/v1/AccountService/Accounts
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ief1e0584394fb139678d3453265f7011bc931f3c
diff --git a/include/image_upload.hpp b/include/image_upload.hpp
index df6f56c..3786c30 100644
--- a/include/image_upload.hpp
+++ b/include/image_upload.hpp
@@ -76,15 +76,14 @@
}) != interfaces.end())
{
timeout.cancel();
-
- std::size_t index = path.str.rfind('/');
- if (index != std::string::npos)
+ std::string leaf = path.filename();
+ if (leaf.empty())
{
- path.str.erase(0, index + 1);
+ leaf = path.str;
}
- res.jsonValue = {{"data", std::move(path.str)},
- {"message", "200 OK"},
- {"status", "ok"}};
+
+ res.jsonValue = {
+ {"data", leaf}, {"message", "200 OK"}, {"status", "ok"}};
BMCWEB_LOG_DEBUG << "ending response";
res.end();
fwUpdateMatcher = nullptr;