summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qlowenergycontroller_bluez.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/qlowenergycontroller_bluez.cpp')
-rw-r--r--src/bluetooth/qlowenergycontroller_bluez.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/bluetooth/qlowenergycontroller_bluez.cpp b/src/bluetooth/qlowenergycontroller_bluez.cpp
index d4fe0232..e85fcb34 100644
--- a/src/bluetooth/qlowenergycontroller_bluez.cpp
+++ b/src/bluetooth/qlowenergycontroller_bluez.cpp
@@ -688,12 +688,19 @@ void QLowEnergyControllerPrivate::sendPacket(const QByteArray &packet)
{
qint64 result = l2cpSocket->write(packet.constData(),
packet.size());
+ // We ignore result == 0 which is likely to be caused by EAGAIN.
+ // This packet is effectively discarded but the controller can still recover
+
if (result == -1) {
qCDebug(QT_BT_BLUEZ) << "Cannot write L2CP packet:" << hex
<< packet.toHex()
<< l2cpSocket->errorString();
setError(QLowEnergyController::NetworkError);
+ } else if (result < packet.size()) {
+ qCWarning(QT_BT_BLUEZ) << "L2CP write request incomplete:"
+ << result << "of" << packet.size();
}
+
}
void QLowEnergyControllerPrivate::sendNextPendingRequest()