Marc Mutz f11a9b203b QNetworkRequest: Make header parsing locale-independent
The existing header parsing used C's tolower() function for
case-insensitive switching over the first character of the
header. However, that function's result depends on the current locale.

Since the parser is supposed to match the likes of "If-Match" and
"If-None-Match", matching may fail in locales, such as Turkish, where
tolower(I) is ı (LATIN SMALL LETTER DOTLESS I) (or I, if the former
isn't representable in the current charset), causing a False Negative.

To fix, use the US-ASCII-only QtMiscUtils::toAsciiLower() function,
which has the added advantage that it's inline.

Replace at(0) with front() as a drive-by.

The WASM copy of the function is hopelessly outdated (recognizes less
headers than the QNetworkRequest original).

[ChangeLog][QtNetwork] Fixed a bug where certain
QNetworkRequest::KnownHeaders wouldn't be recognized as such in
certain locales.

Task-number: QTBUG-109235
Change-Id: Ib147ab64803bb868647dd07ad657d785071242ea
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit 536e17372803e7c9557e4a59ae8dad0405f11cd2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2022-12-08 18:00:31 +00:00
2022-12-07 15:51:22 +01:00
2022-09-12 17:24:50 +00:00
2020-11-16 10:02:08 +02:00
2022-05-16 16:37:38 +02:00
2022-11-08 12:12:15 +02:00
2022-05-16 16:37:38 +02:00
2022-05-16 16:37:38 +02:00
Description
Qt Base (Core, Gui, Widgets, Network, ...)
822 MiB
Languages
C++ 84.3%
HTML 4.9%
C 3.9%
CMake 3.6%
Objective-C++ 2%
Other 0.8%