diff options
-rw-r--r-- | storageaddsel.cpp | 16 | ||||
-rw-r--r-- | utils.cpp | 22 |
2 files changed, 16 insertions, 22 deletions
diff --git a/storageaddsel.cpp b/storageaddsel.cpp index 41f813c..4ed22fc 100644 --- a/storageaddsel.cpp +++ b/storageaddsel.cpp @@ -151,11 +151,9 @@ Entry::Level create_esel_severity(const uint8_t* buffer) int create_esel_association(const uint8_t* buffer, std::string& inventoryPath) { - uint8_t sensor; - auto p = reinterpret_cast<const ipmi_add_sel_request_t*>(buffer); - sensor = p->sensornumber; + uint8_t sensor = p->sensornumber; inventoryPath = {}; @@ -163,13 +161,13 @@ int create_esel_association(const uint8_t* buffer, std::string& inventoryPath) * Search the sensor number to inventory path mapping to figure out the * inventory associated with the ESEL. */ - for (auto const& iter : invSensors) + auto found = std::find_if(invSensors.begin(), invSensors.end(), + [&sensor](const auto& iter) { + return (iter.second.sensorID == sensor); + }); + if (found != invSensors.end()) { - if (iter.second.sensorID == sensor) - { - inventoryPath = iter.first; - break; - } + inventoryPath = found->first; } return 0; @@ -4,6 +4,7 @@ #include <dirent.h> #include <net/if.h> +#include <algorithm> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> #include <xyz/openbmc_project/Common/error.hpp> @@ -74,25 +75,20 @@ DbusObjectInfo getDbusObject(sdbusplus::bus::bus& bus, } // else search the match string in the object path - auto objectFound = false; - for (auto& object : objectTree) - { - if (object.first.find(match) != std::string::npos) - { - objectFound = true; - objectInfo = make_pair(object.first, - std::move(object.second.begin()->first)); - break; - } - } + auto found = std::find_if( + objectTree.begin(), objectTree.end(), [&match](const auto& object) { + return (object.first.find(match) != std::string::npos); + }); - if (!objectFound) + if (found == objectTree.end()) { log<level::ERR>("Failed to find object which matches", entry("MATCH=%s", match.c_str())); elog<InternalFailure>(); + // elog<> throws an exception. } - return objectInfo; + + return make_pair(found->first, std::move(found->second.begin()->first)); } DbusObjectInfo getIPObject(sdbusplus::bus::bus& bus, |