diff options
Diffstat (limited to 'src/components/transport_manager/src/transport_manager_impl.cc')
-rw-r--r-- | src/components/transport_manager/src/transport_manager_impl.cc | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc index 9d4f6be316..ddff4f3780 100644 --- a/src/components/transport_manager/src/transport_manager_impl.cc +++ b/src/components/transport_manager/src/transport_manager_impl.cc @@ -711,10 +711,8 @@ void TransportManagerImpl::CreateWebEngineDevice() { ws_device->set_keep_on_disconnect(true); - RaiseEvent(&TransportManagerListener::OnDeviceAdded, web_engine_device_info_); - device_list_.push_back( - std::make_pair(web_socket_ta, web_engine_device_info_)); web_socket_ta->AddDevice(ws_device); + OnDeviceListUpdated(web_socket_ta); #endif // WEBSOCKET_SERVER_TRANSPORT_SUPPORT } @@ -723,7 +721,7 @@ const DeviceInfo& TransportManagerImpl::GetWebEngineDeviceInfo() const { return web_engine_device_info_; } -void TransportManagerImpl::UpdateDeviceList(TransportAdapter* ta) { +bool TransportManagerImpl::UpdateDeviceList(TransportAdapter* ta) { LOG4CXX_TRACE(logger_, "enter. TransportAdapter: " << ta); std::set<DeviceInfo> old_devices; std::set<DeviceInfo> new_devices; @@ -775,7 +773,9 @@ void TransportManagerImpl::UpdateDeviceList(TransportAdapter* ta) { ++it) { RaiseEvent(&TransportManagerListener::OnDeviceRemoved, *it); } + LOG4CXX_TRACE(logger_, "exit"); + return added_devices.size() + removed_devices.size() > 0; } void TransportManagerImpl::PostMessage( @@ -1067,7 +1067,12 @@ void TransportManagerImpl::OnDeviceListUpdated(TransportAdapter* ta) { LOG4CXX_ERROR(logger_, "Device list update failed."); return; } - UpdateDeviceList(ta); + + if (!UpdateDeviceList(ta)) { + LOG4CXX_DEBUG(logger_, "Device list was not changed"); + return; + } + std::vector<DeviceInfo> device_infos; device_list_lock_.AcquireForReading(); for (DeviceInfoList::const_iterator it = device_list_.begin(); |