diff options
author | Alex Blasche <alexander.blasche@theqtcompany.com> | 2015-03-19 09:49:12 +0100 |
---|---|---|
committer | Alex Blasche <alexander.blasche@theqtcompany.com> | 2015-03-19 14:49:15 +0000 |
commit | d70cba381938a2043b66211dcca07c012f3fa34a (patch) | |
tree | 3fab444a2c5f81cae4f50cab3a0c1eaa4bac4baa | |
parent | 341223e26d611b41c4b533c1b3b0a5d428c83331 (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.mm | 13 |
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(); |