From 55cef3a13c8377c55b2fe050751c8a05eb7f9fce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Heskestad?= Date: Tue, 19 Jul 2022 10:29:48 +0200 Subject: Replace QWebSocket::error signal with QWebSocket::errorOccurred MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The signal error(QAbstractSocket::SocketError) is deprecated because it overloads the function error() and the naming does not match other similar signals. Fixes: QTBUG-101756 Change-Id: Ifbddef73ea39b03a6c72b0e09caa2031135d7687 Reviewed-by: MÃ¥rten Nordheim --- src/imports/qmlwebsockets/qqmlwebsocket.cpp | 3 +- src/websockets/qwebsocket.cpp | 33 ++++++++++++------- src/websockets/qwebsocket.h | 4 +++ src/websockets/qwebsocket_p.cpp | 50 +++++++++++++++++------------ src/websockets/qwebsocket_p.h | 1 + src/websockets/qwebsocket_wasm_p.cpp | 11 +++---- 6 files changed, 62 insertions(+), 40 deletions(-) (limited to 'src') diff --git a/src/imports/qmlwebsockets/qqmlwebsocket.cpp b/src/imports/qmlwebsockets/qqmlwebsocket.cpp index a353595..c5685f6 100644 --- a/src/imports/qmlwebsockets/qqmlwebsocket.cpp +++ b/src/imports/qmlwebsockets/qqmlwebsocket.cpp @@ -219,8 +219,7 @@ void QQmlWebSocket::setSocket(QWebSocket *socket) this, &QQmlWebSocket::textMessageReceived); connect(m_webSocket.data(), &QWebSocket::binaryMessageReceived, this, &QQmlWebSocket::binaryMessageReceived); - typedef void (QWebSocket::* ErrorSignal)(QAbstractSocket::SocketError); - connect(m_webSocket.data(), static_cast(&QWebSocket::error), + connect(m_webSocket.data(), &QWebSocket::errorOccurred, this, &QQmlWebSocket::onError); connect(m_webSocket.data(), &QWebSocket::stateChanged, this, &QQmlWebSocket::onStateChanged); diff --git a/src/websockets/qwebsocket.cpp b/src/websockets/qwebsocket.cpp index 9cb58e3..3d96907 100644 --- a/src/websockets/qwebsocket.cpp +++ b/src/websockets/qwebsocket.cpp @@ -171,18 +171,6 @@ not been filled in with new information when the signal returns. \sa textMessageReceived() */ -/*! - \fn void QWebSocket::error(QAbstractSocket::SocketError error); - - This signal is emitted after an error occurred. The \a error - parameter describes the type of error that occurred. - - QAbstractSocket::SocketError is not a registered metatype, so for queued - connections, you will have to register it with Q_DECLARE_METATYPE() and - qRegisterMetaType(). - - \sa error(), errorString() -*/ /*! \fn void QWebSocket::sslErrors(const QList &errors) QWebSocket emits this signal after the SSL handshake to indicate that one or more errors have @@ -996,4 +984,25 @@ quint64 QWebSocket::maxOutgoingFrameSize() return QWebSocketPrivate::maxOutgoingFrameSize(); } +/*! + \fn void QWebSocket::errorOccurred(QAbstractSocket::SocketError error); + + \since 6.5 + \brief This signal is emitted after an error occurred. + + The \a error parameter describes the type of error that occurred. + + QAbstractSocket::SocketError is not a registered metatype, so for queued + connections, you will have to register it with Q_DECLARE_METATYPE() and + qRegisterMetaType(). + + \sa error(), errorString() +*/ +#if QT_DEPRECATED_SINCE(6, 5) +/*! + \fn void QWebSocket::error(QAbstractSocket::SocketError error); + \deprecated [6.5] Use errorOccurred(QAbstractSocket::SocketError error) instead. +*/ +#endif + QT_END_NAMESPACE diff --git a/src/websockets/qwebsocket.h b/src/websockets/qwebsocket.h index 5c28127..5cc6131 100644 --- a/src/websockets/qwebsocket.h +++ b/src/websockets/qwebsocket.h @@ -123,7 +123,11 @@ Q_SIGNALS: void binaryFrameReceived(const QByteArray &frame, bool isLastFrame); void textMessageReceived(const QString &message); void binaryMessageReceived(const QByteArray &message); +#if QT_DEPRECATED_SINCE(6, 5) + QT_DEPRECATED_VERSION_X_6_5("Use errorOccurred instead") void error(QAbstractSocket::SocketError error); +#endif + void errorOccurred(QAbstractSocket::SocketError error); void pong(quint64 elapsedTime, const QByteArray &payload); void bytesWritten(qint64 bytes); diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp index e43a701..b806229 100644 --- a/src/websockets/qwebsocket_p.cpp +++ b/src/websockets/qwebsocket_p.cpp @@ -405,7 +405,7 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, QUrl url = request.url(); if (!url.isValid() || url.toString().contains(QStringLiteral("\r\n"))) { setErrorString(QWebSocket::tr("Invalid URL.")); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); return; } if (m_pSocket) { @@ -425,7 +425,7 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, if (resourceName.contains(QStringLiteral("%0D%0A"))) { setRequest(QNetworkRequest()); //clear request setErrorString(QWebSocket::tr("Invalid resource name.")); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); return; } if (!url.query().isEmpty()) { @@ -445,7 +445,7 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, const QString message = QWebSocket::tr("SSL Sockets are not supported on this platform."); setErrorString(message); - Q_EMIT q->error(QAbstractSocket::UnsupportedSocketOperationError); + emitErrorOccurred(QAbstractSocket::UnsupportedSocketOperationError); } else { QSslSocket *sslSocket = new QSslSocket(q); m_pSocket = sslSocket; @@ -473,7 +473,7 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, } else { const QString message = QWebSocket::tr("Out of memory."); setErrorString(message); - Q_EMIT q->error(QAbstractSocket::SocketResourceError); + emitErrorOccurred(QAbstractSocket::SocketResourceError); } } } else @@ -498,13 +498,13 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, } else { const QString message = QWebSocket::tr("Out of memory."); setErrorString(message); - Q_EMIT q->error(QAbstractSocket::SocketResourceError); + emitErrorOccurred(QAbstractSocket::SocketResourceError); } } else { const QString message = QWebSocket::tr("Unsupported WebSocket scheme: %1").arg(url.scheme()); setErrorString(message); - Q_EMIT q->error(QAbstractSocket::UnsupportedSocketOperationError); + emitErrorOccurred(QAbstractSocket::UnsupportedSocketOperationError); } } } @@ -610,8 +610,8 @@ void QWebSocketPrivate::makeConnections(QTcpSocket *pTcpSocket) if (Q_LIKELY(pTcpSocket)) { //pass through signals - QObject::connect(pTcpSocket, &QAbstractSocket::errorOccurred, - q, QOverload::of(&QWebSocket::error)); + QObjectPrivate::connect(pTcpSocket, &QAbstractSocket::errorOccurred, this, + &QWebSocketPrivate::emitErrorOccurred); #ifndef QT_NO_NETWORKPROXY QObject::connect(pTcpSocket, &QAbstractSocket::proxyAuthenticationRequired, q, &QWebSocket::proxyAuthenticationRequired); @@ -770,7 +770,6 @@ QByteArray QWebSocketPrivate::getFrameHeader(QWebSocketProtocol::OpCode opCode, quint64 payloadLength, quint32 maskingKey, bool lastFrame) { - Q_Q(QWebSocket); QByteArray header; bool ok = payloadLength <= 0x7FFFFFFFFFFFFFFFULL; @@ -804,7 +803,7 @@ QByteArray QWebSocketPrivate::getFrameHeader(QWebSocketProtocol::OpCode opCode, } } else { setErrorString(QStringLiteral("WebSocket::getHeader: payload too big!")); - Q_EMIT q->error(QAbstractSocket::DatagramTooLargeError); + emitErrorOccurred(QAbstractSocket::DatagramTooLargeError); } return header; @@ -819,7 +818,6 @@ qint64 QWebSocketPrivate::doWriteFrames(const QByteArray &data, bool isBinary) if (Q_UNLIKELY(!m_pSocket) || (state() != QAbstractSocket::ConnectedState)) return payloadWritten; - Q_Q(QWebSocket); const QWebSocketProtocol::OpCode firstOpCode = isBinary ? QWebSocketProtocol::OpCodeBinary : QWebSocketProtocol::OpCodeText; @@ -865,7 +863,7 @@ qint64 QWebSocketPrivate::doWriteFrames(const QByteArray &data, bool isBinary) m_pSocket->flush(); setErrorString(QWebSocket::tr("Error writing bytes to socket: %1.") .arg(m_pSocket->errorString())); - Q_EMIT q->error(QAbstractSocket::NetworkError); + emitErrorOccurred(QAbstractSocket::NetworkError); break; } } @@ -875,7 +873,7 @@ qint64 QWebSocketPrivate::doWriteFrames(const QByteArray &data, bool isBinary) if (Q_UNLIKELY(payloadWritten != data.size())) { setErrorString(QWebSocket::tr("Bytes written %1 != %2.") .arg(payloadWritten).arg(data.size())); - Q_EMIT q->error(QAbstractSocket::NetworkError); + emitErrorOccurred(QAbstractSocket::NetworkError); } return payloadWritten; } @@ -959,7 +957,7 @@ void QWebSocketPrivate::processHandshake(QTcpSocket *pSocket) const qint64 maxHeaderLength = MAX_HEADERLINE_LENGTH * MAX_HEADERLINES + endOfHeaderMarker.size(); if (Q_UNLIKELY(byteAvailable > maxHeaderLength)) { setErrorString(QWebSocket::tr("Header is too large")); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); } return; } @@ -971,7 +969,7 @@ void QWebSocketPrivate::processHandshake(QTcpSocket *pSocket) if (Q_UNLIKELY(skippedSize != headerSize)) { setErrorString(QWebSocket::tr("Read handshake request header failed")); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); return; } @@ -982,13 +980,13 @@ void QWebSocketPrivate::processHandshake(QTcpSocket *pSocket) if (!parser.parseStatus(status)) { setErrorString(QWebSocket::tr("Read handshake request status failed")); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); return; } if (!parser.parseHeaders(headers.sliced(endOfStatusIndex + endOfStatusMarker.size()))) { setErrorString(QWebSocket::tr("Parsing handshake request header failed")); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); return; } @@ -1009,7 +1007,7 @@ void QWebSocketPrivate::processHandshake(QTcpSocket *pSocket) setErrorString(QWebSocket::tr("WebSocket server has chosen protocol %1 which has not been " "requested") .arg(protocol)); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); return; } @@ -1071,7 +1069,7 @@ void QWebSocketPrivate::processHandshake(QTcpSocket *pSocket) } else { // handshake failed setErrorString(errorDescription); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); } } @@ -1112,7 +1110,7 @@ void QWebSocketPrivate::processStateChanged(QAbstractSocket::SocketState socketS headers); if (handshake.isEmpty()) { m_pSocket->abort(); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); return; } m_pSocket->write(handshake.toLatin1()); @@ -1521,6 +1519,18 @@ void QWebSocketPrivate::setReadBufferSize(qint64 size) m_pSocket->setReadBufferSize(m_readBufferSize); } +void QWebSocketPrivate::emitErrorOccurred(QAbstractSocket::SocketError error) +{ + Q_Q(QWebSocket); + Q_EMIT q->errorOccurred(error); +#if QT_DEPRECATED_SINCE(6, 5) + QT_WARNING_PUSH + QT_WARNING_DISABLE_DEPRECATED + Q_EMIT q->error(error); + QT_WARNING_POP +#endif +} + #ifndef Q_OS_WASM /*! \internal diff --git a/src/websockets/qwebsocket_p.h b/src/websockets/qwebsocket_p.h index 20a051c..90b1674 100644 --- a/src/websockets/qwebsocket_p.h +++ b/src/websockets/qwebsocket_p.h @@ -186,6 +186,7 @@ private: QByteArray generateKey() const; Q_REQUIRED_RESULT qint64 writeFrames(const QList &frames); Q_REQUIRED_RESULT qint64 writeFrame(const QByteArray &frame); + void emitErrorOccurred(QAbstractSocket::SocketError error); QTcpSocket *m_pSocket; QString m_errorString; diff --git a/src/websockets/qwebsocket_wasm_p.cpp b/src/websockets/qwebsocket_wasm_p.cpp index d7f86a0..4a69ed1 100644 --- a/src/websockets/qwebsocket_wasm_p.cpp +++ b/src/websockets/qwebsocket_wasm_p.cpp @@ -80,7 +80,7 @@ qint64 QWebSocketPrivate::sendTextMessage(const QString &message) if (m_readyState == 1) { result = emscripten_websocket_send_utf8_text(m_socketContext, message.toUtf8()); if (result < 0) - emit q_func()->error(QAbstractSocket::UnknownSocketError); + emitErrorOccurred(QAbstractSocket::UnknownSocketError); } else qWarning() << "Could not send message. Websocket is not open"; @@ -96,7 +96,7 @@ qint64 QWebSocketPrivate::sendBinaryMessage(const QByteArray &data) m_socketContext, const_cast(reinterpret_cast(data.constData())), data.size()); if (result < 0) - emit q_func()->error(QAbstractSocket::UnknownSocketError); + emitErrorOccurred(QAbstractSocket::UnknownSocketError); } else qWarning() << "Could not send message. Websocket is not open"; @@ -126,12 +126,11 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, { Q_UNUSED(mask); Q_UNUSED(options) - Q_Q(QWebSocket); emscripten_websocket_get_ready_state(m_socketContext, &m_readyState); if ((m_readyState == 1 || m_readyState == 3) && m_socketContext != 0) { - emit q->error(QAbstractSocket::OperationError); + emitErrorOccurred(QAbstractSocket::OperationError); return; } @@ -147,7 +146,7 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, || url.toString().contains(QStringLiteral("\r\n")) || (isSecureContext && url.scheme() == QStringLiteral("ws"))) { setErrorString(QWebSocket::tr("Connection refused")); - Q_EMIT q->error(QAbstractSocket::ConnectionRefusedError); + emitErrorOccurred(QAbstractSocket::ConnectionRefusedError); return; } @@ -186,7 +185,7 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, if (m_socketContext <= 0) { // m_readyState might not be changed yet // error - emit q->error(QAbstractSocket::UnknownSocketError); + emitErrorOccurred(QAbstractSocket::UnknownSocketError); return; } -- cgit v1.2.1