This permits the API user to determine the security parameters for the
connect attempt to the remote SPP service.
Task-number: QTBUG-46377
Change-Id: I1ed5ea0f5a32aa08dcedc46a34b0377654e420b2
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
[ChangeLog][QtBluetooth][Platform Specific Changes] Removed
support for Blackberry 10.
Change-Id: I431c4f34bb10aa3668542df7a8b3403b61bf4705
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
The list of internally discovered devices was already cleared. It should
not be referenced anymore. Furthermore the QBluetoothSocket is
killed while its internal QBluetoothServiceDiscoveryAgent is still
running. This change stops the agent as well and thereby
prevents more QBluetoothSocket slots froms being invoked and a more
controlled termination of QBluetoothServiceDiscoveryAgent.
[ChangeLog][QtBluetooth][Android] Fixed crash in
QBluetoothServiceDiscoveryAgent on Bluez 5 when using single device
discovery. Single device discovery is used during
QBluetoothSocket::connectToService().
Task-number: QTBUG-44930
Change-Id: Ib3129c492151a3fe12b0c451cf5ffdddc62d001c
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: I3822a6484e8f7a420330de1cb1aeb0c3d1cf41b7
Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
The disconnected() and stateChanged() signals are delayed which
may easily overlooked by API users. This change specifically points out
this behavior difference.
Change-Id: I3a9e9c656da50c9efe455cd2dbf903a2849e36da
Task-number: QTBUG-41770
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Implement QBluetoothSocket using IOBluetooth framework on OS X
(will implement Qt's API as close as possible with a given Apple's API).
Update 0: add (empty for now) delegate classes (L2CAP/RFCOMM).
Update 1: add service discovery (called doDeviceDiscovery though).
Update 2: implement the public class' logic (QBluetoothSocket, connectToService).
Update 3: more public logic implemented (since it's easy :) )
Update 4: L2CAP delegate - initial logic.
Update 5: connectToService - L2CAP "socket".
Update 6: fix pivate header files.
Update 7: fix dependency after the previous patch was merged.
Update 8: writeData - initial version for L2CAP.
Update 9: since RFCOM/L2CAP delegates have the same interface,
no need in duplicating the same class - add a "generic"
ChannelDelegate instead.
Update 10: more RFCOMM logic.
Update 11: function to build a service description from
QBluetoothServiceInfo (to be registered on SDP server).
Update 12: QBluetoothSocket::close/abort.
Update 13: Create a dictioinary out of QBluetoothServiceInfo to register a service.
Update 14: Add service registration.
Update 15: Convert attributes (sequences and 'scalars') from QBluetoothServiceInfor
into NSDictionary.
Update 16: Update QBluetoothServiceInfo with a real PSM/ChannelID
after a service was registered.
Update 17: Move a private class (bluetooth socket) into the separate private
header file (to make it visible for bluetooth_server_osx)
Update 18: Add an interface to create a bluetooth socket (private class)
from a channel, reported by a notification (found by a listening
server).
Update 19: Fix an invalid assert - any state (Inactive/ServiceDiscovery/DeviceDiscovery)
is possible, not only Inactive.
Implement the missing 'readData' and 'writeData' for RFCOMM.
Set SDP query as non-active after query finished.
Temporary (!) workaround - can not invokeMethod on a private socket (d_ptr).
Update 20: When creating a socket wrapper from an incoming notification/channel, set:
socket type + channel's delegate.
Change-Id: Idd6d5478597206ed759f49e282baed948d105ddf
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Change-Id: Ic8387dd411a9784b6163a15d423cdeaa5e63ea30
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
L2CP's psm (the RFCOMM port equivalent) was never published via SDP.
Therefore the service client could not get the required information
to connect to the server. After this patch Qt properly publishes
the psm.
Also, QBluetoothSocket::connect() initiated a service
discovery to obtain the missing psm. Since the published SDP
entry didn't contain one, protocolServiceMultiplexer() always returned
0 and another service discovery was initiated. This caused a crash
inside QBluetoothSocket because the 1st QBluetoothServiceDiscoveryAgent
instance was deleted in favor of the 2nd.
The patch changes the client behavior such that it doesn't crash
if the service discovery didn't turn up a valid psm/port.
It improves the robustness in case of an error and avoids
a second service discovery (which wouldn't turn up more information
anyway).
The bug only affected Bluez as it is the only platform supporting
pure L2CP sockets.
Last but not least a capability to test L2CP sockets was added to
bttestui.
Change-Id: I46c88a67c2baa4782ea908e645dcd4db9422dbba
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
This fixes duplicate switching to the unconnected state in case
the disconnect() signal is used to reconnect.
[ChangeLog][QtBluetooth][QBluetoothSocket] Fixed duplicate emission
of unconnected state in the reconnection case.
Change-Id: If449420d936c96e62518fc408e6a1e35b79988a8
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
The function is not required as the public accessor function directly
returns the socket descriptor.
Change-Id: I6d64bec7b4f0542ce213dc90dcfe30c3885ed21d
Reviewed-by: Nedim Hadzic <nedimhadzija@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
QBluetoothSocket::connectToService can be called by itself when it
does an SDP discovery. This affects Bluez only but the bug was introduced
by the Android port.
Change-Id: I1c9b0504acaafc7dbf2fc3d94b0c2c20a0cb8c65
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
When connectToService() triggers an SDP discovery the search may
fail. At the beginning of the discovery the socket state was set to
ServiceLookupState. This patch ensures that the socket state resets to
Unconnected if the SDP discovery failed.
Currently only Bluez uses this discovery mechanism and therefore is the
only affected platform.
Change-Id: I982dafc1f5466071bbf910ed3cf7cf7abda14fe4
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
This is a feature merge to dev targeting Qt 5.3.
Known issues:
-QTBUG-36754: QBluetoothServer::close() crashes
-QTBUG-36763: QBluetothTransferManager port to Android not possible
-QTBUG-36764: Improve QBluetoothLocalDevice::connectedDevices()
-QTBUG-36810: Remove direct use of Android action strings
The above issues and some other minor TODO's will be addressed
until final release time.
Task-number: QTBUG-33792
[ChangeLog][QtBluetooth][Android] QtBluetooth has been ported to
Android.
Change-Id: I31ba83e3b7d6aa68e7258b7e43235de7d1a6e68a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
This fixes a few cases where errorString, error signal and error code
where out of sync because one was set but not the other. This was
addressed by unifying the usage pattern for error activation to a
pattern where errorString is set and setSocketError() is called
afterwards.
Change-Id: Ibfb04772cf560936aa4ce8ea9643d6a410cc9ee2
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Bluez never returns anything until the connection has been established.
BlackBerry and the future Android port are much quicker.
Change-Id: Ic465a9b68176e7fff5f0c88b4fb602f8665f7197
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
ThHis is only used on Bluez at this stage. THe SDP agent was initialized
with the local adapter being the remote address of the remote service.
This could never work. The remote address is now properly set (being the
handed over bt address to QBluetoothSocket::connectToService()).
[ChangeLog][QtBluetooth][QtBluetoothSocket] Fixed incorrect
invocation of QBluetoothDiscoveryAgent where the remote service address
was incorrectly assumed to be the local Bt adapter address. This prevented
the detection of the remote service. This bug only affects the Bluez
backend.
Change-Id: Ice2b9c351bfd42f1f4398b14ac68f76315f01fa8
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Also add a serverType member function in QBluetoothServer
Change-Id: I107f73b3943dc84f5c4d2afcb00e303567a67b5d
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Remove some qDebug statements and change qDebugs to qWarning in case of an error.
Task-number: QTBUG-32253
Change-Id: Ia647d3f485cae56cc9f9c6725400f5b4617b7bf7
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
This is based on namespace discussions on the Qt project dev mailing list.
We continue to use the Qt namespace.
Change-Id: I6119d06662f7682c11f42d759f3218be1f5a7d6c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
To be aligned with the bluez implementation
Change-Id: I8d3fbd0c23298f984e2c99cbf4131cf8fc0a0a64
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
- Update Digia's copyright year
- Add copyright to files without it
- Convert old BSD to new LGPL license for auto test code
Change-Id: I47f5c871c436f9c2731b235026434448719cc671
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Renamed to the namespace macros to follow what syncqt expects. This
fixes missing namespace macro warnings printed by syncqt.
Change-Id: I7be5a700e8435a559cb4c2e74938851233095887
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
This commit adds the SPP server and socket to the QNX Bluetooth port
Change-Id: I0868f4cbc32fc84f0688eafdd2c3350dc8506b65
Reviewed-by: Alex <ablasche@gmail.com>
These pages will list the C++ classes and the QML types in Qt Bluetooth.
Removed extra groups.
Change-Id: I27d7004d804cc0cc29af997f3a11fcc9f9477efb
Reviewed-by: Alex <ablasche@gmail.com>
Change copyrights and license headers from Nokia to Digia
Change-Id: I4f07028d0bf0b3ba4c4649897b80687ea5e51abc
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.
Change-Id: I84f8c423bd7748bbae495fedae696990414cee83
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>