Fix process handshake for servers preferring lowercase http headers.
authorJędrzej Nowacki <jedrzej.nowacki@digia.com>
Tue, 8 Apr 2014 17:19:27 +0000 (17:19 +0000)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 9 Apr 2014 06:11:01 +0000 (08:11 +0200)
Task-number: QTBUG-37975
Change-Id: I81225a870aa92350e959b741aec34332eb8d171e
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
src/websockets/qwebsocket_p.cpp

index 7555eca..18962ff 100644 (file)
@@ -887,21 +887,21 @@ void QWebSocketPrivate::processHandshake(QTcpSocket *pSocket)
             const QStringList headerField = headerLine.split(QStringLiteral(": "),
                                                              QString::SkipEmptyParts);
             if (headerField.size() == 2) {
-                headers.insertMulti(headerField[0], headerField[1]);
+                headers.insertMulti(headerField[0].toLower(), headerField[1]);
             }
             headerLine = readLine(pSocket);
         }
 
-        const QString acceptKey = headers.value(QStringLiteral("Sec-WebSocket-Accept"),
+        const QString acceptKey = headers.value(QStringLiteral("sec-websocket-accept"),
                                                 QString());
-        const QString upgrade = headers.value(QStringLiteral("Upgrade"), QString());
-        const QString connection = headers.value(QStringLiteral("Connection"), QString());
+        const QString upgrade = headers.value(QStringLiteral("upgrade"), QString());
+        const QString connection = headers.value(QStringLiteral("connection"), QString());
 //        unused for the moment
-//        const QString extensions = headers.value(QStringLiteral("Sec-WebSocket-Extensions"),
+//        const QString extensions = headers.value(QStringLiteral("sec-websocket-extensions"),
 //                                                 QString());
-//        const QString protocol = headers.value(QStringLiteral("Sec-WebSocket-Protocol"),
+//        const QString protocol = headers.value(QStringLiteral("sec-websocket-protocol"),
 //                                               QString());
-        const QString version = headers.value(QStringLiteral("Sec-WebSocket-Version"),
+        const QString version = headers.value(QStringLiteral("sec-websocket-version"),
                                               QString());
 
         if (Q_LIKELY(httpStatusCode == 101)) {