diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp index b6df4122530..4b096c840d7 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp @@ -401,6 +401,7 @@ bool QNativeSocketEnginePrivate::nativeConnect(const QHostAddress &addr, quint16 break; case ECONNREFUSED: case EINVAL: + case ENOENT: setError(QAbstractSocket::ConnectionRefusedError, ConnectionRefusedErrorString); socketState = QAbstractSocket::UnconnectedState; break; diff --git a/src/network/socket/qnet_unix_p.h b/src/network/socket/qnet_unix_p.h index a172a14a109..7e85bc537b5 100644 --- a/src/network/socket/qnet_unix_p.h +++ b/src/network/socket/qnet_unix_p.h @@ -109,6 +109,11 @@ static inline int qt_safe_connect(int sockfd, const struct sockaddr *addr, QT_SO int ret; // Solaris e.g. expects a non-const 2nd parameter QT_EINTR_LOOP(ret, QT_SOCKET_CONNECT(sockfd, const_cast(addr), addrlen)); +#ifdef Q_OS_WASM +// ::connect on wasm returns 0 when it shouldn't so use errno instead + if (errno != 0) + ret = -1; +#endif return ret; } #undef QT_SOCKET_CONNECT