diff options
Diffstat (limited to 'src/bluetooth/qbluetoothsocket_qnx.cpp')
-rw-r--r-- | src/bluetooth/qbluetoothsocket_qnx.cpp | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/src/bluetooth/qbluetoothsocket_qnx.cpp b/src/bluetooth/qbluetoothsocket_qnx.cpp index 6e14ae13..81c46dd7 100644 --- a/src/bluetooth/qbluetoothsocket_qnx.cpp +++ b/src/bluetooth/qbluetoothsocket_qnx.cpp @@ -50,6 +50,7 @@ QBluetoothSocketPrivate::QBluetoothSocketPrivate() : socket(-1), socketType(QBluetoothServiceInfo::UnknownProtocol), state(QBluetoothSocket::UnconnectedState), + socketError(QBluetoothSocket::NoSocketError), readNotifier(0), connectWriteNotifier(0), connecting(false), @@ -68,13 +69,16 @@ QBluetoothSocketPrivate::~QBluetoothSocketPrivate() bool QBluetoothSocketPrivate::ensureNativeSocket(QBluetoothServiceInfo::Protocol type) { socketType = type; + if (socketType == QBluetoothServiceInfo::RfcommProtocol) + return true; + return false; } void QBluetoothSocketPrivate::connectToService(const QBluetoothAddress &address, QBluetoothUuid uuid, QIODevice::OpenMode openMode) { Q_UNUSED(openMode); - qBBBluetoothDebug() << "Connecting socket"; + qCDebug(QT_BT_QNX) << "Connecting socket"; if (isServerSocket) { m_peerAddress = address; m_uuid = uuid; @@ -82,7 +86,7 @@ void QBluetoothSocketPrivate::connectToService(const QBluetoothAddress &address, } if (state != QBluetoothSocket::UnconnectedState) { - qBBBluetoothDebug() << "Socket already connected"; + qCDebug(QT_BT_QNX) << "Socket already connected"; return; } state = QBluetoothSocket::ConnectingState; @@ -117,8 +121,8 @@ void QBluetoothSocketPrivate::_q_writeNotify() int size = txBuffer.read(buf, 1024); if (::write(socket, buf, size) != size) { - socketError = QBluetoothSocket::NetworkError; - emit q->error(socketError); + errorString = QBluetoothSocket::tr("Network Error"); + q->setSocketError(QBluetoothSocket::NetworkError); } else { emit q->bytesWritten(size); @@ -143,9 +147,9 @@ void QBluetoothSocketPrivate::_q_readNotify() int errsv = errno; readNotifier->setEnabled(false); connectWriteNotifier->setEnabled(false); - errorString = QString::fromLocal8Bit(strerror(errsv)); - qWarning() << Q_FUNC_INFO << socket << " error:" << readFromDevice << errorString; //TODO Try if this actually works - emit q->error(QBluetoothSocket::UnknownSocketError); + qCWarning(QT_BT_QNX) << Q_FUNC_INFO << socket << " error:" << readFromDevice << errorString; //TODO Try if this actually works + errorString = qt_error_string(errsv); + q->setSocketError(QBluetoothSocket::UnknownSocketError); q->disconnectFromService(); q->setSocketState(QBluetoothSocket::UnconnectedState); @@ -159,7 +163,7 @@ void QBluetoothSocketPrivate::_q_readNotify() void QBluetoothSocketPrivate::abort() { Q_Q(QBluetoothSocket); - qBBBluetoothDebug() << "Disconnecting service"; + qCDebug(QT_BT_QNX) << "Disconnecting service"; if (q->state() != QBluetoothSocket::ClosingState) ppsSendControlMessage("disconnect_service", 0x1101, m_uuid, m_peerAddress.toString(), QString(), 0, isServerSocket ? BT_SPP_SERVER_SUBTYPE : BT_SPP_CLIENT_SUBTYPE); @@ -194,7 +198,7 @@ quint16 QBluetoothSocketPrivate::localPort() const QString QBluetoothSocketPrivate::peerName() const { - return m_peerName; + return QString(); } QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const @@ -212,9 +216,9 @@ qint64 QBluetoothSocketPrivate::writeData(const char *data, qint64 maxSize) Q_Q(QBluetoothSocket); if (q->openMode() & QIODevice::Unbuffered) { if (::write(socket, data, maxSize) != maxSize) { - socketError = QBluetoothSocket::NetworkError; - qWarning() << Q_FUNC_INFO << "Socket error"; - Q_EMIT q->error(socketError); + errorString = QBluetoothSocket::tr("Network Error"); + q->setSocketError(QBluetoothSocket::NetworkError); + qCWarning(QT_BT_QNX) << Q_FUNC_INFO << "Socket error"; } Q_EMIT q->bytesWritten(maxSize); @@ -250,7 +254,7 @@ void QBluetoothSocketPrivate::close() abort(); } -bool QBluetoothSocketPrivate::setSocketDescriptor(int socketDescriptor, QBluetoothServiceInfo::Protocol socketType, +bool QBluetoothSocketPrivate::setSocketDescriptor(int socketDescriptor, QBluetoothServiceInfo::Protocol socketType_, QBluetoothSocket::SocketState socketState, QBluetoothSocket::OpenMode openMode) { Q_Q(QBluetoothSocket); @@ -260,7 +264,7 @@ bool QBluetoothSocketPrivate::setSocketDescriptor(int socketDescriptor, QBluetoo connectWriteNotifier = 0; socket = socketDescriptor; - socketType = socketType; + socketType = socketType_; // ensure that O_NONBLOCK is set on new connections. int flags = fcntl(socket, F_GETFL, 0); @@ -300,35 +304,33 @@ void QBluetoothSocketPrivate::controlReply(ppsResult result) if (result.msg == QStringLiteral("connect_service")) { if (!result.errorMsg.isEmpty()) { - qWarning() << Q_FUNC_INFO << "Error connecting to service:" << result.errorMsg; + qCWarning(QT_BT_QNX) << Q_FUNC_INFO << "Error connecting to service:" << result.errorMsg; errorString = result.errorMsg; - socketError = QBluetoothSocket::UnknownSocketError; - emit q->error(QBluetoothSocket::UnknownSocketError); + q->setSocketError(QBluetoothSocket::UnknownSocketError); q->setSocketState(QBluetoothSocket::UnconnectedState); return; } else { - qBBBluetoothDebug() << Q_FUNC_INFO << "Sending request for mount point"; + qCDebug(QT_BT_QNX) << Q_FUNC_INFO << "Sending request for mount point"; ppsSendControlMessage("get_mount_point_path", 0x1101, m_uuid, m_peerAddress.toString(), QString(), this, BT_SPP_CLIENT_SUBTYPE); } } else if (result.msg == QStringLiteral("get_mount_point_path")) { QString path; path = result.dat.first(); - qBBBluetoothDebug() << Q_FUNC_INFO << "PATH is" << path; + qCDebug(QT_BT_QNX) << Q_FUNC_INFO << "PATH is" << path; if (!result.errorMsg.isEmpty()) { - qWarning() << Q_FUNC_INFO << result.errorMsg; + qCWarning(QT_BT_QNX) << Q_FUNC_INFO << result.errorMsg; errorString = result.errorMsg; - socketError = QBluetoothSocket::UnknownSocketError; - emit q->error(QBluetoothSocket::UnknownSocketError); + q->setSocketError(QBluetoothSocket::UnknownSocketError); q->setSocketState(QBluetoothSocket::UnconnectedState); return; } else { - qBBBluetoothDebug() << "Mount point path is:" << path; + qCDebug(QT_BT_QNX) << "Mount point path is:" << path; socket = ::open(path.toStdString().c_str(), O_RDWR); if (socket == -1) { - errorString = QString::fromLocal8Bit(strerror(errno)); - qWarning() << Q_FUNC_INFO << socket << " error:" << errno << errorString; //TODO Try if this actually works - emit q->error(QBluetoothSocket::UnknownSocketError); + errorString = qt_error_string(errno); + q->setSocketError(QBluetoothSocket::UnknownSocketError); + qCWarning(QT_BT_QNX) << Q_FUNC_INFO << socket << " error:" << errno << errorString; //TODO Try if this actually works q->disconnectFromService(); q->setSocketState(QBluetoothSocket::UnconnectedState); |