summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/bluez
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2016-02-03 17:52:55 +0100
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2016-02-17 13:09:35 +0000
commitb1a2de541771c6b45d46cfa6613c10f5e52ece68 (patch)
treedf023e3a73cf2ed627eccf29c479fa12004ac550 /src/bluetooth/bluez
parenteef68dea35960670c1a1a1431d4541e1ed19c781 (diff)
Bluetooth LE: Add support for Signed Write command in the central role.
Task-number: QTBUG-41175 Change-Id: I62d74236faf9161681306d952e409e23e0cea24d Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'src/bluetooth/bluez')
-rw-r--r--src/bluetooth/bluez/hcimanager.cpp7
-rw-r--r--src/bluetooth/bluez/hcimanager_p.h2
2 files changed, 5 insertions, 4 deletions
diff --git a/src/bluetooth/bluez/hcimanager.cpp b/src/bluetooth/bluez/hcimanager.cpp
index cf2f2a0f..dfb99d5a 100644
--- a/src/bluetooth/bluez/hcimanager.cpp
+++ b/src/bluetooth/bluez/hcimanager.cpp
@@ -486,8 +486,8 @@ void HciManager::handleHciAclPacket(const quint8 *data, int size)
// qCDebug(QT_BT_BLUEZ) << "handle:" << aclData->handle << "PB:" << aclData->pbFlag
// << "BC:" << aclData->bcFlag << "data len:" << aclData->dataLen;
- // Consider only directed, complete messages from controller to host (i.e. incoming packets).
- if (aclData->pbFlag != 2 || aclData->bcFlag != 0)
+ // Consider only directed, complete messages.
+ if ((aclData->pbFlag != 0 && aclData->pbFlag != 2) || aclData->bcFlag != 0)
return;
if (size < int(sizeof(L2CapHeader))) {
@@ -516,7 +516,8 @@ void HciManager::handleHciAclPacket(const quint8 *data, int size)
}
quint128 csrk;
memcpy(&csrk, data + 1, sizeof csrk);
- emit signatureResolvingKeyReceived(aclData->handle, csrk);
+ const bool isRemoteKey = aclData->pbFlag == 2;
+ emit signatureResolvingKeyReceived(aclData->handle, isRemoteKey, csrk);
}
void HciManager::handleLeMetaEvent(const quint8 *data)
diff --git a/src/bluetooth/bluez/hcimanager_p.h b/src/bluetooth/bluez/hcimanager_p.h
index eb899c79..3bae92e5 100644
--- a/src/bluetooth/bluez/hcimanager_p.h
+++ b/src/bluetooth/bluez/hcimanager_p.h
@@ -91,7 +91,7 @@ signals:
void commandCompleted(quint16 opCode, quint8 status, const QByteArray &data);
void connectionComplete(quint16 handle);
void connectionUpdate(quint16 handle, const QLowEnergyConnectionParameters &parameters);
- void signatureResolvingKeyReceived(quint16 connHandle, const quint128 &csrk);
+ void signatureResolvingKeyReceived(quint16 connHandle, bool remoteKey, const quint128 &csrk);
private slots:
void _q_readNotify();