diff options
Diffstat (limited to 'AudioManagerDaemon/src')
-rw-r--r-- | AudioManagerDaemon/src/CAmRoutingReceiver.cpp | 17 | ||||
-rw-r--r-- | AudioManagerDaemon/src/CAmRoutingSender.cpp | 1 |
2 files changed, 17 insertions, 1 deletions
diff --git a/AudioManagerDaemon/src/CAmRoutingReceiver.cpp b/AudioManagerDaemon/src/CAmRoutingReceiver.cpp index 7e14e33..f0821a9 100644 --- a/AudioManagerDaemon/src/CAmRoutingReceiver.cpp +++ b/AudioManagerDaemon/src/CAmRoutingReceiver.cpp @@ -92,6 +92,10 @@ void CAmRoutingReceiver::ackDisconnect(const am_Handle_s handle, const am_connec if (error == E_OK) { mpDatabaseHandler->removeConnection(connectionID); + if (mpRoutingSender->removeConnectionLookup(connectionID)!=E_OK) + { + logError("CAmRoutingReceiver::ackDisconnect could not remove connectionId from lookup"); + } } mpControlSender->cbAckDisconnect(handle, error); } @@ -378,4 +382,17 @@ void am::CAmRoutingReceiver::waitOnRundown(bool rundown) { mWaitRundown = rundown; } + +am_Error_e CAmRoutingSender::removeConnectionLookup(const am_connectionID_t connectionID) +{ + ConnectionInterfaceMap::iterator iter = mMapConnectionInterface.begin(); + iter = mMapConnectionInterface.find(connectionID); + if (iter != mMapConnectionInterface.end()) + { + mMapConnectionInterface.erase(iter); + return (E_OK); + } + return (E_UNKNOWN); +} + } diff --git a/AudioManagerDaemon/src/CAmRoutingSender.cpp b/AudioManagerDaemon/src/CAmRoutingSender.cpp index 05078a9..f45f918 100644 --- a/AudioManagerDaemon/src/CAmRoutingSender.cpp +++ b/AudioManagerDaemon/src/CAmRoutingSender.cpp @@ -214,7 +214,6 @@ am_Error_e CAmRoutingSender::asyncDisconnect(am_Handle_s& handle, const am_conne handle = createHandle(handleData, H_DISCONNECT); mMapHandleInterface.insert(std::make_pair(+ handle.handle, iter->second)); am_Error_e returnVal = iter->second->asyncDisconnect(handle, connectionID); - mMapConnectionInterface.erase(iter); return (returnVal); } |