summaryrefslogtreecommitdiffstats
path: root/message_handler.cpp
diff options
context:
space:
mode:
authorVernon Mauery <vernon.mauery@linux.intel.com>2018-10-15 12:55:34 -0700
committerVernon Mauery <vernon.mauery@linux.intel.com>2018-11-06 15:42:37 -0800
commitae1fda44032a361874417c4006ddcbd951974399 (patch)
treec179b19c47cdb3ef0114b89385370fc6a144614b /message_handler.cpp
parent9e801a2b5b36acd307606af5eafdb885dfe8daee (diff)
downloadphosphor-net-ipmid-ae1fda44032a361874417c4006ddcbd951974399.tar.gz
phosphor-net-ipmid-ae1fda44032a361874417c4006ddcbd951974399.zip
netipmid: use std::shared_ptr instead of weak_ptr/lock
All of the instances of getSession and startSession were assigning the result to a local shared_ptr via lock on the weak_ptr. It doesn't make sense to demote the shared_ptr (from the sessionsMap) to a weak_ptr via the return, only to promote to a shared_ptr again via lock. Tested-by: running ipmitool -H a.b.c.d -P 0penBmc -I lanplus mc info Sessions start and stop, same as before. Change-Id: Ic10779285891d73ee51115f16ed0000b38d1c52a Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
Diffstat (limited to 'message_handler.cpp')
-rw-r--r--message_handler.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/message_handler.cpp b/message_handler.cpp
index 62855a9..c5d5d4e 100644
--- a/message_handler.cpp
+++ b/message_handler.cpp
@@ -35,9 +35,8 @@ std::unique_ptr<Message> Handler::receive()
std::unique_ptr<Message> message;
std::tie(message, sessionHeader) = parser::unflatten(packet);
- auto session = (std::get<session::Manager&>(singletonPool)
- .getSession(message->bmcSessionID))
- .lock();
+ auto session = std::get<session::Manager&>(singletonPool)
+ .getSession(message->bmcSessionID);
sessionID = message->bmcSessionID;
message->rcSessionID = session->getRCSessionID();
@@ -166,8 +165,7 @@ uint32_t Handler::getCommand(Message& message)
void Handler::send(Message& outMessage)
{
auto session =
- (std::get<session::Manager&>(singletonPool).getSession(sessionID))
- .lock();
+ std::get<session::Manager&>(singletonPool).getSession(sessionID);
// Flatten the packet
auto packet = parser::flatten(outMessage, sessionHeader, *session);
@@ -183,8 +181,7 @@ void Handler::send(Message& outMessage)
void Handler::setChannelInSession() const
{
auto session =
- (std::get<session::Manager&>(singletonPool).getSession(sessionID))
- .lock();
+ std::get<session::Manager&>(singletonPool).getSession(sessionID);
session->channelPtr = channel;
}
@@ -194,8 +191,7 @@ void Handler::sendSOLPayload(const std::vector<uint8_t>& input)
Message outMessage;
auto session =
- (std::get<session::Manager&>(singletonPool).getSession(sessionID))
- .lock();
+ std::get<session::Manager&>(singletonPool).getSession(sessionID);
outMessage.payloadType = PayloadType::SOL;
outMessage.payload = input;
@@ -213,8 +209,7 @@ void Handler::sendUnsolicitedIPMIPayload(uint8_t netfn, uint8_t cmd,
Message outMessage;
auto session =
- (std::get<session::Manager&>(singletonPool).getSession(sessionID))
- .lock();
+ std::get<session::Manager&>(singletonPool).getSession(sessionID);
outMessage.payloadType = PayloadType::IPMI;
outMessage.isPacketEncrypted = session->isCryptAlgoEnabled();
OpenPOWER on IntegriCloud