From 6198f70308ee1da16274aada6781824a691566e1 Mon Sep 17 00:00:00 2001 From: Juha Vuolle Date: Fri, 18 Feb 2022 13:28:13 +0200 Subject: Use the service's socket protocol info on Bluez bluetooth socket The QBluetoothSocket::connectToService(QBluetoothServiceInfo) should extract the socket protocol info (rfcomm/l2cap) from the provided service info. Fixes: QTBUG-101018 Change-Id: Ibbf4daef28a2661e4699759d6f834779d27ac750 Reviewed-by: Ivan Solovev Reviewed-by: Alex Blasche (cherry picked from commit 29b51e28a961a09fb25d668da5a5e3c9d89390b9) Reviewed-by: Qt Cherry-pick Bot --- src/bluetooth/qbluetoothsocket_bluezdbus.cpp | 4 ++++ tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bluetooth/qbluetoothsocket_bluezdbus.cpp b/src/bluetooth/qbluetoothsocket_bluezdbus.cpp index 3ce7e8b6..1b644a6d 100644 --- a/src/bluetooth/qbluetoothsocket_bluezdbus.cpp +++ b/src/bluetooth/qbluetoothsocket_bluezdbus.cpp @@ -284,6 +284,10 @@ void QBluetoothSocketPrivateBluezDBus::connectToService( return; } + if (service.socketProtocol() != QBluetoothServiceInfo::Protocol::UnknownProtocol) + socketType = service.socketProtocol(); + qCDebug(QT_BT_BLUEZ) << "Socket protocol used:" << socketType; + connectToService(service.device().address(), targetService, openMode); } diff --git a/tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp b/tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp index 05bc1a0f..a7b5ef1f 100644 --- a/tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp +++ b/tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp @@ -142,7 +142,7 @@ void tst_QBluetoothSocket::initTestCase() qDebug() << "Starting discovery"; sda->setUuidFilter(QBluetoothUuid(QString(TEST_SERVICE_UUID))); - sda->start(QBluetoothServiceDiscoveryAgent::MinimalDiscovery); + sda->start(QBluetoothServiceDiscoveryAgent::FullDiscovery); for (int connectTime = MaxConnectTime; !done_discovery && connectTime > 0; connectTime -= 1000) QTest::qWait(1000); -- cgit v1.2.1