From: Frederik Gladhorn Date: Tue, 2 Dec 2014 12:15:54 +0000 (+0100) Subject: QWebSocket should remember close code and reason X-Git-Tag: v5.4.1^0 X-Git-Url: http://review.tizen.org/git/?p=contrib%2Fqtwebsockets.git;a=commitdiff_plain;h=5f8093e6f985a7a887ffaa1e2fecd7314b5444c6 QWebSocket should remember close code and reason Task-number: QTBUG-42982 Change-Id: I50dbff96d7d64a5213e6ea6ba7bb9429b21b1fb2 Reviewed-by: Jędrzej Nowacki --- 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 }