summaryrefslogtreecommitdiff
path: root/src/websockets/qwebsocket_p.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-10-21 11:57:37 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2014-11-19 16:40:39 +0100
commit06df2dac55dfac912b7eb1cbb6c29f2b0594ae10 (patch)
tree944282332b22a6a26b1930ab7f0c3cd09fdd654a /src/websockets/qwebsocket_p.h
parentc47ce34597b085b6c6ab03a12e2ed6b246f330ff (diff)
downloadqtwebsockets-06df2dac55dfac912b7eb1cbb6c29f2b0594ae10.tar.gz
Make the websocket handshake statefull
The websocket handshake could not handle being split over multiple TCP packets since it was entirely handled in on function. This patch splits it into a socket state making it possible to process over multiple incoming packaets. Change-Id: I3c45892ee6f1bb67062d561e9fbd2d7296f1208e Task-number: QTBUG-40878 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'src/websockets/qwebsocket_p.h')
-rw-r--r--src/websockets/qwebsocket_p.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/websockets/qwebsocket_p.h b/src/websockets/qwebsocket_p.h
index f13e08d..9d4ba1c 100644
--- a/src/websockets/qwebsocket_p.h
+++ b/src/websockets/qwebsocket_p.h
@@ -224,6 +224,19 @@ private:
QMaskGenerator *m_pMaskGenerator;
QDefaultMaskGenerator m_defaultMaskGenerator;
+ enum HandshakeState {
+ NothingDoneState,
+ ReadingStatusState,
+ ReadingHeaderState,
+ ParsingHeaderState,
+ AllDoneState
+ } m_handshakeState;
+ QByteArray m_statusLine;
+ int m_httpStatusCode;
+ int m_httpMajorVersion, m_httpMinorVersion;
+ QString m_httpStatusMessage;
+ QMap<QString, QString> m_headers;
+
friend class QWebSocketServerPrivate;
};