diff options
author | Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> | 2019-01-22 15:55:41 +0530 |
---|---|---|
committer | Tom Joseph <tomjoseph@in.ibm.com> | 2019-01-28 17:18:29 +0000 |
commit | 5f1dd316fca522a8b32547ef2466714c62e1d7d6 (patch) | |
tree | 78a68fccd2137ba0e961441a60160f68f0cfa816 | |
parent | d8e92fe158bf14e951c18885437d56d66ae3aca4 (diff) | |
download | phosphor-net-ipmid-5f1dd316fca522a8b32547ef2466714c62e1d7d6.tar.gz phosphor-net-ipmid-5f1dd316fca522a8b32547ef2466714c62e1d7d6.zip |
Fix: Get Payload info for non active payload
Return 0 as session id, for non active payload instance instead
of failure error code. This is as per IPMI specification
Get Payload Instance Info command.
Unit-test:
1. Verified the reponse of
ipmitool -I lanplus -H 127.0.0.1 -U root -P 0penBmc raw 6 0x4B 1 1
with session id 0, when no SOL is session is active, and with proper
session id, when SOL session is active
Change-Id: I41e5378606f8f4d4c15f1bb07fd635098b837f4a
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
-rw-r--r-- | command/payload_cmds.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/command/payload_cmds.cpp b/command/payload_cmds.cpp index 2e8ac6f..33b6914 100644 --- a/command/payload_cmds.cpp +++ b/command/payload_cmds.cpp @@ -213,16 +213,18 @@ std::vector<uint8_t> getPayloadInfo(const std::vector<uint8_t>& inPayload, auto status = std::get<sol::Manager&>(singletonPool) .isPayloadActive(request->payloadInstance); - if (!status) + if (status) { - response->completionCode = IPMI_CC_RESPONSE_ERROR; - return outPayload; + auto& context = std::get<sol::Manager&>(singletonPool) + .getContext(request->payloadInstance); + response->sessionID = context.sessionID; } - - auto& context = std::get<sol::Manager&>(singletonPool) - .getContext(request->payloadInstance); - response->sessionID = context.sessionID; - + else + { + // No active payload - return session id as 0 + response->sessionID = 0; + } + response->completionCode = IPMI_CC_OK; return outPayload; } |