From dad63663fcc6590353ec426337b0126b967da173 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Mon, 21 Aug 2017 17:09:54 -0700 Subject: Fix releaseConnections The overload selected when you pass a single object pointer is to disconnect all signals with that object as a receiver. We want to disconnect all signals with that object as a sender, which is done most easily by passing no explicit arguments. Task-number: QTBUG-62667 Change-Id: I3dd9c5aced9160510bff527355ecfbedded690aa Reviewed-by: Edward Welbourne Reviewed-by: Qt CI Bot Reviewed-by: Jesus Fernandez Reviewed-by: Romain Pokrzywka Reviewed-by: Liang Qi --- src/websockets/qwebsocket_p.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp index f36056c..11b33c5 100644 --- a/src/websockets/qwebsocket_p.cpp +++ b/src/websockets/qwebsocket_p.cpp @@ -633,7 +633,7 @@ void QWebSocketPrivate::makeConnections(const QTcpSocket *pTcpSocket) void QWebSocketPrivate::releaseConnections(const QTcpSocket *pTcpSocket) { if (Q_LIKELY(pTcpSocket)) - pTcpSocket->disconnect(pTcpSocket); + pTcpSocket->disconnect(); m_dataProcessor.disconnect(); } -- cgit v1.2.1 From 0f32f4efc5a9a8b33369013c2ba6c27c78498cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Wed, 20 Sep 2017 15:42:54 +0200 Subject: Change assert to null-check Avoids a crash that would happen if readyRead was emitted after calling ::close on the websocket. Task-number: QTBUG-59179 Change-Id: I1e7bd19d99ee068b8699014fac9a72f839632c85 Reviewed-by: Timur Pocheptsov --- src/websockets/qwebsocket_p.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp index 11b33c5..7863567 100644 --- a/src/websockets/qwebsocket_p.cpp +++ b/src/websockets/qwebsocket_p.cpp @@ -1145,7 +1145,8 @@ void QWebSocketPrivate::socketDestroyed(QObject *socket) */ void QWebSocketPrivate::processData() { - Q_ASSERT(m_pSocket); + if (!m_pSocket) // disconnected with data still in-bound + return; while (m_pSocket->bytesAvailable()) { if (state() == QAbstractSocket::ConnectingState) { if (!m_pSocket->canReadLine()) -- cgit v1.2.1 From b05ec56db6f17f04387af72b8e1b9a64b1092daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Klitzing?= Date: Fri, 6 Oct 2017 12:59:27 +0200 Subject: Replace iterator based loop by range-for-loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Found by clazy and fixes "clazy-strict-iterators" warning. Change-Id: I8f50c92ac054d627499440d593faa43ed5b4ad4b Reviewed-by: MÃ¥rten Nordheim Reviewed-by: Edward Welbourne --- src/websockets/qwebsockethandshakerequest.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/websockets/qwebsockethandshakerequest.cpp b/src/websockets/qwebsockethandshakerequest.cpp index ddeee2d..e6a626c 100644 --- a/src/websockets/qwebsockethandshakerequest.cpp +++ b/src/websockets/qwebsockethandshakerequest.cpp @@ -318,17 +318,17 @@ void QWebSocketHandshakeRequest::readHandshake(QTextStream &textStream, int maxH //optional headers m_origin = m_headers.value(QStringLiteral("origin"), QString()); const QStringList protocolLines = m_headers.values(QStringLiteral("sec-websocket-protocol")); - for (QStringList::const_iterator pl = protocolLines.begin(); pl != protocolLines.end(); ++pl) { - QStringList protocols = (*pl).split(QStringLiteral(","), QString::SkipEmptyParts); - for (QStringList::const_iterator p = protocols.begin(); p != protocols.end(); ++p) - m_protocols << (*p).trimmed(); + for (const QString& pl : protocolLines) { + const QStringList protocols = pl.split(QStringLiteral(","), QString::SkipEmptyParts); + for (const QString& p : protocols) + m_protocols << p.trimmed(); } + const QStringList extensionLines = m_headers.values(QStringLiteral("sec-websocket-extensions")); - for (QStringList::const_iterator el = extensionLines.begin(); - el != extensionLines.end(); ++el) { - QStringList extensions = (*el).split(QStringLiteral(","), QString::SkipEmptyParts); - for (QStringList::const_iterator e = extensions.begin(); e != extensions.end(); ++e) - m_extensions << (*e).trimmed(); + for (const QString& el : extensionLines) { + const QStringList extensions = el.split(QStringLiteral(","), QString::SkipEmptyParts); + for (const QString& e : extensions) + m_extensions << e.trimmed(); } //TODO: authentication field -- cgit v1.2.1