From e103775b1b243dc88ed2be83ab379d5504c38e14 Mon Sep 17 00:00:00 2001 From: Kurt Pattyn Date: Mon, 12 Aug 2013 21:11:03 +0200 Subject: [PATCH] Corrected close behaviour --- source/websocket.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/source/websocket.cpp b/source/websocket.cpp index 99bbee3..5915d2b 100644 --- a/source/websocket.cpp +++ b/source/websocket.cpp @@ -218,8 +218,6 @@ void WebSocket::close(WebSocketProtocol::CloseCode closeCode, QString reason) { if (!m_isClosingHandshakeSent) { - m_pSocket->flush(); - quint32 maskingKey = 0; if (m_mustMask) { @@ -239,18 +237,13 @@ void WebSocket::close(WebSocketProtocol::CloseCode closeCode, QString reason) QByteArray frame = getFrameHeader(WebSocketProtocol::OC_CLOSE, payload.size(), maskingKey, true); frame.append(payload); m_pSocket->write(frame); + m_pSocket->flush(); m_isClosingHandshakeSent = true; - //setSocketState(QAbstractSocket::ClosingState); Q_EMIT aboutToClose(); } - //if (m_isClosingHandshakeSent && m_isClosingHandshakeReceived) - { m_pSocket->close(); - setSocketState(QAbstractSocket::UnconnectedState); - Q_EMIT disconnected(); - } } /*! @@ -801,8 +794,6 @@ void WebSocket::processStateChanged(QAbstractSocket::SocketState socketState) if (webSocketState == QAbstractSocket::ConnectedState) { setSocketState(QAbstractSocket::ClosingState); - close(WebSocketProtocol::CC_GOING_AWAY); - //Q_EMIT aboutToClose(); } break; } @@ -927,8 +918,8 @@ void WebSocket::processFrame(WebSocketProtocol::OpCode opCode, QByteArray frame, } } } - m_isClosingHandshakeReceived = true; } + m_isClosingHandshakeReceived = true; close(static_cast(closeCode), closeReason); break; } -- 2.7.4