summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.clang-tidy185
-rw-r--r--http/http_client.hpp2
-rw-r--r--http/http_response.hpp11
-rw-r--r--http/routing.hpp16
-rw-r--r--include/authorization.hpp4
-rw-r--r--include/dbus_monitor.hpp6
-rw-r--r--include/openbmc_dbus_rest.hpp21
-rw-r--r--include/pam_authenticate.hpp9
-rw-r--r--redfish-core/include/event_service_manager.hpp16
-rw-r--r--redfish-core/include/server_sent_events.hpp4
-rw-r--r--redfish-core/include/utils/collection.hpp2
-rw-r--r--redfish-core/include/utils/fw_utils.hpp4
-rw-r--r--redfish-core/lib/account_service.hpp40
-rw-r--r--redfish-core/lib/certificate_service.hpp2
-rw-r--r--redfish-core/lib/chassis.hpp3
-rw-r--r--redfish-core/lib/ethernet.hpp54
-rw-r--r--redfish-core/lib/hypervisor_ethernet.hpp21
-rw-r--r--redfish-core/lib/log_services.hpp16
-rw-r--r--redfish-core/lib/managers.hpp8
-rw-r--r--redfish-core/lib/memory.hpp2
-rw-r--r--redfish-core/lib/network_protocol.hpp11
-rw-r--r--redfish-core/lib/power.hpp4
-rw-r--r--redfish-core/lib/redfish_util.hpp2
-rw-r--r--redfish-core/lib/sensors.hpp22
-rw-r--r--redfish-core/lib/storage.hpp4
-rw-r--r--redfish-core/lib/systems.hpp39
-rw-r--r--redfish-core/lib/update_service.hpp8
-rw-r--r--redfish-core/lib/virtual_media.hpp8
28 files changed, 263 insertions, 261 deletions
diff --git a/.clang-tidy b/.clang-tidy
index 67c3f8a91f..989dd74582 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -1,6 +1,84 @@
Checks: '
-*,
-readability-identifier-naming,
+bugprone-argument-comment,
+bugprone-assert-side-effect,
+bugprone-bad-signal-to-kill-thread,
+bugprone-bool-pointer-implicit-conversion,
+bugprone-branch-clone,
+bugprone-copy-constructor-init,
+bugprone-dangling-handle,
+bugprone-dynamic-static-initializers,
+bugprone-fold-init-type,
+bugprone-forward-declaration-namespace,
+bugprone-forwarding-reference-overload,
+bugprone-inaccurate-erase,
+bugprone-incorrect-roundings,
+bugprone-infinite-loop,
+bugprone-integer-division,
+bugprone-lambda-function-name,
+bugprone-macro-parentheses,
+bugprone-macro-repeated-side-effects,
+bugprone-misplaced-operator-in-strlen-in-alloc,
+bugprone-misplaced-pointer-arithmetic-in-alloc,
+bugprone-misplaced-widening-cast,
+bugprone-multiple-statement-macro,
+bugprone-narrowing-conversions,
+bugprone-no-escape,
+bugprone-not-null-terminated-result,
+bugprone-parent-virtual-call,
+bugprone-posix-return,
+bugprone-reserved-identifier,
+bugprone-signed-char-misuse,
+bugprone-sizeof-container,
+bugprone-sizeof-expression,
+bugprone-spuriously-wake-up-functions,
+bugprone-string-constructor,
+bugprone-string-integer-assignment,
+bugprone-string-literal-with-embedded-nul,
+bugprone-suspicious-enum-usage,
+bugprone-suspicious-include,
+bugprone-suspicious-memset-usage,
+bugprone-suspicious-missing-comma,
+bugprone-suspicious-semicolon,
+bugprone-suspicious-string-compare,
+bugprone-swapped-arguments,
+bugprone-terminating-continue,
+bugprone-throw-keyword-missing,
+bugprone-too-small-loop-variable,
+bugprone-undefined-memory-manipulation,
+bugprone-undelegated-constructor,
+bugprone-unhandled-self-assignment,
+bugprone-unused-raii,
+bugprone-unused-return-value,
+bugprone-use-after-move,
+bugprone-virtual-near-miss,
+cert-con36-c,
+cert-con54-cpp,
+cert-dcl03-c,
+cert-dcl16-c,
+cert-dcl21-cpp,
+cert-dcl37-c,
+cert-dcl50-cpp,
+cert-dcl51-cpp,
+cert-dcl54-cpp,
+cert-dcl58-cpp,
+cert-dcl59-cpp,
+cert-env33-c,
+cert-err09-cpp,
+cert-err34-c,
+cert-err52-cpp,
+cert-err60-cpp,
+cert-err61-cpp,
+cert-fio38-c,
+cert-flp30-c,
+cert-mem57-cpp,
+cert-msc30-c,
+cert-msc32-c,
+cert-msc50-cpp,
+cert-msc51-cpp,
+cert-oop11-cpp,
+cert-oop54-cpp,
+cert-oop57-cpp,
clang-analyzer-apiModeling.StdCLibraryFunctions,
clang-analyzer-apiModeling.TrustNonnull,
clang-analyzer-apiModeling.google.GTest,
@@ -111,33 +189,14 @@ clang-analyzer-valist.Unterminated,
clang-analyzer-valist.ValistBase,
clang-analyzer-webkit.NoUncountedMemberChecker,
clang-analyzer-webkit.RefCntblBaseVirtualDtor,
-cert-con36-c,
-cert-con54-cpp,
-cert-dcl03-c,
-cert-dcl16-c,
-cert-dcl21-cpp,
-cert-dcl37-c,
-cert-dcl50-cpp,
-cert-dcl51-cpp,
-cert-dcl54-cpp,
-cert-dcl58-cpp,
-cert-dcl59-cpp,
-cert-env33-c,
-cert-err09-cpp,
-cert-err34-c,
-cert-err52-cpp,
-cert-err60-cpp,
-cert-err61-cpp,
-cert-fio38-c,
-cert-flp30-c,
-cert-mem57-cpp,
-cert-msc30-c,
-cert-msc32-c,
-cert-msc50-cpp,
-cert-msc51-cpp,
-cert-oop11-cpp,
-cert-oop54-cpp,
-cert-oop57-cpp,
+misc-misplaced-const,
+misc-no-recursion,
+misc-redundant-expression,
+misc-static-assert,
+misc-throw-by-value-catch-by-reference,
+misc-unconventional-assign-operator,
+misc-uniqueptr-reset-release,
+misc-unused-using-decls,
modernize-avoid-bind,
modernize-deprecated-headers,
modernize-deprecated-ios-base-aliases,
@@ -161,82 +220,26 @@ modernize-use-override,
modernize-use-transparent-functors,
modernize-use-uncaught-exceptions,
modernize-use-using,
-bugprone-argument-comment,
-bugprone-assert-side-effect,
-bugprone-bad-signal-to-kill-thread,
-bugprone-bool-pointer-implicit-conversion,
-bugprone-branch-clone,
-bugprone-copy-constructor-init,
-bugprone-dangling-handle,
-bugprone-dynamic-static-initializers,
-bugprone-fold-init-type,
-bugprone-forward-declaration-namespace,
-bugprone-forwarding-reference-overload,
-bugprone-inaccurate-erase,
-bugprone-incorrect-roundings,
-bugprone-infinite-loop,
-bugprone-integer-division,
-bugprone-lambda-function-name,
-bugprone-macro-parentheses,
-bugprone-macro-repeated-side-effects,
-bugprone-misplaced-operator-in-strlen-in-alloc,
-bugprone-misplaced-pointer-arithmetic-in-alloc,
-bugprone-misplaced-widening-cast,
-bugprone-multiple-statement-macro,
-bugprone-narrowing-conversions,
-bugprone-no-escape,
-bugprone-not-null-terminated-result,
-bugprone-parent-virtual-call,
-bugprone-posix-return,
-bugprone-reserved-identifier,
-bugprone-signed-char-misuse,
-bugprone-sizeof-container,
-bugprone-sizeof-expression,
-bugprone-spuriously-wake-up-functions,
-bugprone-string-constructor,
-bugprone-string-integer-assignment,
-bugprone-string-literal-with-embedded-nul,
-bugprone-suspicious-enum-usage,
-bugprone-suspicious-include,
-bugprone-suspicious-memset-usage,
-bugprone-suspicious-missing-comma,
-bugprone-suspicious-semicolon,
-bugprone-suspicious-string-compare,
-bugprone-swapped-arguments,
-bugprone-terminating-continue,
-bugprone-throw-keyword-missing,
-bugprone-too-small-loop-variable,
-bugprone-undefined-memory-manipulation,
-bugprone-undelegated-constructor,
-bugprone-unhandled-self-assignment,
-bugprone-unused-raii,
-bugprone-unused-return-value,
-bugprone-use-after-move,
-bugprone-virtual-near-miss,
-misc-misplaced-const,
-misc-no-recursion,
-misc-redundant-expression,
-misc-static-assert,
-misc-throw-by-value-catch-by-reference,
-misc-unconventional-assign-operator,
-misc-uniqueptr-reset-release,
-misc-unused-using-decls,
+performance-faster-string-find,
performance-for-range-copy,
performance-implicit-conversion-in-loop,
performance-inefficient-algorithm,
+performance-inefficient-string-concatenation,
performance-inefficient-vector-operation,
+performance-move-const-arg,
performance-move-constructor-init,
performance-no-automatic-move,
+performance-noexcept-move-constructor,
performance-trivially-destructible,
performance-type-promotion-in-math-fn,
performance-unnecessary-copy-initialization,
-readability-identifier-naming,
+performance-unnecessary-value-param,
readability-braces-around-statements,
readability-const-return-type,
readability-delete-null-pointer,
readability-deleted-default,
-readability-else-after-return'
-
+readability-else-after-return,
+readability-identifier-naming,
WarningsAsErrors: '*'
HeaderFilterRegex: '.*'
diff --git a/http/http_client.hpp b/http/http_client.hpp
index cc30cab8bd..5c7b13fc1d 100644
--- a/http/http_client.hpp
+++ b/http/http_client.hpp
@@ -306,7 +306,7 @@ class HttpClient : public std::enable_shared_from_this<HttpClient>
const std::string& destUri) :
conn(ioc),
timer(ioc), subId(id), host(destIP), port(destPort), uri(destUri),
- retryCount(0), maxRetryAttempts(5),
+ retryCount(0), maxRetryAttempts(5), retryIntervalSecs(0),
retryPolicyAction("TerminateAfterRetries"), runningTimer(false)
{
boost::asio::ip::tcp::resolver resolver(ioc);
diff --git a/http/http_response.hpp b/http/http_response.hpp
index b521b20331..7b8b5d99a5 100644
--- a/http/http_response.hpp
+++ b/http/http_response.hpp
@@ -37,17 +37,6 @@ struct Response
Response() : stringResponse(response_type{})
{}
- Response(Response&& r)
- {
- BMCWEB_LOG_DEBUG << "Moving response containers";
- *this = std::move(r);
- }
-
- ~Response()
- {
- BMCWEB_LOG_DEBUG << this << " Destroying response";
- }
-
Response& operator=(const Response& r) = delete;
Response& operator=(Response&& r) noexcept
diff --git a/http/routing.hpp b/http/routing.hpp
index 9c6a15b31b..d5473482a1 100644
--- a/http/routing.hpp
+++ b/http/routing.hpp
@@ -30,7 +30,7 @@ namespace crow
class BaseRule
{
public:
- BaseRule(std::string thisRule) : rule(std::move(thisRule))
+ BaseRule(const std::string& thisRule) : rule(thisRule)
{}
virtual ~BaseRule() = default;
@@ -313,7 +313,7 @@ class WebSocketRule : public BaseRule
using self_t = WebSocketRule;
public:
- WebSocketRule(std::string ruleIn) : BaseRule(std::move(ruleIn))
+ WebSocketRule(const std::string& ruleIn) : BaseRule(ruleIn)
{}
void validate() override
@@ -402,10 +402,10 @@ struct RuleParameterTraits
return *p;
}
- self_t& name(const std::string& name) noexcept
+ self_t& name(const std::string_view name) noexcept
{
self_t* self = static_cast<self_t*>(this);
- self->nameStr = std::move(name);
+ self->nameStr = name;
return *self;
}
@@ -448,7 +448,7 @@ struct RuleParameterTraits
class DynamicRule : public BaseRule, public RuleParameterTraits<DynamicRule>
{
public:
- DynamicRule(std::string ruleIn) : BaseRule(std::move(ruleIn))
+ DynamicRule(const std::string& ruleIn) : BaseRule(ruleIn)
{}
void validate() override
@@ -521,7 +521,7 @@ class TaggedRule :
public:
using self_t = TaggedRule<Args...>;
- TaggedRule(const std::string& ruleIn) : BaseRule(std::move(ruleIn))
+ TaggedRule(const std::string& ruleIn) : BaseRule(ruleIn)
{}
void validate() override
@@ -612,9 +612,9 @@ class TaggedRule :
}
template <typename Func>
- void operator()(const std::string& name, Func&& f)
+ void operator()(const std::string_view name, Func&& f)
{
- nameStr = std::move(name);
+ nameStr = name;
(*this).template operator()<Func>(std::forward(f));
}
diff --git a/include/authorization.hpp b/include/authorization.hpp
index 0ccd1e59ff..e965508e08 100644
--- a/include/authorization.hpp
+++ b/include/authorization.hpp
@@ -231,7 +231,7 @@ static bool isOnWhitelist(const crow::Request& req)
static void authenticate(
crow::Request& req, Response& res,
- [[maybe_unused]] std::weak_ptr<persistent_data::UserSession> session)
+ [[maybe_unused]] const std::weak_ptr<persistent_data::UserSession>& session)
{
if (isOnWhitelist(req))
{
@@ -244,7 +244,7 @@ static void authenticate(
#ifdef BMCWEB_ENABLE_MUTUAL_TLS_AUTHENTICATION
if (req.session == nullptr && authMethodsConfig.tls)
{
- req.session = performTLSAuth(req, res, std::move(session));
+ req.session = performTLSAuth(req, res, session);
}
#endif
if (req.session == nullptr && authMethodsConfig.xtoken)
diff --git a/include/dbus_monitor.hpp b/include/dbus_monitor.hpp
index aeab1032b7..74d38f670e 100644
--- a/include/dbus_monitor.hpp
+++ b/include/dbus_monitor.hpp
@@ -212,8 +212,10 @@ inline void requestRoutes(App& app)
conn.close();
return;
}
- std::string ifaceMatchString =
- propertiesMatchString + ",arg0='" + interface + "'";
+ std::string ifaceMatchString = propertiesMatchString;
+ ifaceMatchString += ",arg0='";
+ ifaceMatchString += interface;
+ ifaceMatchString += "'";
BMCWEB_LOG_DEBUG << "Creating match "
<< ifaceMatchString;
thisSession.matches.emplace_back(
diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index a369ef2d6c..e970de5da3 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -2444,12 +2444,21 @@ inline void requestRoutes(App& app)
const char* name = methods->Attribute("name");
if (name != nullptr)
{
- methodsArray.push_back(
- {{"name", name},
- {"uri", "/bus/system/" + processName +
- objectPath + "/" +
- interfaceName + "/" + name},
- {"args", argsArray}});
+ std::string uri;
+ uri.reserve(14 + processName.size() +
+ objectPath.size() +
+ interfaceName.size() +
+ strlen(name));
+ uri += "/bus/system/";
+ uri += processName;
+ uri += objectPath;
+ uri += "/";
+ uri += interfaceName;
+ uri += "/";
+ uri += name;
+ methodsArray.push_back({{"name", name},
+ {"uri", std::move(uri)},
+ {"args", argsArray}});
}
methods = methods->NextSiblingElement("method");
}
diff --git a/include/pam_authenticate.hpp b/include/pam_authenticate.hpp
index 3e5c6915c5..12f19c0a9c 100644
--- a/include/pam_authenticate.hpp
+++ b/include/pam_authenticate.hpp
@@ -25,15 +25,16 @@ inline int pamFunctionConversation(int numMsg, const struct pam_message** msg,
std::strncpy(pass, appPass, appPassSize + 1);
- *resp = reinterpret_cast<pam_response*>(
- calloc(static_cast<size_t>(numMsg), sizeof(struct pam_response)));
-
- if (resp == nullptr)
+ void* ptr =
+ calloc(static_cast<size_t>(numMsg), sizeof(struct pam_response));
+ if (ptr == nullptr)
{
free(pass);
return PAM_AUTH_ERR;
}
+ *resp = reinterpret_cast<pam_response*>(ptr);
+
for (int i = 0; i < numMsg; ++i)
{
/* Ignore all PAM messages except prompting for hidden input */
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index 7ece888749..54dafb427a 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -156,14 +156,14 @@ inline int getEventLogParams(const std::string& logEntry,
{
// The redfish log format is "<Timestamp> <MessageId>,<MessageArgs>"
// First get the Timestamp
- size_t space = logEntry.find_first_of(" ");
+ size_t space = logEntry.find_first_of(' ');
if (space == std::string::npos)
{
return -EINVAL;
}
timestamp = logEntry.substr(0, space);
// Then get the log contents
- size_t entryStart = logEntry.find_first_not_of(" ", space);
+ size_t entryStart = logEntry.find_first_not_of(' ', space);
if (entryStart == std::string::npos)
{
return -EINVAL;
@@ -247,8 +247,8 @@ inline int formatEventLogEntry(const std::string& logEntryID,
// Get the Created time from the timestamp. The log timestamp is in
// RFC3339 format which matches the Redfish format except for the
// fractional seconds between the '.' and the '+', so just remove them.
- std::size_t dot = timestamp.find_first_of(".");
- std::size_t plus = timestamp.find_first_of("+");
+ std::size_t dot = timestamp.find_first_of('.');
+ std::size_t plus = timestamp.find_first_of('+');
if (dot != std::string::npos && plus != std::string::npos)
{
timestamp.erase(dot, plus - dot);
@@ -259,8 +259,8 @@ inline int formatEventLogEntry(const std::string& logEntryID,
{"EventType", "Event"},
{"Severity", std::move(severity)},
{"Message", std::move(msg)},
- {"MessageId", std::move(messageID)},
- {"MessageArgs", std::move(messageArgs)},
+ {"MessageId", messageID},
+ {"MessageArgs", messageArgs},
{"EventTimestamp", std::move(timestamp)},
{"Context", customText}};
return 0;
@@ -1122,7 +1122,7 @@ class EventServiceManager
std::string logEntry;
while (std::getline(logStream, logEntry))
{
- size_t space = logEntry.find_first_of(" ");
+ size_t space = logEntry.find_first_of(' ');
if (space == std::string::npos)
{
// Shouldn't enter here but lets skip it.
@@ -1346,7 +1346,7 @@ class EventServiceManager
void getMetricReading(const std::string& service,
const std::string& objPath, const std::string& intf)
{
- std::size_t found = objPath.find_last_of("/");
+ std::size_t found = objPath.find_last_of('/');
if (found == std::string::npos)
{
BMCWEB_LOG_DEBUG << "Invalid objPath received";
diff --git a/redfish-core/include/server_sent_events.hpp b/redfish-core/include/server_sent_events.hpp
index ee4ad4d271..578fa19597 100644
--- a/redfish-core/include/server_sent_events.hpp
+++ b/redfish-core/include/server_sent_events.hpp
@@ -261,8 +261,8 @@ class ServerSentEvents : public std::enable_shared_from_this<ServerSentEvents>
ServerSentEvents& operator=(ServerSentEvents&&) = delete;
ServerSentEvents(const std::shared_ptr<boost::beast::tcp_stream>& adaptor) :
- sseConn(std::move(adaptor)), state(SseConnState::startInit),
- retryCount(0), maxRetryAttempts(5)
+ sseConn(adaptor), state(SseConnState::startInit), retryCount(0),
+ maxRetryAttempts(5)
{
startSSE();
}
diff --git a/redfish-core/include/utils/collection.hpp b/redfish-core/include/utils/collection.hpp
index e73fce3a9a..85a462aab0 100644
--- a/redfish-core/include/utils/collection.hpp
+++ b/redfish-core/include/utils/collection.hpp
@@ -44,7 +44,7 @@ inline void getCollectionMembers(std::shared_ptr<AsyncResp> aResp,
for (const auto& object : subtree)
{
- auto iter = object.first.rfind("/");
+ auto iter = object.first.rfind('/');
if ((iter != std::string::npos) && (iter < object.first.size()))
{
members.push_back(
diff --git a/redfish-core/include/utils/fw_utils.hpp b/redfish-core/include/utils/fw_utils.hpp
index 6a2ca14ed9..43eded6822 100644
--- a/redfish-core/include/utils/fw_utils.hpp
+++ b/redfish-core/include/utils/fw_utils.hpp
@@ -69,7 +69,7 @@ inline void
for (auto& fw : *functionalFw)
{
- std::string::size_type idPos = fw.rfind("/");
+ std::string::size_type idPos = fw.rfind('/');
if (idPos == std::string::npos)
{
BMCWEB_LOG_DEBUG << "Can't parse firmware ID!";
@@ -110,7 +110,7 @@ inline void
subtree)
{
// if can't parse fw id then return
- std::string::size_type idPos = obj.first.rfind("/");
+ std::string::size_type idPos = obj.first.rfind('/');
if (idPos == std::string::npos)
{
messages::internalError(aResp->res);
diff --git a/redfish-core/lib/account_service.hpp b/redfish-core/lib/account_service.hpp
index 23c7fb9351..06c6bf2eb9 100644
--- a/redfish-core/lib/account_service.hpp
+++ b/redfish-core/lib/account_service.hpp
@@ -208,11 +208,11 @@ inline void parseLDAPConfigData(nlohmann::json& json_response,
inline void handleRoleMapPatch(
const std::shared_ptr<AsyncResp>& asyncResp,
const std::vector<std::pair<std::string, LDAPRoleMapData>>& roleMapObjData,
- const std::string& serverType, std::vector<nlohmann::json>& input)
+ const std::string& serverType, const std::vector<nlohmann::json>& input)
{
for (size_t index = 0; index < input.size(); index++)
{
- nlohmann::json& thisJson = input[index];
+ const nlohmann::json& thisJson = input[index];
if (thisJson.is_null())
{
@@ -255,8 +255,12 @@ inline void handleRoleMapPatch(
std::optional<std::string> remoteGroup;
std::optional<std::string> localRole;
- if (!json_util::readJson(thisJson, asyncResp->res, "RemoteGroup",
- remoteGroup, "LocalRole", localRole))
+ // This is a copy, but it's required in this case because of how
+ // readJson is structured
+ nlohmann::json thisJsonCopy = thisJson;
+ if (!json_util::readJson(thisJsonCopy, asyncResp->res,
+ "RemoteGroup", remoteGroup, "LocalRole",
+ localRole))
{
continue;
}
@@ -1112,11 +1116,8 @@ class AccountService : public Node
if (remoteRoleMapData)
{
- std::vector<nlohmann::json> remoteRoleMap =
- std::move(*remoteRoleMapData);
-
handleRoleMapPatch(asyncResp, confData.groupRoleList,
- serverT, remoteRoleMap);
+ serverT, *remoteRoleMapData);
}
});
}
@@ -1367,7 +1368,7 @@ class AccountsCollection : public Node
{
const std::string& path =
static_cast<const std::string&>(user.first);
- std::size_t lastIndex = path.rfind("/");
+ std::size_t lastIndex = path.rfind('/');
if (lastIndex == std::string::npos)
{
lastIndex = 0;
@@ -1453,9 +1454,9 @@ class AccountsCollection : public Node
}
crow::connections::systemBus->async_method_call(
- [asyncResp, username, password{std::move(password)}](
- const boost::system::error_code ec2,
- sdbusplus::message::message& m) {
+ [asyncResp, username,
+ password](const boost::system::error_code ec2,
+ sdbusplus::message::message& m) {
if (ec2)
{
userErrorMessageHandler(m.get_error(), asyncResp,
@@ -1733,10 +1734,10 @@ class ManagerAccount : public Node
}
crow::connections::systemBus->async_method_call(
[this, asyncResp, username, password(std::move(password)),
- roleId(std::move(roleId)), enabled(std::move(enabled)),
+ roleId(std::move(roleId)), enabled,
newUser{std::string(*newUserName)},
- locked(std::move(locked))](const boost::system::error_code ec,
- sdbusplus::message::message& m) {
+ locked](const boost::system::error_code ec,
+ sdbusplus::message::message& m) {
if (ec)
{
userErrorMessageHandler(m.get_error(), asyncResp, newUser,
@@ -1765,9 +1766,8 @@ class ManagerAccount : public Node
dbus::utility::checkDbusPathExists(
dbusObjectPath,
[dbusObjectPath(std::move(dbusObjectPath)), username,
- password(std::move(password)), roleId(std::move(roleId)),
- enabled(std::move(enabled)), locked(std::move(locked)),
- asyncResp{std::move(asyncResp)}](int rc) {
+ password(std::move(password)), roleId(std::move(roleId)), enabled,
+ locked, asyncResp{std::move(asyncResp)}](int rc) {
if (!rc)
{
messages::resourceNotFound(
@@ -1901,8 +1901,8 @@ class ManagerAccount : public Node
const std::string userPath = "/xyz/openbmc_project/user/" + params[0];
crow::connections::systemBus->async_method_call(
- [asyncResp, username{std::move(params[0])}](
- const boost::system::error_code ec) {
+ [asyncResp,
+ username{params[0]}](const boost::system::error_code ec) {
if (ec)
{
messages::resourceNotFound(
diff --git a/redfish-core/lib/certificate_service.hpp b/redfish-core/lib/certificate_service.hpp
index 6fc5515048..5dc1e1ffbb 100644
--- a/redfish-core/lib/certificate_service.hpp
+++ b/redfish-core/lib/certificate_service.hpp
@@ -99,7 +99,7 @@ class CertificateService : public Node
*/
inline long getIDFromURL(const std::string_view url)
{
- std::size_t found = url.rfind("/");
+ std::size_t found = url.rfind('/');
if (found == std::string::npos)
{
return -1;
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 92bf1a08dd..b7186985b3 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -473,8 +473,7 @@ class Chassis : public Node
}
if (indicatorChassis)
{
- setIndicatorLedState(asyncResp,
- std::move(*indicatorLed));
+ setIndicatorLedState(asyncResp, *indicatorLed);
}
else
{
diff --git a/redfish-core/lib/ethernet.hpp b/redfish-core/lib/ethernet.hpp
index 05f5d5541c..55f1cf50ea 100644
--- a/redfish-core/lib/ethernet.hpp
+++ b/redfish-core/lib/ethernet.hpp
@@ -201,13 +201,13 @@ inline std::string
}
inline bool extractEthernetInterfaceData(const std::string& ethiface_id,
- const GetManagedObjects& dbus_data,
+ GetManagedObjects& dbus_data,
EthernetInterfaceData& ethData)
{
bool idFound = false;
- for (const auto& objpath : dbus_data)
+ for (auto& objpath : dbus_data)
{
- for (const auto& ifacePair : objpath.second)
+ for (auto& ifacePair : objpath.second)
{
if (objpath.first == "/xyz/openbmc_project/network/" + ethiface_id)
{
@@ -290,7 +290,7 @@ inline bool extractEthernetInterfaceData(const std::string& ethiface_id,
&propertyPair.second);
if (nameservers != nullptr)
{
- ethData.nameServers = std::move(*nameservers);
+ ethData.nameServers = *nameservers;
}
}
else if (propertyPair.first == "StaticNameServers")
@@ -300,8 +300,7 @@ inline bool extractEthernetInterfaceData(const std::string& ethiface_id,
&propertyPair.second);
if (staticNameServers != nullptr)
{
- ethData.staticNameServers =
- std::move(*staticNameServers);
+ ethData.staticNameServers = *staticNameServers;
}
}
else if (propertyPair.first == "DHCPEnabled")
@@ -320,7 +319,7 @@ inline bool extractEthernetInterfaceData(const std::string& ethiface_id,
&propertyPair.second);
if (domainNames != nullptr)
{
- ethData.domainnames = std::move(*domainNames);
+ ethData.domainnames = *domainNames;
}
}
}
@@ -895,7 +894,7 @@ void getEthernetIfaceData(const std::string& ethiface_id,
crow::connections::systemBus->async_method_call(
[ethifaceId{std::string{ethiface_id}}, callback{std::move(callback)}](
const boost::system::error_code error_code,
- const GetManagedObjects& resp) {
+ GetManagedObjects& resp) {
EthernetInterfaceData ethData{};
boost::container::flat_set<IPv4AddressData> ipv4Data;
boost::container::flat_set<IPv6AddressData> ipv6Data;
@@ -971,7 +970,7 @@ void getEthernetIfaceList(CallbackFunc&& callback)
{
// Cut out everything until last "/", ...
const std::string& ifaceId = objpath.first.str;
- std::size_t lastPos = ifaceId.rfind("/");
+ std::size_t lastPos = ifaceId.rfind('/');
if (lastPos != std::string::npos)
{
// and put it into output vector.
@@ -1264,7 +1263,8 @@ class EthernetInterface : public Node
void handleDHCPPatch(const std::string& ifaceId,
const EthernetInterfaceData& ethData,
- DHCPParameters v4dhcpParms, DHCPParameters v6dhcpParms,
+ const DHCPParameters& v4dhcpParms,
+ const DHCPParameters& v6dhcpParms,
const std::shared_ptr<AsyncResp>& asyncResp)
{
bool ipv4Active = translateDHCPEnabledToBool(ethData.DHCPEnabled, true);
@@ -1601,7 +1601,7 @@ class EthernetInterface : public Node
}
void handleIPv6StaticAddressesPatch(
- const std::string& ifaceId, nlohmann::json& input,
+ const std::string& ifaceId, const nlohmann::json& input,
const boost::container::flat_set<IPv6AddressData>& ipv6Data,
const std::shared_ptr<AsyncResp>& asyncResp)
{
@@ -1614,7 +1614,7 @@ class EthernetInterface : public Node
size_t entryIdx = 1;
boost::container::flat_set<IPv6AddressData>::const_iterator niciPentry =
getNextStaticIpEntry(ipv6Data.cbegin(), ipv6Data.cend());
- for (nlohmann::json& thisJson : input)
+ for (const nlohmann::json& thisJson : input)
{
std::string pathString =
"IPv6StaticAddresses/" + std::to_string(entryIdx);
@@ -1623,9 +1623,10 @@ class EthernetInterface : public Node
{
std::optional<std::string> address;
std::optional<uint8_t> prefixLength;
-
- if (!json_util::readJson(thisJson, asyncResp->res, "Address",
- address, "PrefixLength", prefixLength))
+ nlohmann::json thisJsonCopy = thisJson;
+ if (!json_util::readJson(thisJsonCopy, asyncResp->res,
+ "Address", address, "PrefixLength",
+ prefixLength))
{
messages::propertyValueFormatError(
asyncResp->res, thisJson.dump(), pathString);
@@ -1781,7 +1782,7 @@ class EthernetInterface : public Node
// When domain name is empty then it means, that it is a network
// without domain names, and the host name itself must be treated as
// FQDN
- std::string fqdn = std::move(ethData.hostname);
+ std::string fqdn = ethData.hostname;
if (!ethData.domainnames.empty())
{
fqdn += "." + ethData.domainnames[0];
@@ -1959,8 +1960,7 @@ class EthernetInterface : public Node
staticNameServers = std::move(staticNameServers),
dhcpv4 = std::move(dhcpv4), dhcpv6 = std::move(dhcpv6),
v4dhcpParms = std::move(v4dhcpParms),
- v6dhcpParms = std::move(v6dhcpParms),
- interfaceEnabled = std::move(interfaceEnabled)](
+ v6dhcpParms = std::move(v6dhcpParms), interfaceEnabled](
const bool& success, const EthernetInterfaceData& ethData,
const boost::container::flat_set<IPv4AddressData>& ipv4Data,
const boost::container::flat_set<IPv6AddressData>& ipv6Data) {
@@ -1976,8 +1976,8 @@ class EthernetInterface : public Node
if (dhcpv4 || dhcpv6)
{
- handleDHCPPatch(ifaceId, ethData, std::move(v4dhcpParms),
- std::move(v6dhcpParms), asyncResp);
+ handleDHCPPatch(ifaceId, ethData, v4dhcpParms, v6dhcpParms,
+ asyncResp);
}
if (hostname)
@@ -2004,7 +2004,7 @@ class EthernetInterface : public Node
// nlohmann::json objects. This makes a copy of the
// structure, and operates on that, but could be done
// more efficiently
- nlohmann::json ipv4Static = std::move(*ipv4StaticAddresses);
+ nlohmann::json ipv4Static = *ipv4StaticAddresses;
handleIPv4StaticPatch(ifaceId, ipv4Static, ipv4Data,
asyncResp);
}
@@ -2023,7 +2023,7 @@ class EthernetInterface : public Node
if (ipv6StaticAddresses)
{
- nlohmann::json ipv6Static = std::move(*ipv6StaticAddresses);
+ nlohmann::json ipv6Static = *ipv6StaticAddresses;
handleIPv6StaticAddressesPatch(ifaceId, ipv6Static,
ipv6Data, asyncResp);
}
@@ -2346,10 +2346,12 @@ class VlanNetworkInterfaceCollection : public Node
{
if (boost::starts_with(ifaceItem, rootInterfaceName + "_"))
{
- ifaceArray.push_back(
- {{"@odata.id",
- "/redfish/v1/Managers/bmc/EthernetInterfaces/" +
- rootInterfaceName + "/VLANs/" + ifaceItem}});
+ std::string path =
+ "/redfish/v1/Managers/bmc/EthernetInterfaces/";
+ path += rootInterfaceName;
+ path += "/VLANs/";
+ path += ifaceItem;
+ ifaceArray.push_back({{"@odata.id", std::move(path)}});
}
}
diff --git a/redfish-core/lib/hypervisor_ethernet.hpp b/redfish-core/lib/hypervisor_ethernet.hpp
index 559aa5f825..eff9c3c712 100644
--- a/redfish-core/lib/hypervisor_ethernet.hpp
+++ b/redfish-core/lib/hypervisor_ethernet.hpp
@@ -123,7 +123,7 @@ class HypervisorInterfaceCollection : public Node
ifaceArray = nlohmann::json::array();
for (const std::string& iface : ifaceList)
{
- std::size_t lastPos = iface.rfind("/");
+ std::size_t lastPos = iface.rfind('/');
if (lastPos != std::string::npos)
{
ifaceArray.push_back(
@@ -522,7 +522,7 @@ class HypervisorInterface : public Node
}
void handleHypervisorIPv4StaticPatch(
- const std::string& ifaceId, nlohmann::json&& input,
+ const std::string& ifaceId, const nlohmann::json& input,
const std::shared_ptr<AsyncResp>& asyncResp)
{
if ((!input.is_array()) || input.empty())
@@ -535,7 +535,7 @@ class HypervisorInterface : public Node
// Hypervisor considers the first IP address in the array list
// as the Hypervisor's virtual management interface supports single IPv4
// address
- nlohmann::json& thisJson = input[0];
+ const nlohmann::json& thisJson = input[0];
// For the error string
std::string pathString = "IPv4StaticAddresses/1";
@@ -545,8 +545,8 @@ class HypervisorInterface : public Node
std::optional<std::string> address;
std::optional<std::string> subnetMask;
std::optional<std::string> gateway;
-
- if (!json_util::readJson(thisJson, asyncResp->res, "Address",
+ nlohmann::json thisJsonCopy = thisJson;
+ if (!json_util::readJson(thisJsonCopy, asyncResp->res, "Address",
address, "SubnetMask", subnetMask,
"Gateway", gateway))
{
@@ -818,8 +818,7 @@ class HypervisorInterface : public Node
ifaceId,
[this, asyncResp, ifaceId, hostName = std::move(hostName),
ipv4StaticAddresses = std::move(ipv4StaticAddresses),
- ipv4DHCPEnabled = std::move(ipv4DHCPEnabled),
- dhcpv4 = std::move(dhcpv4)](
+ ipv4DHCPEnabled, dhcpv4 = std::move(dhcpv4)](
const bool& success, const EthernetInterfaceData& ethData,
const boost::container::flat_set<IPv4AddressData>&) {
if (!success)
@@ -831,8 +830,8 @@ class HypervisorInterface : public Node
if (ipv4StaticAddresses)
{
- nlohmann::json ipv4Static = std::move(*ipv4StaticAddresses);
- nlohmann::json& ipv4Json = ipv4Static[0];
+ const nlohmann::json& ipv4Static = *ipv4StaticAddresses;
+ const nlohmann::json& ipv4Json = ipv4Static[0];
// Check if the param is 'null'. If its null, it means that
// user wants to delete the IP address. Deleting the IP
// address is allowed only if its statically configured.
@@ -846,8 +845,8 @@ class HypervisorInterface : public Node
}
else
{
- handleHypervisorIPv4StaticPatch(
- ifaceId, std::move(ipv4Static), asyncResp);
+ handleHypervisorIPv4StaticPatch(ifaceId, ipv4Static,
+ asyncResp);
}
}
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index c5b7b9d0d5..04f82f7c96 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -444,7 +444,7 @@ inline void getDumpEntryCollection(std::shared_ptr<AsyncResp>& asyncResp,
nlohmann::json& thisEntry = entriesArray.back();
const std::string& path =
static_cast<const std::string&>(object.first);
- std::size_t lastPos = path.rfind("/");
+ std::size_t lastPos = path.rfind('/');
if (lastPos == std::string::npos)
{
continue;
@@ -843,7 +843,7 @@ inline void clearDump(crow::Response& res, const std::string& dumpType)
for (const std::string& path : subTreePaths)
{
- std::size_t pos = path.rfind("/");
+ std::size_t pos = path.rfind('/');
if (pos != std::string::npos)
{
std::string logID = path.substr(pos + 1);
@@ -1072,14 +1072,14 @@ static int fillEventLogEntryJson(const std::string& logEntryID,
{
// The redfish log format is "<Timestamp> <MessageId>,<MessageArgs>"
// First get the Timestamp
- size_t space = logEntry.find_first_of(" ");
+ size_t space = logEntry.find_first_of(' ');
if (space == std::string::npos)
{
return 1;
}
std::string timestamp = logEntry.substr(0, space);
// Then get the log contents
- size_t entryStart = logEntry.find_first_not_of(" ", space);
+ size_t entryStart = logEntry.find_first_not_of(' ', space);
if (entryStart == std::string::npos)
{
return 1;
@@ -1139,8 +1139,8 @@ static int fillEventLogEntryJson(const std::string& logEntryID,
// Get the Created time from the timestamp. The log timestamp is in RFC3339
// format which matches the Redfish format except for the fractional seconds
// between the '.' and the '+', so just remove them.
- std::size_t dot = timestamp.find_first_of(".");
- std::size_t plus = timestamp.find_first_of("+");
+ std::size_t dot = timestamp.find_first_of('.');
+ std::size_t plus = timestamp.find_first_of('+');
if (dot != std::string::npos && plus != std::string::npos)
{
timestamp.erase(dot, plus - dot);
@@ -1156,7 +1156,7 @@ static int fillEventLogEntryJson(const std::string& logEntryID,
{"Id", logEntryID},
{"Message", std::move(msg)},
{"MessageId", std::move(messageID)},
- {"MessageArgs", std::move(messageArgs)},
+ {"MessageArgs", messageArgs},
{"EntryType", "Event"},
{"Severity", std::move(severity)},
{"Created", std::move(timestamp)}};
@@ -2529,7 +2529,7 @@ class CrashdumpEntryCollection : public Node
for (const std::string& objpath : resp)
{
// Get the log ID
- std::size_t lastPos = objpath.rfind("/");
+ std::size_t lastPos = objpath.rfind('/');
if (lastPos == std::string::npos)
{
continue;
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index 3992c9429d..26c2125539 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -1900,7 +1900,7 @@ class Manager : public Node
if (odataId)
{
- setActiveFirmwareImage(response, std::move(*odataId));
+ setActiveFirmwareImage(response, *odataId);
}
}
}
@@ -1954,10 +1954,10 @@ class Manager : public Node
* @return void
*/
void setActiveFirmwareImage(const std::shared_ptr<AsyncResp>& aResp,
- const std::string&& runningFirmwareTarget)
+ const std::string& runningFirmwareTarget)
{
// Get the Id from /redfish/v1/UpdateService/FirmwareInventory/<Id>
- std::string::size_type idPos = runningFirmwareTarget.rfind("/");
+ std::string::size_type idPos = runningFirmwareTarget.rfind('/');
if (idPos == std::string::npos)
{
messages::propertyValueNotInList(aResp->res, runningFirmwareTarget,
@@ -1999,7 +1999,7 @@ class Manager : public Node
{
const std::string& path =
static_cast<const std::string&>(object.first);
- std::size_t idPos2 = path.rfind("/");
+ std::size_t idPos2 = path.rfind('/');
if (idPos2 == std::string::npos)
{
diff --git a/redfish-core/lib/memory.hpp b/redfish-core/lib/memory.hpp
index 4fa7c114d1..e7b1113355 100644
--- a/redfish-core/lib/memory.hpp
+++ b/redfish-core/lib/memory.hpp
@@ -543,7 +543,7 @@ inline void getDimmDataByService(std::shared_ptr<AsyncResp> aResp,
std::get_if<std::string>(&property.second);
if (value != nullptr)
{
- size_t idx = value->rfind(".");
+ size_t idx = value->rfind('.');
if (idx == std::string::npos ||
idx + 1 >= value->size())
{
diff --git a/redfish-core/lib/network_protocol.hpp b/redfish-core/lib/network_protocol.hpp
index 8752cf889a..31efc7552e 100644
--- a/redfish-core/lib/network_protocol.hpp
+++ b/redfish-core/lib/network_protocol.hpp
@@ -82,7 +82,7 @@ inline void
&propertyPair.second);
if (ntpServers != nullptr)
{
- ntpData = std::move(*ntpServers);
+ ntpData = *ntpServers;
}
}
else if (propertyPair.first == "DomainName")
@@ -92,7 +92,7 @@ inline void
&propertyPair.second);
if (domainNames != nullptr)
{
- dnData = std::move(*domainNames);
+ dnData = *domainNames;
}
}
}
@@ -240,10 +240,11 @@ class NetworkProtocol : public Node
asyncResp->res.jsonValue["NTP"]["NTPServers"] = ntpServers;
if (hostName.empty() == false)
{
- std::string fqdn = std::move(hostName);
+ std::string fqdn = hostName;
if (domainNames.empty() == false)
{
- fqdn += "." + domainNames[0];
+ fqdn += ".";
+ fqdn += domainNames[0];
}
asyncResp->res.jsonValue["FQDN"] = std::move(fqdn);
}
@@ -317,7 +318,7 @@ class NetworkProtocol : public Node
std::get<NET_PROTO_LISTEN_STREAM>(
(*responsePtr)[0]);
std::size_t lastColonPos =
- listenStream.rfind(":");
+ listenStream.rfind(':');
if (lastColonPos == std::string::npos)
{
// Not a port
diff --git a/redfish-core/lib/power.hpp b/redfish-core/lib/power.hpp
index 5051696701..1c7a0099b3 100644
--- a/redfish-core/lib/power.hpp
+++ b/redfish-core/lib/power.hpp
@@ -176,7 +176,7 @@ class Power : public Node
for (const std::string& chassis : chassisPaths)
{
size_t len = std::string::npos;
- size_t lastPos = chassis.rfind("/");
+ size_t lastPos = chassis.rfind('/');
if (lastPos == std::string::npos)
{
continue;
@@ -185,7 +185,7 @@ class Power : public Node
if (lastPos == chassis.size() - 1)
{
size_t end = lastPos;
- lastPos = chassis.rfind("/", lastPos - 1);
+ lastPos = chassis.rfind('/', lastPos - 1);
if (lastPos == std::string::npos)
{
continue;
diff --git a/redfish-core/lib/redfish_util.hpp b/redfish-core/lib/redfish_util.hpp
index 570171288a..acaea535ad 100644
--- a/redfish-core/lib/redfish_util.hpp
+++ b/redfish-core/lib/redfish_util.hpp
@@ -41,7 +41,7 @@ void getMainChassisId(std::shared_ptr<AsyncResp> asyncResp,
return;
}
- std::size_t idPos = subtree[0].first.rfind("/");
+ std::size_t idPos = subtree[0].first.rfind('/');
if (idPos == std::string::npos ||
(idPos + 1) >= subtree[0].first.size())
{
diff --git a/redfish-core/lib/sensors.hpp b/redfish-core/lib/sensors.hpp
index 6480861ab7..567cb0ca2d 100644
--- a/redfish-core/lib/sensors.hpp
+++ b/redfish-core/lib/sensors.hpp
@@ -388,7 +388,7 @@ void getValidChassisPath(const std::shared_ptr<SensorsAsyncResp>& asyncResp,
std::string chassisName;
for (const std::string& chassis : chassisPaths)
{
- std::size_t lastPos = chassis.rfind("/");
+ std::size_t lastPos = chassis.rfind('/');
if (lastPos == std::string::npos)
{
BMCWEB_LOG_ERROR << "Failed to find '/' in " << chassis;
@@ -441,7 +441,7 @@ void getChassis(const std::shared_ptr<SensorsAsyncResp>& sensorsAsyncResp,
std::string chassisName;
for (const std::string& chassis : chassisPaths)
{
- std::size_t lastPos = chassis.rfind("/");
+ std::size_t lastPos = chassis.rfind('/');
if (lastPos == std::string::npos)
{
BMCWEB_LOG_ERROR << "Failed to find '/' in " << chassis;
@@ -1149,7 +1149,7 @@ inline void populateFanRedundancy(
sensorsAsyncResp->res);
return;
}
- size_t lastSlash = path.rfind("/");
+ size_t lastSlash = path.rfind('/');
if (lastSlash == std::string::npos)
{
// this should be impossible
@@ -1180,7 +1180,7 @@ inline void populateFanRedundancy(
sensorsAsyncResp->res.jsonValue["Fans"];
for (const std::string& item : *collection)
{
- lastSlash = item.rfind("/");
+ lastSlash = item.rfind('/');
// make a copy as collection is const
std::string itemName =
item.substr(lastSlash + 1);
@@ -2617,13 +2617,13 @@ inline void processSensorList(
auto getInventoryItemsCb =
[SensorsAsyncResp, sensorNames, connections,
objectMgrPaths](
- std::shared_ptr<std::vector<InventoryItem>>
+ const std::shared_ptr<std::vector<InventoryItem>>&
inventoryItems) {
BMCWEB_LOG_DEBUG << "getInventoryItemsCb enter";
// Get sensor data and store results in JSON
getSensorData(SensorsAsyncResp, sensorNames,
connections, objectMgrPaths,
- std::move(inventoryItems));
+ inventoryItems);
BMCWEB_LOG_DEBUG << "getInventoryItemsCb exit";
};
@@ -2657,10 +2657,10 @@ inline void
BMCWEB_LOG_DEBUG << "getChassisData enter";
auto getChassisCb =
[SensorsAsyncResp](
- std::shared_ptr<boost::container::flat_set<std::string>>
+ const std::shared_ptr<boost::container::flat_set<std::string>>&
sensorNames) {
BMCWEB_LOG_DEBUG << "getChassisCb enter";
- processSensorList(SensorsAsyncResp, std::move(sensorNames));
+ processSensorList(SensorsAsyncResp, sensorNames);
BMCWEB_LOG_DEBUG << "getChassisCb exit";
};
SensorsAsyncResp->res.jsonValue["Redundancy"] = nlohmann::json::array();
@@ -2686,7 +2686,7 @@ inline bool findSensorNameUsingSensorPath(
{
for (std::string_view chassisSensor : sensorsList)
{
- std::size_t pos = chassisSensor.rfind("/");
+ std::size_t pos = chassisSensor.rfind('/');
if (pos >= (chassisSensor.size() - 1))
{
continue;
@@ -3042,7 +3042,7 @@ class SensorCollection : public Node
{
BMCWEB_LOG_DEBUG << "Adding sensor: " << sensor;
- std::size_t lastPos = sensor.rfind("/");
+ std::size_t lastPos = sensor.rfind('/');
if (lastPos == std::string::npos ||
lastPos + 1 >= sensor.size())
{
@@ -3129,7 +3129,7 @@ class Sensor : public Node
std::vector<std::string>>>>&
object) {
std::string_view sensor = object.first;
- std::size_t lastPos = sensor.rfind("/");
+ std::size_t lastPos = sensor.rfind('/');
if (lastPos == std::string::npos ||
lastPos + 1 >= sensor.size())
{
diff --git a/redfish-core/lib/storage.hpp b/redfish-core/lib/storage.hpp
index e89db652b2..7167503f81 100644
--- a/redfish-core/lib/storage.hpp
+++ b/redfish-core/lib/storage.hpp
@@ -101,7 +101,7 @@ class Storage : public Node
for (const std::string& objpath : storageList)
{
- std::size_t lastPos = objpath.rfind("/");
+ std::size_t lastPos = objpath.rfind('/');
if (lastPos == std::string::npos ||
(objpath.size() <= lastPos + 1))
{
@@ -139,7 +139,7 @@ class Storage : public Node
root = nlohmann::json::array();
for (const auto& [path, interfaceDict] : subtree)
{
- std::size_t lastPos = path.rfind("/");
+ std::size_t lastPos = path.rfind('/');
if (lastPos == std::string::npos ||
(path.size() <= lastPos + 1))
{
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index 9f304b0993..80d3e054c5 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -202,11 +202,10 @@ inline void
crow::connections::systemBus->async_method_call(
[aResp, service{connection.first},
- path(std::move(path))](
- const boost::system::error_code ec2,
- const std::vector<
- std::pair<std::string, VariantType>>&
- properties) {
+ path](const boost::system::error_code ec2,
+ const std::vector<
+ std::pair<std::string, VariantType>>&
+ properties) {
if (ec2)
{
BMCWEB_LOG_ERROR
@@ -309,11 +308,10 @@ inline void
crow::connections::systemBus->async_method_call(
[aResp, service{connection.first},
- path(std::move(path))](
- const boost::system::error_code ec2,
- const std::vector<
- std::pair<std::string, VariantType>>&
- properties) {
+ path](const boost::system::error_code ec2,
+ const std::vector<
+ std::pair<std::string, VariantType>>&
+ properties) {
if (ec2)
{
BMCWEB_LOG_ERROR
@@ -854,7 +852,8 @@ inline void getBootMode(const std::shared_ptr<AsyncResp>& aResp,
*
* @return None.
*/
-inline void getBootSource(std::shared_ptr<AsyncResp> aResp, bool oneTimeEnabled)
+inline void getBootSource(const std::shared_ptr<AsyncResp>& aResp,
+ bool oneTimeEnabled)
{
std::string bootDbusObj =
oneTimeEnabled ? "/xyz/openbmc_project/control/host0/boot/one_time"
@@ -894,7 +893,7 @@ inline void getBootSource(std::shared_ptr<AsyncResp> aResp, bool oneTimeEnabled)
"xyz.openbmc_project.Settings", bootDbusObj,
"org.freedesktop.DBus.Properties", "Get",
"xyz.openbmc_project.Control.Boot.Source", "BootSource");
- getBootMode(std::move(aResp), std::move(bootDbusObj));
+ getBootMode(aResp, bootDbusObj);
}
/**
@@ -1141,8 +1140,8 @@ inline void getPowerRestorePolicy(const std::shared_ptr<AsyncResp>& aResp)
*/
inline void setBootModeOrSource(std::shared_ptr<AsyncResp> aResp,
bool oneTimeEnabled,
- std::optional<std::string> bootSource,
- std::optional<std::string> bootEnable)
+ const std::optional<std::string>& bootSource,
+ const std::optional<std::string>& bootEnable)
{
std::string bootSourceStr =
"xyz.openbmc_project.Control.Boot.Source.Sources.Default";
@@ -1287,8 +1286,7 @@ inline void setBootSourceProperties(const std::shared_ptr<AsyncResp>& aResp,
BMCWEB_LOG_DEBUG << "Got one time: " << *oneTimePtr;
- setBootModeOrSource(aResp, *oneTimePtr, std::move(bootSource),
- std::move(bootEnable));
+ setBootModeOrSource(aResp, *oneTimePtr, bootSource, bootEnable);
},
"xyz.openbmc_project.Settings",
"/xyz/openbmc_project/control/host0/boot/one_time",
@@ -1305,7 +1303,7 @@ inline void setBootSourceProperties(const std::shared_ptr<AsyncResp>& aResp,
* @return None.
*/
inline void setAutomaticRetry(const std::shared_ptr<AsyncResp>& aResp,
- const std::string&& automaticRetryConfig)
+ const std::string& automaticRetryConfig)
{
BMCWEB_LOG_DEBUG << "Set Automatic Retry.";
@@ -2008,8 +2006,7 @@ class Systems : public Node
{
return;
}
- setWDTProperties(asyncResp, std::move(wdtEnable),
- std::move(wdtTimeOutAction));
+ setWDTProperties(asyncResp, wdtEnable, wdtTimeOutAction);
}
if (bootProps)
@@ -2032,13 +2029,13 @@ class Systems : public Node
}
if (automaticRetryConfig)
{
- setAutomaticRetry(asyncResp, std::move(*automaticRetryConfig));
+ setAutomaticRetry(asyncResp, *automaticRetryConfig);
}
}
if (indicatorLed)
{
- setIndicatorLedState(asyncResp, std::move(*indicatorLed));
+ setIndicatorLedState(asyncResp, *indicatorLed);
}
if (powerRestorePolicy)
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 7e6a0b807f..a247ad0d67 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -415,7 +415,7 @@ class UpdateServiceActionsSimpleUpdate : public Node
{
// Must be option 2
// Verify ImageURI has transfer protocol in it
- size_t separator = imageURI.find(":");
+ size_t separator = imageURI.find(':');
if ((separator == std::string::npos) ||
((separator + 1) > imageURI.size()))
{
@@ -451,7 +451,7 @@ class UpdateServiceActionsSimpleUpdate : public Node
}
// Format should be <IP or Hostname>/<file> for imageURI
- size_t separator = imageURI.find("/");
+ size_t separator = imageURI.find('/');
if ((separator == std::string::npos) ||
((separator + 1) > imageURI.size()))
{
@@ -726,7 +726,7 @@ class SoftwareInventoryCollection : public Node
{
// if can't parse fw id then return
std::size_t idPos;
- if ((idPos = obj.first.rfind("/")) == std::string::npos)
+ if ((idPos = obj.first.rfind('/')) == std::string::npos)
{
messages::internalError(asyncResp->res);
BMCWEB_LOG_DEBUG << "Can't parse firmware ID!!";
@@ -913,7 +913,7 @@ class SoftwareInventory : public Node
// swInvPurpose is of format:
// xyz.openbmc_project.Software.Version.VersionPurpose.ABC
// Translate this to "ABC image"
- size_t endDesc = swInvPurpose->rfind(".");
+ size_t endDesc = swInvPurpose->rfind('.');
if (endDesc == std::string::npos)
{
messages::internalError(asyncResp->res);
diff --git a/redfish-core/lib/virtual_media.hpp b/redfish-core/lib/virtual_media.hpp
index f6a56f69a2..a921dcb8ce 100644
--- a/redfish-core/lib/virtual_media.hpp
+++ b/redfish-core/lib/virtual_media.hpp
@@ -160,7 +160,7 @@ static void getVmResourceList(std::shared_ptr<AsyncResp> aResp,
nlohmann::json item;
const std::string& path =
static_cast<const std::string&>(object.first);
- std::size_t lastIndex = path.rfind("/");
+ std::size_t lastIndex = path.rfind('/');
if (lastIndex == std::string::npos)
{
continue;
@@ -203,7 +203,7 @@ static void getVmData(std::shared_ptr<AsyncResp> aResp,
const std::string& path =
static_cast<const std::string&>(item.first);
- std::size_t lastItem = path.rfind("/");
+ std::size_t lastItem = path.rfind('/');
if (lastItem == std::string::npos)
{
continue;
@@ -521,7 +521,7 @@ class VirtualMediaActionInsertMedia : public Node
const std::string& path =
static_cast<const std::string&>(object.first);
- std::size_t lastIndex = path.rfind("/");
+ std::size_t lastIndex = path.rfind('/');
if (lastIndex == std::string::npos)
{
continue;
@@ -903,7 +903,7 @@ class VirtualMediaActionEjectMedia : public Node
const std::string& path =
static_cast<const std::string&>(object.first);
- std::size_t lastIndex = path.rfind("/");
+ std::size_t lastIndex = path.rfind('/');
if (lastIndex == std::string::npos)
{
continue;