aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-01-17 12:39:05 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-17 13:45:59 +0100
commitea7c77e87f317cd72278ba4f9955b74b9cdfeedf (patch)
treecbe3ed239a8ac9de75611004c6efced2703f004b
parent3e31e8e89ed6ca8e85ce89ef444605f11e9e3d5b (diff)
Simplify handshake reading functions
Change-Id: I000243e717b79972caa676ff10f68901904f28c9 Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
-rw-r--r--src/websockets/qwebsockethandshakerequest.cpp21
-rw-r--r--src/websockets/qwebsockethandshakerequest_p.h8
-rw-r--r--src/websockets/qwebsocketserver_p.cpp2
-rw-r--r--tests/auto/handshakerequest/tst_handshakerequest.cpp6
4 files changed, 12 insertions, 25 deletions
diff --git a/src/websockets/qwebsockethandshakerequest.cpp b/src/websockets/qwebsockethandshakerequest.cpp
index 6708d4b..fbc25a7 100644
--- a/src/websockets/qwebsockethandshakerequest.cpp
+++ b/src/websockets/qwebsockethandshakerequest.cpp
@@ -192,18 +192,18 @@ QUrl QWebSocketHandshakeRequest::requestUrl() const
/*!
\internal
*/
-QTextStream &QWebSocketHandshakeRequest::readFromStream(QTextStream &textStream)
+void QWebSocketHandshakeRequest::readHandshake(QTextStream &textStream)
{
m_isValid = false;
clear();
if (Q_UNLIKELY(textStream.status() != QTextStream::Ok))
- return textStream;
+ return;
const QString requestLine = textStream.readLine();
const QStringList tokens = requestLine.split(' ', QString::SkipEmptyParts);
if (Q_UNLIKELY(tokens.length() < 3)) {
m_isValid = false;
clear();
- return textStream;
+ return;
}
const QString verb(tokens.at(0));
const QString resourceName(tokens.at(1));
@@ -214,7 +214,7 @@ QTextStream &QWebSocketHandshakeRequest::readFromStream(QTextStream &textStream)
if (Q_UNLIKELY(!conversionOk)) {
clear();
m_isValid = false;
- return textStream;
+ return;
}
QString headerLine = textStream.readLine();
m_headers.clear();
@@ -223,7 +223,7 @@ QTextStream &QWebSocketHandshakeRequest::readFromStream(QTextStream &textStream)
QString::SkipEmptyParts);
if (Q_UNLIKELY(headerField.length() < 2)) {
clear();
- return textStream;
+ return;
}
m_headers.insertMulti(headerField.at(0), headerField.at(1));
headerLine = textStream.readLine();
@@ -246,7 +246,7 @@ QTextStream &QWebSocketHandshakeRequest::readFromStream(QTextStream &textStream)
(void)(*i).toUInt(&ok);
if (!ok) {
clear();
- return textStream;
+ return;
}
const QWebSocketProtocol::Version ver =
QWebSocketProtocol::versionFromString((*i).trimmed());
@@ -294,15 +294,6 @@ QTextStream &QWebSocketHandshakeRequest::readFromStream(QTextStream &textStream)
(!connectionValues.contains(QStringLiteral("upgrade"), Qt::CaseInsensitive)));
if (Q_UNLIKELY(!m_isValid))
clear();
- return textStream;
-}
-
-/*!
- \internal
- */
-QTextStream &operator >>(QTextStream &stream, QWebSocketHandshakeRequest &request)
-{
- return request.readFromStream(stream);
}
QT_END_NAMESPACE
diff --git a/src/websockets/qwebsockethandshakerequest_p.h b/src/websockets/qwebsockethandshakerequest_p.h
index a7829a0..c54ab2f 100644
--- a/src/websockets/qwebsockethandshakerequest_p.h
+++ b/src/websockets/qwebsockethandshakerequest_p.h
@@ -86,10 +86,9 @@ public:
QString resourceName() const;
QString host() const;
+ void readHandshake(QTextStream &textStream);
+
private:
- QTextStream &readFromStream(QTextStream &textStream);
- Q_AUTOTEST_EXPORT friend QTextStream &operator >>(QTextStream &stream,
- QWebSocketHandshakeRequest &request);
int m_port;
bool m_isSecure;
@@ -103,9 +102,6 @@ private:
QUrl m_requestUrl;
};
-Q_AUTOTEST_EXPORT QTextStream & operator >>(QTextStream &stream,
- QWebSocketHandshakeRequest &request);
-
QT_END_NAMESPACE
#endif // QWEBSOCKETHANDSHAKEREQUEST_P_H
diff --git a/src/websockets/qwebsocketserver_p.cpp b/src/websockets/qwebsocketserver_p.cpp
index cb811c2..747586c 100644
--- a/src/websockets/qwebsocketserver_p.cpp
+++ b/src/websockets/qwebsocketserver_p.cpp
@@ -395,7 +395,7 @@ void QWebSocketServerPrivate::handshakeReceived()
QWebSocketHandshakeRequest request(pTcpSocket->peerPort(), isSecure);
QTextStream textStream(pTcpSocket);
- textStream >> request;
+ request.readHandshake(textStream);
if (request.isValid()) {
QWebSocketCorsAuthenticator corsAuthenticator(request.origin());
diff --git a/tests/auto/handshakerequest/tst_handshakerequest.cpp b/tests/auto/handshakerequest/tst_handshakerequest.cpp
index ca36ff2..71de7b4 100644
--- a/tests/auto/handshakerequest/tst_handshakerequest.cpp
+++ b/tests/auto/handshakerequest/tst_handshakerequest.cpp
@@ -206,7 +206,7 @@ void tst_HandshakeRequest::tst_invalidStream()
textStream << dataStream;
textStream.seek(0);
- textStream >> request;
+ request.readHandshake(textStream);
QVERIFY(!request.isValid());
QCOMPARE(request.port(), 80);
@@ -238,7 +238,7 @@ void tst_HandshakeRequest::tst_multipleValuesInConnectionHeader()
textStream << header;
textStream.seek(0);
- textStream >> request;
+ request.readHandshake(textStream);
QVERIFY(request.isValid());
QCOMPARE(request.port(), 80);
@@ -268,7 +268,7 @@ void tst_HandshakeRequest::tst_multipleVersions()
textStream << header;
textStream.seek(0);
- textStream >> request;
+ request.readHandshake(textStream);
QVERIFY(request.isValid());
QCOMPARE(request.port(), 80);