Simplify handshake reading functions
authorFrederik Gladhorn <frederik.gladhorn@digia.com>
Fri, 17 Jan 2014 11:39:05 +0000 (12:39 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 17 Jan 2014 12:45:59 +0000 (13:45 +0100)
Change-Id: I000243e717b79972caa676ff10f68901904f28c9
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
src/websockets/qwebsockethandshakerequest.cpp
src/websockets/qwebsockethandshakerequest_p.h
src/websockets/qwebsocketserver_p.cpp
tests/auto/handshakerequest/tst_handshakerequest.cpp

index 6708d4b..fbc25a7 100644 (file)
@@ -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
index a7829a0..c54ab2f 100644 (file)
@@ -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
index cb811c2..747586c 100644 (file)
@@ -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());
index ca36ff2..71de7b4 100644 (file)
@@ -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);