diff options
author | Alex Blasche <alexander.blasche@digia.com> | 2014-01-20 10:48:30 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-20 12:19:36 +0100 |
commit | 90e2f8bc28f103080f25612fbc07a0652705a171 (patch) | |
tree | 6ef8681ff548bcc93e5234c417c9146a597dc470 /src/bluetooth | |
parent | b4a5e7d3c3efddff23022acdb42485ad534553eb (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.cpp | 2 | ||||
-rw-r--r-- | src/bluetooth/qbluetoothservicediscoveryagent.cpp | 3 |
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(); |