summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordcherniev <dcherniev@github.com>2016-11-29 17:24:00 +0200
committerdcherniev <dcherniev@github.com>2016-11-29 17:24:00 +0200
commitc0ae93ef89de99ba5e3f7b99fd6ba471c30f160c (patch)
tree6702075e4a52e7fd54e099a9de120050456e7f0c
parent34fab90226b663bdeb0316b1a42fc4ed22bfacd0 (diff)
downloadsdl_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
-rw-r--r--src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc2
-rw-r--r--src/components/transport_manager/src/tcp/tcp_connection_factory.cc2
-rw-r--r--src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc1
-rw-r--r--src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc8
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);
+ }
}
}