diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-12-08 11:57:41 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2022-12-09 06:22:06 +0000 |
commit | 1ecbab76b6e04f9eec9dfc6e1d63d587f3d8fc12 (patch) | |
tree | f012eb7caf8576d1150734e304efbc30acff0fc5 /src/network/access | |
parent | 4d43b995bf2d1f059704e45d64c38b3238cc64a3 (diff) |
QOffsetStringArray: add contains() method
... use it in QNetworkReplyWasmImpl.
Change-Id: I648f02fcafda43af7ed9771cc1c7e2e2a6d38504
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/network/access')
-rw-r--r-- | src/network/access/qnetworkreplywasmimpl.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/network/access/qnetworkreplywasmimpl.cpp b/src/network/access/qnetworkreplywasmimpl.cpp index a10d2f843a..b7fec9345a 100644 --- a/src/network/access/qnetworkreplywasmimpl.cpp +++ b/src/network/access/qnetworkreplywasmimpl.cpp @@ -9,6 +9,7 @@ #include <QtCore/qcoreapplication.h> #include <QtCore/qfileinfo.h> #include <QtCore/qthread.h> +#include <QtCore/private/qoffsetstringarray_p.h> #include <QtCore/private/qtools_p.h> #include <private/qnetworkaccessmanager_p.h> @@ -18,8 +19,12 @@ #include <emscripten/fetch.h> QT_BEGIN_NAMESPACE + +using namespace Qt::StringLiterals; + namespace { -constexpr const char *BannedHeaders[] = { + +static constexpr auto BannedHeaders = qOffsetStringArray( "accept-charset", "accept-encoding", "access-control-request-headers", @@ -39,19 +44,14 @@ constexpr const char *BannedHeaders[] = { "trailer", "transfer-encoding", "upgrade", - "via", -}; + "via" +); -bool isUnsafeHeader(QLatin1StringView header) +bool isUnsafeHeader(QLatin1StringView header) noexcept { - return header.startsWith(QStringLiteral("proxy-"), Qt::CaseInsensitive) - || header.startsWith(QStringLiteral("sec-"), Qt::CaseInsensitive) - || std::any_of(std::begin(BannedHeaders), std::end(BannedHeaders), - [&header](const char *bannedHeader) { - return 0 - == header.compare(QLatin1StringView(bannedHeader), - Qt::CaseInsensitive); - }); + return header.startsWith("proxy-"_L1, Qt::CaseInsensitive) + || header.startsWith("sec-"_L1, Qt::CaseInsensitive) + || BannedHeaders.contains(header, Qt::CaseInsensitive); } } // namespace |