summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@qt.io>2023-01-13 18:28:53 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-01-17 13:49:34 +0000
commit1abcd7501220d4f3e248426a1ac1ce2920f7ef9c (patch)
treef88b36ed7e5d8caf8e232e272868cdc6e922b9e1
parentbcc8988b4be771d5bb38811591830732a4a316f9 (diff)
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.cpp3
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();
}