summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@theqtcompany.com>2015-03-19 09:49:12 +0100
committerAlex Blasche <alexander.blasche@theqtcompany.com>2015-03-19 14:49:15 +0000
commitd70cba381938a2043b66211dcca07c012f3fa34a (patch)
tree3fab444a2c5f81cae4f50cab3a0c1eaa4bac4baa
parent341223e26d611b41c4b533c1b3b0a5d428c83331 (diff)
OSX: Ensure service discovery is stopped when socket disconnects
Task-number: QTBUG-44930 Change-Id: Iffdbe5d85a0c8b0168d6a196ffbe848e07535950 Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
-rw-r--r--src/bluetooth/qbluetoothsocket_osx.mm13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/bluetooth/qbluetoothsocket_osx.mm b/src/bluetooth/qbluetoothsocket_osx.mm
index 62883247..808b8e5a 100644
--- a/src/bluetooth/qbluetoothsocket_osx.mm
+++ b/src/bluetooth/qbluetoothsocket_osx.mm
@@ -596,6 +596,12 @@ void QBluetoothSocket::abort()
if (state() == UnconnectedState)
return;
+ if (state() == ServiceLookupState && d_ptr->discoveryAgent) {
+ d_ptr->discoveryAgent->disconnect();
+ d_ptr->discoveryAgent->stop();
+ d_ptr->discoveryAgent.reset();
+ }
+
d_ptr->abort();
setOpenMode(NotOpen);
@@ -676,6 +682,13 @@ void QBluetoothSocket::close()
return;
setOpenMode(NotOpen);
+
+ if (state() == ServiceLookupState && d_ptr->discoveryAgent) {
+ d_ptr->discoveryAgent->disconnect();
+ d_ptr->discoveryAgent->stop();
+ d_ptr->discoveryAgent.reset();
+ }
+
setSocketState(ClosingState);
d_ptr->close();