summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/components/connection_handler/src/connection_handler_impl.cc20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/components/connection_handler/src/connection_handler_impl.cc b/src/components/connection_handler/src/connection_handler_impl.cc
index d4364af8df..827d6fa17e 100644
--- a/src/components/connection_handler/src/connection_handler_impl.cc
+++ b/src/components/connection_handler/src/connection_handler_impl.cc
@@ -465,10 +465,21 @@ void ConnectionHandlerImpl::OnSessionStartedCallback(
return;
}
#endif // ENABLE_SECURITY
- sync_primitives::AutoReadLock lock(connection_list_lock_);
- ConnectionList::iterator it =
- connection_list_.find(primary_connection_handle);
- if (connection_list_.end() == it) {
+
+ auto find_connection =
+ [this](const transport_manager::ConnectionUID& primary_connection_handle)
+ -> Connection* {
+ sync_primitives::AutoReadLock lock(connection_list_lock_);
+ auto it = connection_list_.find(primary_connection_handle);
+ if (it != connection_list_.end()) {
+ return it->second;
+ }
+ return nullptr;
+ };
+
+ Connection* connection = find_connection(primary_connection_handle);
+
+ if (!connection) {
SDL_LOG_ERROR("Unknown connection!");
protocol_handler_->NotifySessionStarted(
context,
@@ -477,7 +488,6 @@ void ConnectionHandlerImpl::OnSessionStartedCallback(
return;
}
- Connection* connection = it->second;
context.is_new_service_ =
!connection->SessionServiceExists(session_id, service_type);