diff options
author | dcherniev <dcherniev@github.com> | 2016-11-29 17:24:00 +0200 |
---|---|---|
committer | dcherniev <dcherniev@github.com> | 2016-11-29 17:24:00 +0200 |
commit | c0ae93ef89de99ba5e3f7b99fd6ba471c30f160c (patch) | |
tree | 6702075e4a52e7fd54e099a9de120050456e7f0c | |
parent | 34fab90226b663bdeb0316b1a42fc4ed22bfacd0 (diff) | |
download | sdl_core-c0ae93ef89de99ba5e3f7b99fd6ba471c30f160c.tar.gz |
Fix issue of TransportManager UT
Moved initialization of info.connection field right after connection was created.
Added check if DisconnectDevice method would try to send Disconnect to invalid connection.
Related to: APPLINK-30284
4 files changed, 9 insertions, 4 deletions
diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc b/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc index bb27493701..8b31ca8145 100644 --- a/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc +++ b/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc @@ -59,6 +59,8 @@ TransportAdapter::Error BluetoothConnectionFactory::CreateConnection( << ", app_handle: " << &app_handle); BluetoothSocketConnection* connection( new BluetoothSocketConnection(device_uid, app_handle, controller_)); + controller_->ConnectionCreated(connection, device_uid, app_handle); + TransportAdapter::Error error = connection->Start(); if (TransportAdapter::OK != error) { LOG4CXX_ERROR(logger_, "connection::Start() failed"); diff --git a/src/components/transport_manager/src/tcp/tcp_connection_factory.cc b/src/components/transport_manager/src/tcp/tcp_connection_factory.cc index 5b1e9af6cb..8a0751417f 100644 --- a/src/components/transport_manager/src/tcp/tcp_connection_factory.cc +++ b/src/components/transport_manager/src/tcp/tcp_connection_factory.cc @@ -57,6 +57,8 @@ TransportAdapter::Error TcpConnectionFactory::CreateConnection( TcpServerOiginatedSocketConnection* connection( new TcpServerOiginatedSocketConnection( device_uid, app_handle, controller_)); + controller_->ConnectionCreated(connection, device_uid, app_handle); + if (connection->Start() == TransportAdapter::OK) { LOG4CXX_DEBUG(logger_, "TCP connection initialised"); return TransportAdapter::OK; diff --git a/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc b/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc index 5e9f3d941d..63cfb3ea51 100644 --- a/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc +++ b/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc @@ -162,7 +162,6 @@ TransportAdapter::Error ThreadedSocketConnection::Disconnect() { void ThreadedSocketConnection::threadMain() { LOG4CXX_AUTO_TRACE(logger_); - controller_->ConnectionCreated(this, device_handle(), application_handle()); ConnectError* connect_error = NULL; if (!Establish(&connect_error)) { LOG4CXX_ERROR(logger_, "Connection Establish failed"); diff --git a/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc b/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc index f0fddfb4f5..f1c047fe58 100644 --- a/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc +++ b/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc @@ -281,9 +281,11 @@ TransportAdapter::Error TransportAdapterImpl::DisconnectDevice( j != to_disconnect.end(); ++j) { ConnectionInfo info = *j; - if (OK != info.connection->Disconnect()) { - error = FAIL; - LOG4CXX_ERROR(logger_, "Error on disconnect " << error); + if (info.connection) { + if (OK != info.connection->Disconnect()) { + error = FAIL; + LOG4CXX_ERROR(logger_, "Error on disconnect " << error); + } } } |