From bb6ba17019b596049de3ffd31a79f75f597e7f41 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 10 Apr 2018 14:09:04 +0200 Subject: [PATCH] Treat the Content-Disposition header as a known header Change-Id: I307f67b10759d17f603a340b14266ab47d195497 Reviewed-by: Timur Pocheptsov --- src/network/access/qnetworkrequest.cpp | 3 +++ .../network/access/qnetworkrequest/tst_qnetworkrequest.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index 1d7c5bec51..9ce2128ead 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -889,6 +889,8 @@ static int parseHeaderName(const QByteArray &headerName) return QNetworkRequest::ContentLengthHeader; else if (qstricmp(headerName.constData(), "cookie") == 0) return QNetworkRequest::CookieHeader; + else if (qstricmp(headerName.constData(), "content-disposition") == 0) + return QNetworkRequest::ContentDispositionHeader; break; case 'l': @@ -944,6 +946,7 @@ static QVariant parseHeaderValue(QNetworkRequest::KnownHeaders header, const QBy case QNetworkRequest::UserAgentHeader: case QNetworkRequest::ServerHeader: case QNetworkRequest::ContentTypeHeader: + case QNetworkRequest::ContentDispositionHeader: // copy exactly, convert to QString return QString::fromLatin1(value); diff --git a/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp b/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp index bc9144e40e..50c7ddb0b6 100644 --- a/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp +++ b/tests/auto/network/access/qnetworkrequest/tst_qnetworkrequest.cpp @@ -373,6 +373,9 @@ void tst_QNetworkRequest::rawHeaderParsing_data() << QVariant::fromValue(QList() << cookie << cookie2) << true << "Set-Cookie" << "a=b; path=/\nc=d"; + QTest::newRow("Content-Disposition") << QNetworkRequest::ContentDispositionHeader + << QVariant("attachment; filename=\"test.txt\"") << true + << "Content-Disposition" << "attachment; filename=\"test.txt\""; } void tst_QNetworkRequest::rawHeaderParsing()