diff options
author | Patrick Venture <venture@google.com> | 2019-05-06 10:30:55 -0700 |
---|---|---|
committer | Patrick Venture <venture@google.com> | 2019-05-06 10:32:18 -0700 |
commit | 17186aef0f34373c0da0832de6525e67d1bc1b09 (patch) | |
tree | 8f66a10bbb5f4924aee4793c6e11101e5d3708a1 /src/ipmiblob/blob_handler.cpp | |
parent | 16a99a62d1946ef65175b34614e6037ce55a7d11 (diff) | |
download | ipmi-blob-tool-17186aef0f34373c0da0832de6525e67d1bc1b09.tar.gz ipmi-blob-tool-17186aef0f34373c0da0832de6525e67d1bc1b09.zip |
squash getStat variations into one underlying method
Squash the getStat(name) and getStat(session) into one underlying
method.
Change-Id: I6c00b9f4128a64e3d1a918c8a9d1eaf252de32bc
Signed-off-by: Patrick Venture <venture@google.com>
Diffstat (limited to 'src/ipmiblob/blob_handler.cpp')
-rw-r--r-- | src/ipmiblob/blob_handler.cpp | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/src/ipmiblob/blob_handler.cpp b/src/ipmiblob/blob_handler.cpp index 0d31b3f..8ec3f9c 100644 --- a/src/ipmiblob/blob_handler.cpp +++ b/src/ipmiblob/blob_handler.cpp @@ -212,17 +212,15 @@ std::vector<std::string> BlobHandler::getBlobList() return list; } -StatResponse BlobHandler::getStat(const std::string& id) +StatResponse BlobHandler::statGeneric(BlobOEMCommands command, + const std::vector<std::uint8_t>& request) { StatResponse meta; - std::vector<std::uint8_t> name, resp; - - std::copy(id.begin(), id.end(), std::back_inserter(name)); - name.push_back(0x00); /* need to add nul-terminator. */ + std::vector<std::uint8_t> resp; try { - resp = sendIpmiPayload(BlobOEMCommands::bmcBlobStat, name); + resp = sendIpmiPayload(command, request); } catch (const BlobException& b) { @@ -242,35 +240,23 @@ StatResponse BlobHandler::getStat(const std::string& id) return meta; } +StatResponse BlobHandler::getStat(const std::string& id) +{ + std::vector<std::uint8_t> name; + std::copy(id.begin(), id.end(), std::back_inserter(name)); + name.push_back(0x00); /* need to add nul-terminator. */ + + return statGeneric(BlobOEMCommands::bmcBlobStat, name); +} + StatResponse BlobHandler::getStat(std::uint16_t session) { - StatResponse meta; - std::vector<std::uint8_t> resp; std::vector<std::uint8_t> request; auto addrSession = reinterpret_cast<const std::uint8_t*>(&session); std::copy(addrSession, addrSession + sizeof(session), std::back_inserter(request)); - try - { - resp = sendIpmiPayload(BlobOEMCommands::bmcBlobSessionStat, request); - } - catch (const BlobException& b) - { - throw; - } - - std::memcpy(&meta.blob_state, &resp[0], sizeof(meta.blob_state)); - std::memcpy(&meta.size, &resp[sizeof(meta.blob_state)], sizeof(meta.size)); - int offset = sizeof(meta.blob_state) + sizeof(meta.size); - std::uint8_t len = resp[offset]; - if (len > 0) - { - std::copy(&resp[offset + 1], &resp[resp.size()], - std::back_inserter(meta.metadata)); - } - - return meta; + return statGeneric(BlobOEMCommands::bmcBlobSessionStat, request); } std::uint16_t BlobHandler::openBlob(const std::string& id, |