summaryrefslogtreecommitdiffstats
path: root/src/network/access
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-12-08 11:57:41 +0100
committerMarc Mutz <marc.mutz@qt.io>2022-12-09 06:22:06 +0000
commit1ecbab76b6e04f9eec9dfc6e1d63d587f3d8fc12 (patch)
treef012eb7caf8576d1150734e304efbc30acff0fc5 /src/network/access
parent4d43b995bf2d1f059704e45d64c38b3238cc64a3 (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.cpp24
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