summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>2019-01-22 15:55:41 +0530
committerTom Joseph <tomjoseph@in.ibm.com>2019-01-28 17:18:29 +0000
commit5f1dd316fca522a8b32547ef2466714c62e1d7d6 (patch)
tree78a68fccd2137ba0e961441a60160f68f0cfa816
parentd8e92fe158bf14e951c18885437d56d66ae3aca4 (diff)
downloadphosphor-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.cpp18
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;
}
OpenPOWER on IntegriCloud