diff options
author | Vernon Mauery <vernon.mauery@linux.intel.com> | 2018-10-15 12:55:34 -0700 |
---|---|---|
committer | Vernon Mauery <vernon.mauery@linux.intel.com> | 2018-11-06 15:42:37 -0800 |
commit | ae1fda44032a361874417c4006ddcbd951974399 (patch) | |
tree | c179b19c47cdb3ef0114b89385370fc6a144614b /message_handler.cpp | |
parent | 9e801a2b5b36acd307606af5eafdb885dfe8daee (diff) | |
download | phosphor-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.cpp | 17 |
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(); |