summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-01-28 10:13:28 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-30 14:22:56 +0100
commit039982cfa41515fbf559a4e3645aab14f77ee447 (patch)
treef878d4e11b08c70e98a55eff5c16646414d5b695 /src
parent7f6c59623c535fcd2075464e3870e9897c3f5f2b (diff)
Synchronize setting of QBluetoothSocket's error string, code and signal
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>
Diffstat (limited to 'src')
-rw-r--r--src/bluetooth/qbluetoothsocket.cpp9
-rw-r--r--src/bluetooth/qbluetoothsocket_bluez.cpp14
-rw-r--r--src/bluetooth/qbluetoothsocket_qnx.cpp20
3 files changed, 22 insertions, 21 deletions
diff --git a/src/bluetooth/qbluetoothsocket.cpp b/src/bluetooth/qbluetoothsocket.cpp
index 2f086d91..2f2660d0 100644
--- a/src/bluetooth/qbluetoothsocket.cpp
+++ b/src/bluetooth/qbluetoothsocket.cpp
@@ -319,13 +319,15 @@ void QBluetoothSocket::connectToService(const QBluetoothServiceInfo &service, Op
#else
if (service.protocolServiceMultiplexer() > 0) {
if (!d->ensureNativeSocket(QBluetoothServiceInfo::L2capProtocol)) {
- emit error(UnknownSocketError);
+ d->errorString = tr("Unknown socket error");
+ setSocketError(UnknownSocketError);
return;
}
d->connectToService(service.device().address(), service.protocolServiceMultiplexer(), openMode);
} else if (service.serverChannel() > 0) {
if (!d->ensureNativeSocket(QBluetoothServiceInfo::RfcommProtocol)) {
- emit error(UnknownSocketError);
+ d->errorString = tr("Unknown socket error");
+ setSocketError(UnknownSocketError);
return;
}
d->connectToService(service.device().address(), service.serverChannel(), openMode);
@@ -544,7 +546,8 @@ void QBluetoothSocket::discoveryFinished()
Q_D(QBluetoothSocket);
if (d->discoveryAgent){
qCDebug(QT_BT) << "Didn't find any";
- emit error(QBluetoothSocket::ServiceNotFoundError);
+ d->errorString = tr("Service cannot be found");
+ setSocketError(ServiceNotFoundError);
d->discoveryAgent->deleteLater();
d->discoveryAgent = 0;
}
diff --git a/src/bluetooth/qbluetoothsocket_bluez.cpp b/src/bluetooth/qbluetoothsocket_bluez.cpp
index bb8e9685..2b1eee9e 100644
--- a/src/bluetooth/qbluetoothsocket_bluez.cpp
+++ b/src/bluetooth/qbluetoothsocket_bluez.cpp
@@ -180,7 +180,7 @@ void QBluetoothSocketPrivate::_q_writeNotify()
::getsockopt(socket, SOL_SOCKET, SO_ERROR, &errorno, (socklen_t*)&len);
if(errorno) {
errorString = QString::fromLocal8Bit(strerror(errorno));
- emit q->error(QBluetoothSocket::UnknownSocketError);
+ q->setSocketError(QBluetoothSocket::UnknownSocketError);
return;
}
@@ -201,8 +201,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);
@@ -233,9 +233,9 @@ void QBluetoothSocketPrivate::_q_readNotify()
errorString = QString::fromLocal8Bit(strerror(errsv));
qCWarning(QT_BT_BLUEZ) << Q_FUNC_INFO << socket << "error:" << readFromDevice << errorString;
if(errsv == EHOSTDOWN)
- emit q->error(QBluetoothSocket::HostNotFoundError);
+ q->setSocketError(QBluetoothSocket::HostNotFoundError);
else
- emit q->error(QBluetoothSocket::UnknownSocketError);
+ q->setSocketError(QBluetoothSocket::UnknownSocketError);
q->disconnectFromService();
q->setSocketState(QBluetoothSocket::UnconnectedState);
@@ -444,8 +444,8 @@ 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;
- emit q->error(socketError);
+ errorString = QBluetoothSocket::tr("Network error");
+ q->setSocketError(QBluetoothSocket::NetworkError);
}
emit q->bytesWritten(maxSize);
diff --git a/src/bluetooth/qbluetoothsocket_qnx.cpp b/src/bluetooth/qbluetoothsocket_qnx.cpp
index 0be90ec9..90f90178 100644
--- a/src/bluetooth/qbluetoothsocket_qnx.cpp
+++ b/src/bluetooth/qbluetoothsocket_qnx.cpp
@@ -118,8 +118,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);
@@ -144,9 +144,9 @@ void QBluetoothSocketPrivate::_q_readNotify()
int errsv = errno;
readNotifier->setEnabled(false);
connectWriteNotifier->setEnabled(false);
- errorString = QString::fromLocal8Bit(strerror(errsv));
qCWarning(QT_BT_QNX) << Q_FUNC_INFO << socket << " error:" << readFromDevice << errorString; //TODO Try if this actually works
- emit q->error(QBluetoothSocket::UnknownSocketError);
+ errorString = QString::fromLocal8Bit(strerror(errsv));
+ q->setSocketError(QBluetoothSocket::UnknownSocketError);
q->disconnectFromService();
q->setSocketState(QBluetoothSocket::UnconnectedState);
@@ -213,9 +213,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;
+ errorString = QBluetoothSocket::tr("Network Error");
+ q->setSocketError(QBluetoothSocket::NetworkError);
qCWarning(QT_BT_QNX) << Q_FUNC_INFO << "Socket error";
- Q_EMIT q->error(socketError);
}
Q_EMIT q->bytesWritten(maxSize);
@@ -303,8 +303,7 @@ void QBluetoothSocketPrivate::controlReply(ppsResult result)
if (!result.errorMsg.isEmpty()) {
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 {
@@ -319,8 +318,7 @@ void QBluetoothSocketPrivate::controlReply(ppsResult result)
if (!result.errorMsg.isEmpty()) {
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 {
@@ -328,8 +326,8 @@ void QBluetoothSocketPrivate::controlReply(ppsResult result)
socket = ::open(path.toStdString().c_str(), O_RDWR);
if (socket == -1) {
errorString = QString::fromLocal8Bit(strerror(errno));
+ q->setSocketError(QBluetoothSocket::UnknownSocketError);
qCWarning(QT_BT_QNX) << Q_FUNC_INFO << socket << " error:" << errno << errorString; //TODO Try if this actually works
- emit q->error(QBluetoothSocket::UnknownSocketError);
q->disconnectFromService();
q->setSocketState(QBluetoothSocket::UnconnectedState);