Details
-
Bug
-
Resolution: Done
-
P2: Important
-
6.2
-
None
-
-
8
-
0dd124498e (qt/qtconnectivity/dev) 0dd124498e (qt/tqtc-qtconnectivity/dev) dae4eabec5 (qt/qtconnectivity/6.2) 096ae8fdd4 (qt/qtconnectivity/6.3) dae4eabec5 (qt/tqtc-qtconnectivity/6.2) 096ae8fdd4 (qt/tqtc-qtconnectivity/6.3)
-
Team One Foundation Sprint 50, Team One Foundation Sprint 51
Description
Service scan with QBluetoothServiceDiscoveryAgent first performs a device scan, and once the device scan is completed, a service (SDP) scan is triggered automatically.
The service scan finds the right services but for some reason the setUuidFilter() fails to recognize the "pingpong" example application service, it filters it out and the example never connects.
It is uncertain which is at fault - Linux or Windows - because both work against Android server.
The problem happens in
QBluetoothServiceDiscoveryAgentPrivate::processFoundService
...
// this is always false
bool serviceNameMatched = uuidFilter.contains(info.serviceUuid());
When checking the contents of the uuidFilter and the info.serviceUuid(), they indeed mismatch by some kind of endianess or other manipulation:
info.serviceUuid: "{e8e10f95-1a70-4b27-c9e9-64020102cf9c}" uuidFilter: QList("{e8e10f95-1a70-4b27-9ccf-02010264e9c9}")
=> the bytewise contents seem same but ordering is different.
Moving the whole check makes the pingpong application work Windows-client => Linux-server.