From 1716d1242a0d4841ce1e8c676b4aef04de0ce2a3 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Fri, 1 Oct 2021 00:46:04 +0300 Subject: [PATCH] do not set socket error twice in EAGAIN case in QNativeSocketEnginePrivate::nativeConnect() and correct the errors for EALREADY and EAGAIN strerror(EAGAIN) returns "Resource temporarily unavailable", strerror(EALREADY) returns "Operation already in progress" which is deffinetly not invalid socket error ("Invalid socket descriptor") Signed-off-by: Ivailo Monev --- src/network/socket/qnativesocketengine_unix.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp index 5dc186f4f..791d4befc 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp @@ -358,12 +358,11 @@ bool QNativeSocketEnginePrivate::nativeConnect(const QHostAddress &addr, quint16 break; case EINPROGRESS: case EALREADY: - setError(QAbstractSocket::UnfinishedSocketOperationError, InvalidSocketErrorString); + setError(QAbstractSocket::UnfinishedSocketOperationError, ResourceErrorString); socketState = QAbstractSocket::ConnectingState; break; case EAGAIN: - setError(QAbstractSocket::UnfinishedSocketOperationError, InvalidSocketErrorString); - setError(QAbstractSocket::SocketResourceError, ResourceErrorString); + setError(QAbstractSocket::UnfinishedSocketOperationError, ResourceErrorString); break; case EACCES: case EPERM: -- 2.11.0