summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2022-02-08 13:22:29 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-02-12 19:21:22 +0000
commit2eede8a018ef1a7b1ce18656abbaa50ee95426c5 (patch)
tree7fc265dfa462f0722d3bdd2074bc0aad4f80a296
parent475734595b4105e0972a58ef45d32d68b1d4125f (diff)
Avoid multiple client sockets in pingpong bluetooth example
This commit guards against creating multiple client sockets if multiple services are found. In addition the service scanning is stopped when a service has been found and we start connecting a bluetooth socket. Fixes: QTBUG-100289 Change-Id: Iac2e7eaca17a186ac2d2f62e338be16911f08032 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 788c4980e67386d2407c4c7bc7182430fc9054c3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--examples/bluetooth/pingpong/pingpong.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/examples/bluetooth/pingpong/pingpong.cpp b/examples/bluetooth/pingpong/pingpong.cpp
index 43575344..aaa625f3 100644
--- a/examples/bluetooth/pingpong/pingpong.cpp
+++ b/examples/bluetooth/pingpong/pingpong.cpp
@@ -343,7 +343,12 @@ void PingPong::done()
void PingPong::addService(const QBluetoothServiceInfo &service)
{
- setMessage("Service found. Setting parameters...");
+ if (m_serviceFound)
+ return;
+ m_serviceFound = true;
+
+ setMessage("Service found. Stopping discovery and creating connection...");
+ discoveryAgent->stop();
//! [Connecting the socket]
socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
socket->connectToService(service);
@@ -352,7 +357,6 @@ void PingPong::addService(const QBluetoothServiceInfo &service)
connect(socket, &QBluetoothSocket::connected, this, &PingPong::serverConnected);
connect(socket, &QBluetoothSocket::disconnected, this, &PingPong::serverDisconnected);
//! [Connecting the socket]
- m_serviceFound = true;
}
void PingPong::serviceScanError(QBluetoothServiceDiscoveryAgent::Error error)