summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDyami Caliri <dyami@dragonframe.com>2016-03-07 20:27:09 -0800
committerDyami Caliri <dyami@dragonframe.com>2016-03-09 15:47:18 +0000
commitf8f1bac3f0df29e9a3103d385a0c5f9153a9eb66 (patch)
treedf0f34ea7295e4d255d51d94e5b0225973b7acc4 /src
parentd7db6c6c1944894737babf3958d0cff1e6222a22 (diff)
Accept LFCRLF to mark end of HTTP Headers
Some embedded servers use LF to mark the end of an individual header, but use CRLF to mark the end of all the headers. The GoPro WiFi interface does this, as an example. Change-Id: I227ab73622c84f439a6cf8703d020393c4d8bf69 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
Diffstat (limited to 'src')
-rw-r--r--src/network/access/qhttpnetworkreply.cpp5
-rw-r--r--src/network/access/qhttpnetworkreply_p.h2
2 files changed, 3 insertions, 4 deletions
diff --git a/src/network/access/qhttpnetworkreply.cpp b/src/network/access/qhttpnetworkreply.cpp
index a0f05523e3..f1b0a844c8 100644
--- a/src/network/access/qhttpnetworkreply.cpp
+++ b/src/network/access/qhttpnetworkreply.cpp
@@ -554,9 +554,8 @@ qint64 QHttpNetworkReplyPrivate::readHeader(QAbstractSocket *socket)
if (c == '\n') {
// check for possible header endings. As per HTTP rfc,
// the header endings will be marked by CRLFCRLF. But
- // we will allow CRLFCRLF, CRLFLF, LFLF
- if (fragment.endsWith("\r\n\r\n")
- || fragment.endsWith("\r\n\n")
+ // we will allow CRLFCRLF, CRLFLF, LFCRLF, LFLF
+ if (fragment.endsWith("\n\r\n")
|| fragment.endsWith("\n\n"))
allHeaders = true;
diff --git a/src/network/access/qhttpnetworkreply_p.h b/src/network/access/qhttpnetworkreply_p.h
index e8ed73fdac..4e09fd9110 100644
--- a/src/network/access/qhttpnetworkreply_p.h
+++ b/src/network/access/qhttpnetworkreply_p.h
@@ -175,7 +175,7 @@ private:
};
-class QHttpNetworkReplyPrivate : public QObjectPrivate, public QHttpNetworkHeaderPrivate
+class Q_AUTOTEST_EXPORT QHttpNetworkReplyPrivate : public QObjectPrivate, public QHttpNetworkHeaderPrivate
{
public:
QHttpNetworkReplyPrivate(const QUrl &newUrl = QUrl());