diff options
author | Jonas M. Gastal <jgastal@profusion.mobi> | 2011-12-27 18:00:18 -0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-04 18:46:52 +0100 |
commit | b49467220811059ea85f1a31eeecb6797dc753e2 (patch) | |
tree | 495ae79fd5746e2e8311ee2fbb2c99aa5dfad2ae /src/network/socket/qlocalsocket_unix.cpp | |
parent | f821d6352e384a737c82a0db903104ec4f8611bd (diff) |
Emit error if trying to connect while socket is connected or connecting.
This applies to both local and abstract sockets.
Task-number: QTBUG-22450
Change-Id: I5c58d68da95ffb6bcde5be510853359b288e5984
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
Diffstat (limited to 'src/network/socket/qlocalsocket_unix.cpp')
-rw-r--r-- | src/network/socket/qlocalsocket_unix.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/network/socket/qlocalsocket_unix.cpp b/src/network/socket/qlocalsocket_unix.cpp index 1bdf604eb1..ae8ec83474 100644 --- a/src/network/socket/qlocalsocket_unix.cpp +++ b/src/network/socket/qlocalsocket_unix.cpp @@ -162,6 +162,9 @@ QString QLocalSocketPrivate::generateErrorString(QLocalSocket::LocalSocketError case QLocalSocket::UnsupportedSocketOperationError: errorString = QLocalSocket::tr("%1: The socket operation is not supported").arg(function); break; + case QLocalSocket::OperationError: + errorString = QLocalSocket::tr("%1: Operation not permitted when socket is in this state").arg(function); + break; case QLocalSocket::UnknownSocketError: default: errorString = QLocalSocket::tr("%1: Unknown error %2").arg(function).arg(errno); @@ -221,9 +224,12 @@ void QLocalSocketPrivate::errorOccurred(QLocalSocket::LocalSocketError error, co void QLocalSocket::connectToServer(const QString &name, OpenMode openMode) { Q_D(QLocalSocket); - if (state() == ConnectedState - || state() == ConnectingState) + if (state() == ConnectedState || state() == ConnectingState) { + QString errorString = d->generateErrorString(QLocalSocket::OperationError, QLatin1String("QLocalSocket::connectToserver")); + setErrorString(errorString); + emit error(QLocalSocket::OperationError); return; + } d->errorString.clear(); d->unixSocket.setSocketState(QAbstractSocket::ConnectingState); |