diff options
author | Juha Vuolle <juha.vuolle@qt.io> | 2023-01-13 18:28:53 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-01-17 13:49:34 +0000 |
commit | 1abcd7501220d4f3e248426a1ac1ce2920f7ef9c (patch) | |
tree | f88b36ed7e5d8caf8e232e272868cdc6e922b9e1 | |
parent | bcc8988b4be771d5bb38811591830732a4a316f9 (diff) | |
download | qtconnectivity-1abcd7501220d4f3e248426a1ac1ce2920f7ef9c.tar.gz |
Don't clear the remoteDevice address in resetController()
The Bluez DBus peripheral role support cleared the remoteDevice so that
the QLowEnergyController::remoteAddress() will return empty after
disconnection.
However the resetController() is also called in client role
connectToDeviceHelper(), and by reseting the remoteDevice
address there, the controller won't find the remote device path and
connect will fail.
Instead clear the remoteDevice address in places specific to the
peripheral role.
Amends: e7499c2cca615eaff3bd4c9ffe5f72d7112055cf
Change-Id: I53a0de157873e95b9e832f67a24d902277f233a1
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
(cherry picked from commit dcb4ef0d3b037a25620f8ecdbdb0d335cd466285)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/bluetooth/qlowenergycontroller_bluezdbus.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/bluetooth/qlowenergycontroller_bluezdbus.cpp b/src/bluetooth/qlowenergycontroller_bluezdbus.cpp index 8d78b376..a00e4383 100644 --- a/src/bluetooth/qlowenergycontroller_bluezdbus.cpp +++ b/src/bluetooth/qlowenergycontroller_bluezdbus.cpp @@ -266,7 +266,6 @@ void QLowEnergyControllerPrivateBluezDBus::resetController() peripheralConnectionManager->reset(); remoteName.clear(); - remoteDevice.clear(); remoteMtu = -1; dbusServices.clear(); @@ -421,6 +420,7 @@ void QLowEnergyControllerPrivateBluezDBus::disconnectFromDevice() Q_Q(QLowEnergyController); peripheralConnectionManager->disconnectDevices(); resetController(); + remoteDevice.clear(); const auto emitDisconnected = (state == QLowEnergyController::ConnectedState); setState(QLowEnergyController::UnconnectedState); if (emitDisconnected) @@ -1482,6 +1482,7 @@ void QLowEnergyControllerPrivateBluezDBus::handlePeripheralConnectivityChanged(b setState(QLowEnergyController::ConnectedState); } else { resetController(); + remoteDevice.clear(); setState(QLowEnergyController::UnconnectedState); emit q->disconnected(); } |