summaryrefslogtreecommitdiffstats
path: root/src/network
Commit message (Collapse)AuthorAgeFilesLines
* Http2: Don't skip checking flag for trailing HEADERS frame if PRIORITYMårten Nordheim2023-04-011-9/+9
| | | | | | | | | | | | If the trailing frame just had PRIORITY we would early-return, though this meant we didn't check if the frame had the END_STREAM flag set, leading some requests to certain servers to hang. Fixes: QTBUG-111417 Pick-to: 6.5 6.4 6.2 Change-Id: Iac174dc5aeca30d5d19fae35f303983de9841847 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io>
* Remove loopback network exampleMårten Nordheim2023-03-233-3/+2
| | | | | | | | | | It doesn't showcase anything interesting that other examples don't already show off. Pick-to: 6.5 Change-Id: Ie95c3ddb3ff52b3beab54bd6fa75fb75ae5c7ba5 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io>
* QNetworkDiskCache: Update doc snippetsMårten Nordheim2023-03-231-3/+6
| | | | | | | | | | | | We should encourage users to use the system cache directory. We should also encourage users to not use the char* QString-ctors. QStandardPaths::CacheLocation is documented to never be empty, so use it in this manner. Pick-to: 6.5 Change-Id: I1f050feda5b0a8e7c23fbed5db904bb0180b45f0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Replace 'Network Examples' overview imageMårten Nordheim2023-03-163-1/+1
| | | | | | | | | | It's a teeny-tiny picture of some FTP example that was likely removed for Qt 5. At the very least it happened before I joined Qt. Pick-to: 6.5 Change-Id: I85a9fcffc35ad63e355cf4d3dd784d4ed7ca2872 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* QObject: implement startTimer(int) in terms of startTimer(chrono)Ahmad Samir2023-03-111-1/+3
| | | | | | | | | | I.e. use chrono first, this means the API isn't limited by the size of int, but by the size of whatever chrono::milliseconds uses (typically int64_t), and chrono units are much more readable as well. Task-number: QTBUG-110059 Change-Id: Ie7f2d90864782361a89866693011803be6f8545e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add test function for private networkYAMAMOTO Atsushi2023-03-112-7/+26
| | | | | | | | | | Add a function QHostAddress::isPrivateUse to test for IPv4 private networks and IPv6 unique local unicast addresses. Task-number: QTBUG-111211 Change-Id: Ic8abefa7aa974fa83118aeb9f2506a5713f79f0d Reviewed-by: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNetwork[http]: Discard or ignore corrupted cache entriesMårten Nordheim2023-03-092-1/+7
| | | | | | | | | | | | | | | | In an attempt to avoid situations like the linked bug-report from happening again, discard cached entries with no headers and ignore entries where the payload is smaller than what the header specified (if it specified anything). In a future revision we might want to add a length to the cache's metadata, potentially with a checksum trailing the content. Task-number: QTBUG-111397 Pick-to: 6.5 6.4 6.2 Change-Id: Ie40149ffdaff7886bcd44cbd45605bdb7918e105 Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QNetworkDiskCache: use QSaveFileMårten Nordheim2023-03-092-47/+23
| | | | | | | | | | | | | | | | QTemporaryFile is not designed to promote temporary files to non-temporary files. So, it, quite importantly, does not care if the content of the files are flushed to disk before renaming it into its 'final' destination. This is what QSaveFile is for. This was much more time-consuming than intended since I had to debug this quirk about calling size(). Pick-to: 6.5 6.4 6.2 Fixes: QTBUG-111397 Change-Id: I15b300f6a5748ad3a0be983545ea621269a12ecd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNetworkInterface/Unix: replace one Q_ASSERT with static_assertsThiago Macieira2023-03-041-1/+2
| | | | | | | | | | This requires compilers with constexpr offsetof(), which Clang seems to be since at least 3.0 and GCC since 4.7, both of which are way older than anything we need to support. Pick-to: 6.5 Change-Id: I7f354474adce419ca6c2fffd1748b3dcfc616f4a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Delete the Network Download (Manager)? examplesMårten Nordheim2023-03-021-2/+0
| | | | | | | | | | | | | | | | | | | | Their use of QtNetwork is already covered by the HTTP example. While showcasing that QNAM easily deals with multiple simultaneous requests, waiting until finished() is emitted to write anything is not exactly idiomatic. And managing your own queue to only have one request running at a time is a weird example for an asynchronous framework. In this regard, having an example for a complete download manager (with a GUI) would be interesting, but may ultimately be very time-consuming to make for limited gain. Task-number: QTBUG-110643 Pick-to: 6.5 Change-Id: I6b2c1546b85fa89ab7ce1ff5565b0293b5710b74 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io>
* Doc: fix links to renamed network examplesVolker Hilsheimer2023-03-012-3/+3
| | | | | | Pick-to: 6.5 Change-Id: I8790bb660070a092e268294b5640c6d5af41deb0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Doc: Remove duplicate wordsAndreas Eliasson2023-02-282-2/+2
| | | | | | Change-Id: Ia7a38a1035bd34d00f20351a0adc3927e473b2e7 Pick-to: 6.5 6.4 6.2 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Make feature `topleveldomain` optional in wasm buildPiotr Wierciński2023-02-171-1/+1
| | | | | | | | | | | This feature should not be needed in most wasm applications. Disabling it by default can save ~50KB in QtQuick apps. Task-number: QTBUG-110843 Change-Id: Iac0a51bfd016db1da40b59ed32e3faf6ad4267e0 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Delete references to deleted examplesMårten Nordheim2023-02-161-2/+0
| | | | | | | | | The bearer code hasn't been in Qt for some years. Pick-to: 6.5 6.4 6.2 Change-Id: Id69ad1ce5035a0970f3507d4b6ba4a5549bf1d6c Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Delete googlesuggestMårten Nordheim2023-02-141-1/+0
| | | | | | | | | | | As a networking example it doesn't contribute much. But it has some interesting uses of widget/events Pick-to: 6.5 Change-Id: I194d32e6a304ae41819c20751e9f1ee1d9b5abdb Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* src: Remove remains of qmake conversion from CMakeLists.txt filesFriedemann Kleint2023-02-102-14/+6
| | | | | | Pick-to: 6.5 Change-Id: Id644d322a602038403bb7f46c532744575fbf6d3 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* QPasswordDigestor: add OpenSSL 3.0 support to deriveKeyPbkdf2Jan Grulich2023-02-092-2/+101
| | | | | | | | | | | Use OpenSSL 3.0 in deriveKeyPbkdf2() if it's available. This currently produces same results, but in the future we will have possibilities to force some additional compliancy, for example we can enable SP800-132 compliance checks, which are not enabled currently because it would differ from the original implementation. Change-Id: Ia7a7cc91ea3f20c9d76e39309daa7c97cd7ad5c6 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QtMiscUtils: add some more character helpersAhmad Samir2023-02-071-2/+4
| | | | | | | | | | | | | isHexDigit, isOctalDigit, isAsciiDigit, isAsciiLower, isAsciiUpper, isAsciiLetterOrNumber. This de-duplicates some code through out. Rename two local lambdas that were called "isAsciiLetterOrNumber" to not conflict with the method in QtMiscUtils. Change-Id: I5b631f95b9f109136d19515f7e20b8e2fbca3d43 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Revert "Revert "Add support for MultiABI with custom install dir of the ↵Alexey Edelev2023-02-021-1/+3
| | | | | | | | | | | | android-build"" This reverts commit d7e8d5bb1b5a9c4b21a3d824780c672eaf4e56b1. Reason for revert: Found a working solution for the issue. Change-Id: Ia720cc63ece9dfb1a24067cdd9c3d79d4edbe3be Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QtNetwork: Split out QNativeSocketEnginePrivateFriedemann Kleint2023-02-027-171/+203
| | | | | | | | | | | The aim is to have fewer files including <windows.h>. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: Id9cc08f54b5daf6d7e317fad27036dc2efaacbb8 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Don't include qnetworkproxy_generic.cpp for iOSTor Arne Vestbø2023-02-011-1/+1
| | | | | | | | We already have the necessary machinery in qnetworkproxy_darwin.cpp Pick-to: 6.5 Change-Id: I01d99c825ed794f1ff5ba229e64f9963b819228c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Revert "Add support for MultiABI with custom install dir of the android-build"Alexandru Croitor2023-02-011-3/+1
| | | | | | | | | | This reverts commit 979a21dc4ee0c6f483c6b55e9242a153d659ab6f. Reason for revert: Caused QTBUG-110836 Task-number: QTBUG-110836 Change-Id: I4f31018954e6bb0f4e7b6db0df76d04c0a56d9b1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QtNetwork/Windows: Add exclusions for CMake Unity (Jumbo) buildsFriedemann Kleint2023-01-311-0/+19
| | | | | | | | | | | | The "interface" define in windows.h causes clashes with variables named "interface". It cannot be undef'ed since the winsock headers also uses it. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: Id2daedfd6c57aae39a1fdfe92482f17884b68ef5 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Remove redundant qsharedpointer.h #includesAhmad Samir2023-01-316-7/+2
| | | | | | | In some cases added #include <QtCore/qshareddata.h>. Change-Id: Idc84c4ad6b0bd58e1a67af335dfcff67fdf80b2a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtNetwork: Disambiguate static variablesFriedemann Kleint2023-01-313-12/+12
| | | | | | | | | They causes clashes in CMake Unity (Jumbo) builds. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: Ifd0539c3b56dc395a860de927736f60ad766224a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* qnetworkproxy_mac: use API available both on iOS and macOSTimur Pocheptsov2023-01-303-41/+109
| | | | | | | | | | | | | | | To extract system proxies, the one we used previously, was not available on iOS and thus we could not obtain system proxies there. Support is limited - no such things, as SOCKS/FTP/etc. proxies, only PAC (auto configuration), and HTTP/HTTPS. There are no keys to extract info about HTTPS, so instead we'll use CFNetworkCopyProxiesForURL ( looks like this enables exclusion lists (which are hidden) functionality and apparently from the system point of view HTTP/HTTPS are the same. Fixes: QTBUG-39869 Change-Id: I73af719a2e2b5cded706e6b3faa4b8eaa879352b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add support for MultiABI with custom install dir of the android-buildFab Stz2023-01-301-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now, "multi abi builds" of android projects works only if the android-build installation doesn't use custom install dirs (INSTALL_PREFIX, INSTALL_BINDIR...) At the same time, it fixes QTBUG-106533. The patches are the same as the ones in that bugreport. Add new items to android-*-deployment-settings.json: qtDataDirectory qtLibsDirectory qtLibExecsDirectory qtPluginsDirectory qtQmlDirectory Update androiddeployqt to be able to get files from their install location BTW (fixes QTBUG-106533): Install src/android/templates into INSTALL_DATADIR Install src/3rdparty/gradle into INSTALL_DATADIR Install src/android/java files into INSTALL_DATADIR Install all jars into INSTALL_DATADIR Add missing path to target_qt.conf Update target_qt.conf to have all path. Otherwise qmake wouldn't have the path when installing the android-build with custom install dirs like INSTALL_LIBDIR & friends Add support for a new cmake variable that can be set at build time of the android projects: QT_ANDROID_PATH_CMAKE_DIR_${abi} (Name chosen as brother of QT_HOST_PATH_CMAKE_DIR) Pick-to: 6.5 Fixes: QTBUG-106533 Fixes: QTBUG-107207 Change-Id: Ia3751362ab1b5f877ecafbe02f263feac167119c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QtNetwork: Remove duplicated QT_DECL_METATYPEFriedemann Kleint2023-01-251-3/+0
| | | | | | | | | | | | | | | | It causes conflicts in CMake Unity (Jumbo) builds: qnetworkreplyimpl_p.h:161:1: error: specialization of QMetaTypeId<QSharedPointer<char> >after instantiation 161 | QT_DECL_METATYPE_EXTERN_TAGGED(QSharedPointer<char>, QSharedPointer_char, Q_NETWORK_EXPORT) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ qtbase/src/network/access/qnetworkreplyimpl_p.h:161:1: error: redefinition of struct QMetaTypeId<QSharedPointer<char> > qtbase/src/corelib/kernel/qmetatype.h:1711:1: note: previous definition of struct QMetaTypeId<QSharedPointer<char> > 1711 | QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER(Q_DECLARE_METATYPE_TEMPLATE_SMART_POINTER_ITER) Task-number: QTBUG-109394 Pick-to: 6.5 Change-Id: I91d13a99dd0f5602ba8d4d8f3baf7659cf63aeef Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QHttp1Configuration: fix UB (inactive union member access)Marc Mutz2023-01-182-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Any QHttp1Configuration object created has 'ShortData data' as active member. std::exchange()ing or qt_ptr_swap()ping 'Private *d', then, is accessing the inactive member of the union, and that's UB. Fix by swapping and copying the whole union, as opposed to any of its members, and, in the move constructor, activating Private *d. This is now safe, as assigning to 'd' ends 'data's life-time and starts 'd's. Even if we assign a well-formed object to a moved-from object, we either swap or copy the whole union, so SEP. For self-move-assignment in the moved-from state (Hinnant Criterion), we're using std::swap() on the whole union, so SEP. In addition, activating `Private *d` in moved-from objects means that a future ~Public's use of unconditional 'delete d' won't invoke UB, either. Thanks to Peppe for insisting on fixing this. Pick-to: 6.5 Change-Id: Ic1323b8416d6b17ae21768c625de1daba0944133 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Update description of topleveldomain featurePeter Varga2023-01-173-7/+5
| | | | | | | | | | | | qTopLevelDomain() is misleading in the configure summary. The function has been removed by commit 50b3097683 Also clean up the topleveldomain files. Pick-to: 6.5 Change-Id: Ib577962909a83f4f41d1660a26fd80b37803ae18 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QNetworkDiskCache: optimize expire()Ahmad Samir2023-01-121-30/+39
| | | | | | | | | | - Use a std::vector<struct> that has the needed info already cached (e.g. now size() isn't computed twice) - Only sort the cache items if the size exceeds the cache limit and there are files to remove Change-Id: I69a7a5d1afb26d156c4babddf6b357ec68d569d1 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Documentation: Port code snippets to new connection syntaxFriedemann Kleint2023-01-113-12/+7
| | | | | | | Pick-to: 6.5 6.4 6.2 Task-number: PYSIDE-2182 Change-Id: I5f800cf3a4a7afefbc36a79372fc35449fa953f0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Use QFileInfo's file times in UTC for file timestampsAhmad Samir2023-01-041-2/+2
| | | | | | | | | | | This is inherently faster than getting it in UTC from the underlying native API stat call, then converting it to the Local Time Zone just to compare them. The same goes for any use-case where you get a QDateTime then the first thing you do is call t.to{Msec,Secs}SinceEpoch(). Change-Id: Ic13bcfd99b937c9f10f102ea7741832950a553c6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Fix clang-cl compiler warningsPeter Varga2022-12-152-3/+7
| | | | | | | | | | | | - known but unsupported action 'shared' for '#pragma section' [-Wignored-pragmas] - #include resolved using non-portable Microsoft search rules [-Wmicrosoft-include] - variable is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized] Change-Id: I466352ff97a2bcf07e706c045568e581dd08a94e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Export QAuthenticatorPrivate for use in QtWebSocketsMårten Nordheim2022-12-151-1/+1
| | | | | Change-Id: I0e3e35d2b9d0fdce37ede5781b86741f7604257d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Adapt to QTimeZone replacing Qt::TimeSpec usageEdward Welbourne2022-12-102-7/+11
| | | | | | | | | | | | In the process actually handle all time-spec cases in various places that only handled UTC or LocalTime, or at least note that they don't where that's not practical. Also tidy up header ordering and ensure QDateTime's header is included wherever it's used, while adding the include for QTimeZone where needed. Task-number: QTBUG-108199 Change-Id: Ic1a5cdf0aaf737bf1396aa8ac58ce2004cef7e19 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QOffsetStringArray: add contains() methodMarc Mutz2022-12-091-12/+12
| | | | | | | ... use it in QNetworkReplyWasmImpl. Change-Id: I648f02fcafda43af7ed9771cc1c7e2e2a6d38504 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QHttp1Configuration: make fit for releaseMarc Mutz2022-12-092-49/+90
| | | | | | | | | | | | | | | | - inline move special member functions and swap() - add qHash() overload (EqualityComparable types should be QtHashable) - unexport this non-polymoprphic class, export only individual members - don't use a heap-allocated Private just to hold a single number - use inline storage until we actually need to use external state - limit the max. connections to 255 to fit into an 8-bit value - document min/max of the numberOfConnectionsPerHost() property - use qsizetype instead of un-Qt-ish unsigned int Task-number: QTBUG-108215 Task-number: QTBUG-25280 Change-Id: Ia9841f2dbabd13219ffd813aff3947aa0c8bdc0c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QNetworkAccessManager: Configurable number of HTTP1 TCP connectionsMarkus Goetz2022-12-099-4/+225
| | | | | | | | | | | Introduces new class QHttp1Configuration. [ChangeLog][QtNetwork][QHttp1Configuration] New class. Fixes: QTBUG-25280 Fixes: QTBUG-108215 Change-Id: Ide6cee23946e5001befb8fab34edf10b8a66e02b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QNetworkRequest: don't assume QByteArray::constData() is NUL-terminatedMarc Mutz2022-12-082-21/+29
| | | | | | | | | | | | | | | | | | | | | It isn't guaranteed to be, for QByteArrays originating from QByteArray::fromRawData(). Use the four-arg qstrnicmp() overload (with defaulted fourth argument), wrapped in a lambda to DRY, instead of qstricmp(), which may produce incorrect results or even read past user-supplied buffers. There were also uses of QByteArray::compare(c-literal, Qt::CaseInsensitive). They're not affected by the problem, but QByteArray is scheduled to lose its string-y API parts and become a container of octets in the future. Besides, the lambda solution is much nicer on the eye. Pick-to: 6.4 6.2 5.15 Change-Id: I1e0f9003082f4158edecc6fe8cf3c0518e5403f5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QNetworkRequest: Make header parsing locale-independentMarc Mutz2022-12-082-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Pick-to: 6.4 6.2 5.15 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>
* networklistmanager: allow building with LLVM-MinGWCristian Adam2022-12-031-0/+1
| | | | | | | | At https://github.com/mstorsjo/llvm-mingw/issues/307 we can see that LLVM-MinGW is able to build qtbase with winrt headers and cxx20 feature. Change-Id: Ib4b5df7481f684ebdb26cbc4246bdf86ff3dd648 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Fix typo in documentation, silence qdoc warningVolker Hilsheimer2022-11-301-1/+1
| | | | | | | | | | | qdoc was telling us that it can't link to "Adding OpeSSL Support for Android", because there is no such thing. Fix spelling of OpenSSL to fix the link and silence qdoc. Pick-to: 6.4 6.2 Change-Id: Idb583b6b7360c4e37c7e79c3d70327e99d7189bc Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Ocsp: Fix openssl feature requirementMårten Nordheim2022-11-301-1/+1
| | | | | | | | We now only support 1.1.1+, so drop the version limitation. Change-Id: Ife1e46c31bf6984159535b5739dd43609dcef714 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QHostAddress: unexport QIPv6AddressThiago Macieira2022-11-181-1/+1
| | | | | | | | Only affect MSVC anyway. For all the others, since everything is inline, there's nothing to import or export. Change-Id: Id8e48e8f498c4a029619fffd17288befde9b5f83 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Windows: centralize how we handle error messagesYuhang Zhao2022-11-161-15/+10
| | | | | | | | | | | | | | | | Currently QtBase contains multiple implementation of how to get the Win32 and COM error messages, and they are almost exactly the same, what's worse, Qt already has a private QSystemError class to do such things, so we are re-inventing the wheel in many places. This patch removes all other custom error message implementations besides the QSystemError one. And since there are a lot of places need the COM error message, move the implementation to QSystemError so that it can handle both Win32 error and COM error. Since I'm touching these lines anyway, break them into short lines if they are above the length limit. Change-Id: I1067c874011800303f0f114b5cb8830ac6810fc0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* getProxyAuth: stop using deprecated APITimur Pocheptsov2022-11-081-42/+64
| | | | | | | | | | | | | A new SDK marked several functions in SecKeychain family as deprecated. Fortunately for us, Security framework on the whole is not deprecated and thus provides an alternative API to inspect keychain items, and also much nicer one - instead of having a function with 15 parameters, those parameters are 'collapsed' into one, the 'query', which is a dictionary. Pick-to: 6.4 6.2 Fixes: QTBUG-108196 Change-Id: I602d1a846ff9683cac724859a776de2b901f5c1c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Port from container::count() and length() to size() - V5Marc Mutz2022-11-032-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to handle typedefs and accesses through pointers, too: const std::string o = "object"; auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); }; auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) { auto exprOfDeclaredType = [&](auto decl) { return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o); }; return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes)))); }; auto renameMethod = [&] (ArrayRef<StringRef> classes, StringRef from, StringRef to) { return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)), callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))), changeTo(cat(access(o, cat(to)), "()")), cat("use '", to, "' instead of '", from, "'")); }; renameMethod(<classes>, "count", "size"); renameMethod(<classes>, "length", "size"); except that the on() matcher has been replaced by one that doesn't ignoreParens(). a.k.a qt-port-to-std-compatible-api V5 with config Scope: 'Container'. Added two NOLINTNEXTLINEs in tst_qbitarray and tst_qcontiguouscache, to avoid porting calls that explicitly test count(). Change-Id: Icfb8808c2ff4a30187e9935a51cad26987451c22 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QHostAddress: Fix incorrect comparison against 'Any'Mårten Nordheim2022-11-021-1/+1
| | | | | | | | | | | | When 'this' is IPv6 and 'other' is Any then there is no point in testing 'other's IPv6 address. Added extra tests against QHostAddress::Any*. Pick-to: 6.4 6.2 5.15 Fixes: QTBUG-108103 Change-Id: I09f32b1b147b1ec8380546c91cd89684a6bebe2e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Trim headers considered unsafe from the WASM net requestsMikolaj Boc2022-10-291-6/+49
| | | | | | | | | | | | | | | Some headers cannot be sent via XMLHttpRequest. In case one of those is assigned to a network request, the header will now be trimmed on WASM so that the request continues. Qt will print a warning on each request that had its headers trimmed. The list seems stable so it is not a lot of burden to sync Qt with it on potential (unlikely) changes. Fixes: QTBUG-95585 Change-Id: Id504ef43ad7e466ab567d4646d7ca00d6b7920d7 Reviewed-by: Aleksandr Reviakin <aleksandr.reviakin@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>