summaryrefslogtreecommitdiffstats
path: root/src/bluetooth
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-01-20 10:48:30 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-20 12:19:36 +0100
commit90e2f8bc28f103080f25612fbc07a0652705a171 (patch)
tree6ef8681ff548bcc93e5234c417c9146a597dc470 /src/bluetooth
parentb4a5e7d3c3efddff23022acdb42485ad534553eb (diff)
Don't stop Bt discoveries while we have InvalidBluetoothAdapterError
This change complements 23a3863de809a4051ae6db4942145cb0cb624d6c. The discovery process should not stop when the passed local adapter address is invalid. While the first change ensures that start() cannot be called stop() was still callable. The platform specific implementations potentially set lastError to something else und thus would permit a call to start() later on. This may lead to invalid internal states. Change-Id: Ibfd87374bf712614fad90172894ea2e009ba198a Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src/bluetooth')
-rw-r--r--src/bluetooth/qbluetoothdevicediscoveryagent.cpp2
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent.cpp3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/bluetooth/qbluetoothdevicediscoveryagent.cpp b/src/bluetooth/qbluetoothdevicediscoveryagent.cpp
index 7df7bdca..eeac8f11 100644
--- a/src/bluetooth/qbluetoothdevicediscoveryagent.cpp
+++ b/src/bluetooth/qbluetoothdevicediscoveryagent.cpp
@@ -228,7 +228,7 @@ void QBluetoothDeviceDiscoveryAgent::start()
void QBluetoothDeviceDiscoveryAgent::stop()
{
Q_D(QBluetoothDeviceDiscoveryAgent);
- if (isActive())
+ if (isActive() && d->lastError != InvalidBluetoothAdapterError)
d->stop();
}
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent.cpp b/src/bluetooth/qbluetoothservicediscoveryagent.cpp
index 23600d58..4ebe24b4 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent.cpp
@@ -281,6 +281,9 @@ void QBluetoothServiceDiscoveryAgent::stop()
{
Q_D(QBluetoothServiceDiscoveryAgent);
+ if (d->error == InvalidBluetoothAdapterError)
+ return;
+
switch (d->discoveryState()) {
case QBluetoothServiceDiscoveryAgentPrivate::DeviceDiscovery:
d->stopDeviceDiscovery();