From 5f8093e6f985a7a887ffaa1e2fecd7314b5444c6 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Tue, 2 Dec 2014 13:15:54 +0100 Subject: QWebSocket should remember close code and reason MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-42982 Change-Id: I50dbff96d7d64a5213e6ea6ba7bb9429b21b1fb2 Reviewed-by: Jędrzej Nowacki --- src/websockets/qwebsocket_p.cpp | 2 ++ tests/auto/qwebsocket/tst_qwebsocket.cpp | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp index f483e12..45913e5 100644 --- a/src/websockets/qwebsocket_p.cpp +++ b/src/websockets/qwebsocket_p.cpp @@ -300,6 +300,8 @@ void QWebSocketPrivate::close(QWebSocketProtocol::CloseCode closeCode, QString r return; if (!m_isClosingHandshakeSent) { Q_Q(QWebSocket); + m_closeCode = closeCode; + m_closeReason = reason; const quint16 code = qToBigEndian(closeCode); QByteArray payload; payload.append(static_cast(static_cast(&code)), 2); diff --git a/tests/auto/qwebsocket/tst_qwebsocket.cpp b/tests/auto/qwebsocket/tst_qwebsocket.cpp index 0d1a46d..0e04ce1 100644 --- a/tests/auto/qwebsocket/tst_qwebsocket.cpp +++ b/tests/auto/qwebsocket/tst_qwebsocket.cpp @@ -471,6 +471,11 @@ void tst_QWebSocket::tst_sendTextMessage() isLastFrame = arguments.at(1).toBool(); QCOMPARE(frameReceived, QStringLiteral("Hello world!")); QVERIFY(isLastFrame); + + QString reason = QStringLiteral("going away"); + socket.close(QWebSocketProtocol::CloseCodeGoingAway, reason); + QCOMPARE(socket.closeCode(), QWebSocketProtocol::CloseCodeGoingAway); + QCOMPARE(socket.closeReason(), reason); #endif } -- cgit v1.2.1