summaryrefslogtreecommitdiffstats
path: root/src/network
Commit message (Collapse)AuthorAgeFilesLines
* Remove .prev_CMakeLists.txt filesJoerg Bornemann2021-01-122-446/+0
| | | | | | | | | | Those serve no purpose anymore, now that the .pro files are gone. Task-number: QTBUG-88742 Change-Id: I39943327b8c9871785b58e9973e4e7602371793e Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* QSslCertificate: Guard against accessing empty QByteArrayRobert Loehning2021-01-111-1/+3
| | | | | | | | Fixes oss-fuzz issue 29276. Pick-to: 5.12 5.15 6.0 Change-Id: I57b0c26e5377bd6b82d9f044ae1d1d13acec996a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Minor tidy-up: two sizetype fixes, two \nullptr usesEdward Welbourne2021-01-081-1/+1
| | | | | Change-Id: I6c4a1296350ecaf9a661dba22670fbb2ad23bd77 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-0710-520/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* QSslCertificate(OpenSSL) - harden protection against nullpointersTimur Pocheptsov2021-01-051-2/+25
| | | | | | | | | | | An invalid (as input data) certificate may have non-zero number of invalid (nullptr) extensions (if OpenSSL failed to parse them, for example). Fixes: QTBUG-89547 Pick-to: 6.0 5.15 5.12 Change-Id: I4b93ac9f482f850f02d01b0aea10560dc11b688d Reviewed-by: Lars Schmertmann <lars.schmertmann@governikus.de> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* CMake: Do not link "prefixed" openssl libs on AndroidJoerg Bornemann2020-12-212-12/+2
| | | | | | | | | | This reverts e52239f525d59f965dbbc5dbe2c28314498690b0, because we do not have multi-ABI builds currently, and we must link against what the WrapOpenSSL package provides. Fixes: QTBUG-89473 Change-Id: I4f38a2c41e90ec8b602e28f8ca77f0ebd009639c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QSslCertificate::operator == - cleanup error queueTimur Pocheptsov2020-12-171-2/+9
| | | | | | | | | | Another case when an OpenSSL's call can dump some errors into the shared error queue discovered. An invalid certificate with non-null X509 * may result in several errors appended to the queue. Pick-to: 6.0 5.15 Change-Id: I1278b371bd1edf2d656760c371bfb6da5dcab6ec Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QSslSocket_schannel: Don't compare against undefined valueMårten Nordheim2020-12-161-1/+1
| | | | | | | | | Something defined is always greater than undefined Pick-to: 6.0 Fixes: QTBUG-89530 Change-Id: I7633dd4233f7b13c3c5be17352841ec873531ef9 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Http2: set the reply's error code and string on errorMårten Nordheim2020-12-071-0/+2
| | | | | | | | | | | | If the error occurs during the call to QHttpNetworkConnectionPrivate::queueRequest coming from the http thread delegate then we will not yet have connected to the signal! But the http thread delegate checks if the error code is not NoError, and handles those situations. To let that work we must update the replies. Pick-to: 6.0 5.15 Change-Id: I47188e9439920694aaad1765ab28add1e86ccdff Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Add SameSite API to QNetworkCookieAllan Sandfeld Jensen2020-12-073-7/+84
| | | | | Change-Id: I3f8b25418154f74bb55fa978b03465f75771d015 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* TLS utils - remove useless static_assertTimur Pocheptsov2020-12-071-4/+0
| | | | | | | | | Compiler (gcc) keeps nagging and complaining about an address of function to be never nullptr in any particular instantiation, when argument is an address of a function. Change-Id: If67e80f2ff4d408608429d53814083777cc8441c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Use (new) erase()/erase_if() algorithmsMarc Mutz2020-12-052-6/+2
| | | | | Change-Id: I45c18fd45c20b226e44d16315e3ebb6c305d4ab0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QSslSocket: Don't call 'transmit' in unencrypted modeMårten Nordheim2020-12-042-1/+4
| | | | | | | | | | At the same time I'll add a generic protection against being called in unprotected mode in the schannel backend (openssl already has it in a different form). Pick-to: 5.15 6.0 Change-Id: I97c1be6239c27e306de0af7ad568fbcfde09da71 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* macOS: Make sure that the reserved characters are not escapedAndy Shaw2020-12-041-1/+1
| | | | | | | | | | | | The URL for the PAC proxy that is passed needs to be preserved for the main URL part and not entirely percent encoded, only the query part typically needs to be encoded. So use toEncoded instead for a URL to ensure they are not percent encoded. This amends c163ec1dbf873781b77ea67d4449d643c166c0c4 Pick-to: 6.0 5.15 Change-Id: Ie41ab55f71be8e25c18775e61ce7b4d110c2ddbf Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QSocks5SocketEngine: fix reference to dangling dataMårten Nordheim2020-12-041-1/+5
| | | | | | | | | | | Following a41c61fb2d2f973fd1cd5e95ee5be1ac1a4f8433 QIODevice may try to copy the QByteArray itself (rather than the data it points to). This can lead referencing dangling data when the QByteArray is initialized with raw data. Pick-to: 6.0 Change-Id: I481695b33f251f750ef482d72b81636f0d4bf462 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Http2: don't call ensureConnection when there's no request availableMårten Nordheim2020-12-021-1/+3
| | | | | | | | | | | | | | Previously we only checked if there was something in the h2 queue or if we had not yet switched to http2. These means in some cases that following an error it would enter this branch and, because it had not yet switched to http2, it would call 'ensureConnection' which would try start a reconnection. This could make the proxy socket engines try to emit 'auth required' with no replies, meaning nothing happens. Fixes: QTBUG-88417 Pick-to: 5.15 6.0 Change-Id: If37b8c71ac36597adc305fb1b1ea4fa7b48b0d28 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Http2: Remove errored-out requests from queueMårten Nordheim2020-12-021-0/+1
| | | | | | | | | | | | | | | | | | The requests will remove themselves once they get deleted but since the deletion is done through a _queued_ invokeMethod to 'deleteLater' we will call QHttpNetworkConnection::_q_startNextRequest first which may end up starting a reconnect of the TCP socket which we had the error on. In this specific instance it manifested as a race condition where we either don't get a proxyAuthorizationRequired signal at all (it was emitted while we didn't have any valid replies), or we get the signal emitted too late and it gets emitted on whatever the next reply was. Task-number: QTBUG-88417 Pick-to: 5.15 6.0 Change-Id: If3f8ececc5550f1868c90124559cb8e3029646d8 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* qsocks5socketengine: use qintptr when referring to socket descsMårten Nordheim2020-12-011-1/+1
| | | | | | | | One patch from many years ago already did most of it, but the key of the hash was still int. Change-Id: I557fa19d2573addbef7557d1a16fdd6554a117cc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QSocks5SocketEngine: Add missing return on errorMårten Nordheim2020-12-011-0/+4
| | | | | | Change-Id: I199b7156c280e02c3ce37bd72ba0dc1febf10fe9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* CMake: Fix QMAKE_LIB of WrapOpenSSLHeaders libraryJoerg Bornemann2020-11-301-1/+1
| | | | | | | | | | | | | | The correct entry for this lib is 'openssl/nolink', not 'openssl_headers'. In configurejson2cmake's helper.py we already have this information encoded such that the no_link_so_name field of 'openssl' points to 'openssl_headers'. Extend configurejson2cmake to take this into account, and re-generate src/network/configure.cmake. Pick-to: 6.0 Change-Id: I9817ea7722503a373d309b7e6fa201448d403e8d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Re-generate project files in srcJoerg Bornemann2020-11-302-0/+8
| | | | | | Pick-to: 6.0 Change-Id: I1f5f822d68129490f1a7c495f718aead0b520ca9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QSslSocket::verify: do not alter the default configurationTimur Pocheptsov2020-11-302-6/+12
| | | | | | | | | | | | | | | | | | | | | QSslCertificate::verify() has an undocumented and not very desirable property - on some platorms it updates the default configuration, which can be surprising. For example, we deprecated QSslSocket::setDefaultCaCertificates() and recommend using QSslConfiguration::defaultConfiguration(), QSslConfiguration::setDefaultConfiguration(), and QSslConfiguration::setCaCertificates(). If an application does this to select CA roots it trusts explicitly, and then for some reason is calling verify, the application can have its QSslSockets successfully connecting to a host, whose root was not trusted by the application. Also, on Windows, defaultCaCertificates() include system roots already, no need to have them twice. [ChangeLog][QtCore][QtNetwork] QSslSocket::verify - do not change the default configuration Pick-to: 5.15 Pick-to: 6.0 Pick-to: 6.0.0 Fixes: QTBUG-88639 Change-Id: I1cd40b259d0a6dcd15c78d1e7c027ff10859595c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Replace discouraged Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPEAndreas Buhr2020-11-303-3/+3
| | | | | | | | | | | | | | Q_MOVABLE_TYPE was conceived before C++ had move semantics. Now, with move semantics, its name is misleading. Q_RELOCATABLE_TYPE was introduced as a synonym to Q_MOVABLE_TYPE. Usage of Q_MOVABLE_TYPE is discouraged now. This patch replaces all usages of Q_MOVABLE_TYPE by Q_RELOCATABLE_TYPE in QtBase. As the two are synonymous, this patch should have no impact on users. Pick-to: 6.0 Change-Id: Ie653984363198c1aeb1f70f8e0fa189aae38eb5c Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Doc: Use explicit linkage with target_link_librariesKai Koehne2020-11-301-1/+1
| | | | | | | | | | | | | | The Professional CMake book suggests always using explicit linkage with target_link_libraries, so let's use that. Whether to use PUBLIC or PRIVATE depends on the context. But let's be conservative and advise on using PRIVATE by default. Task-number: QTBUG-88935 Pick-to: 6.0 Change-Id: I12b80ee85be9f6916f1e4dea6b1c9cb29e03c20f Reviewed-by: Craig Scott <craig.scott@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Replace qt_make_unique with std::make_uniqueAllan Sandfeld Jensen2020-11-231-4/+3
| | | | | | | We can depend on C++14 now. Change-Id: Iee9796cd22dbfbb70d4bdb25f0eee1662a026d6d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QDtls - remove redundant RAII structTimur Pocheptsov2020-11-201-13/+1
| | | | | | | | | | | | As noted by LCOV, the part with q_BIO_free(bio) was never executed since we were taking the result from QScopedPointer before returning. While it's a what RAII idiom is for, there is quite a low probability that SSL_set_bio() one day will start throwing exceptions. Pick-to: 6.0 Pick-to: 5.15 Change-Id: Id24e480dac34166c627b71bb2972de558c644339 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Update docs about how to configure OpenSSLKai Koehne2020-11-191-7/+6
| | | | | Change-Id: Ifd243cd8d3ac3fd52af649fd4507cfd9788e98d3 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QSocks5SocketEngine: Fix out-of-bounds access of QBAMårten Nordheim2020-11-191-3/+1
| | | | | | | | | This should've been caught a long time ago, but long story short: it wasn't. This has been deprecated since 5.14 and is now asserting. Pick-to: 5.15 Change-Id: Iddee22b1a68e5d1a03006831f795db8ec1c472be Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* HTTP2: fix crash from assertionMårten Nordheim2020-11-192-2/+7
| | | | | | | | | | | | | | | In general the protocolHandler isn't deleted unless the channel is being destructed. So instead of reset()ing the pointer we keep it around. Also update the http2protocolhandler to mimic the http1 handler a little closer: shutting down the channel in receiveReply if there's no reply/activeStreams, and not calling receiveReply at all if there's no activeStreams. Pick-to: 5.15 Change-Id: I702547f594deb6b0c1384068f7e93e560527e8e2 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix schannel TLS 1.3 reneg delayMårten Nordheim2020-11-191-0/+2
| | | | | | | | | With TLS 1.3 the client goes through renegotiation when using Schannel. The status returned is OK and we can immediately continue, so do that. Change-Id: I831eaae318df9d94b5fb7672db7e407d94f9da56 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Remove obsolete warningsChristophe Giboudeaux2020-11-182-10/+0
| | | | | | | | The libproxy issue was fixed 4 years ago and the related Qt and libproxy bug reports were also closed long ago. Change-Id: I5af18f1eaaffb8d33556ab94ca1759959a2c272d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update landing pages and module pages in qtbaseJerome Pasion2020-11-171-8/+11
| | | | | | | | | | -Qt SQL, Qt D-BUS, Qt GUI, Qt OpenGL, Qt Widgets, Qt Test, Qt Concurrent, Qt XML, Qt Network, Qt Core -language edits for consistency, add links Task-number: QTBUG-87155 Change-Id: Ic61350c9fa15090c802a42d8e9116219591eba73 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Adjust code format, add space after 'if'Zhang Sheng2020-11-163-9/+9
| | | | | | Change-Id: Ice081c891ff7f4b766f49dd4bd5cf18c30237acf Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: hjk <hjk@qt.io>
* Fix reference of qt_attribution.json to license fileKai Koehne2020-11-161-0/+373
| | | | | | | | Amends 4f076db3d and 0ebda39e065 Change-Id: I307bb59acdfe00cf0ffe4f0f645152f2a8ba11a6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Doc: Add missing brief statements for \property documentationTopi Reinio2020-11-121-2/+3
| | | | | | | | ... where applicable. Fixes: QTBUG-88232 Change-Id: I835df434765caededd35d5114965b4a1663e7942 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QAsn1Element: Read value in blocks to avoid oom at wrong lengthRobert Loehning2020-11-091-5/+13
| | | | | | | | Fixes oss-fuzz issue 22272. Pick-to: 5.15 Change-Id: I8a49b9487f632469402c983e517e817e8e65bef7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Rename "Porting" pages to "Changes"Jerome Pasion2020-11-092-3/+3
| | | | | | | | | | | | | | The content in the porting guides are closer to a changelog than a porting guide. At this point, it is easier for maintainers and contributors to write in a changelog than a guide. This change should help with readability and is closer to the usage of "Changes" in documentation. Part of a rename in other submodules. Task-number: QTBUG-87156 Change-Id: Ib59de7976fae19e7b39962e80161df6628e4070b Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Update public suffix list header to latest versionEdward Welbourne2020-11-082-13994/+14327
| | | | | | | | | The former *.platform.sh entry has been replaced by more specific entries, replacing the wildcard with only selected second levels. Task-number: QTBUG-87925 Change-Id: Ie4ba7c66ba9aa40eafe23f02faa12f19d791cff2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rename qurltlds-related files to match the header's moveEdward Welbourne2020-11-084-3/+32
| | | | | | | | | | | | | The header is now in src/network/kernel/ rather than src/corelib/io/, but the qt_attribution.json got left behind and the update program was still in a sub-dir of util/corelib/. Renamed the latter to util/publicSuffix/ (second-layer sub-directory was overkill, util/ isn't crowded and it was the only thing in util/corelib/; and there was no util/network/). This is a follow-up to commit 4f076db3d2e2e27cc56029fe878056ee79def56f Change-Id: I51c2c7892752ddc47390966044eb5650dfdfa9c2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake Build: Fix CMake configure with -DFEATURE_schannel=ONCristian Adam2020-11-072-6/+8
| | | | | | | | | | When -DFEATURE_schannel=ON, -DFEATURE_ssl=ON, and -DFEATURE_openssl=OFF cmake configuration would fail. Fixes: QTBUG-88126 Change-Id: I7325a6c6bc4b9ff448893c7f05b7f46c34eefc1e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QNAM: Work around QObject finicky orphan cleanup detailsMårten Nordheim2020-11-061-1/+11
| | | | | | | | | Details described in a comment. Task-number: QTBUG-88063 Pick-to: 5.15 Change-Id: I763ecfedf518de97615e04a8eaae0fe1fd784f52 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QDecompressHelper: use the new readPointer function in QByteDataBufferMårten Nordheim2020-11-061-43/+29
| | | | | | | | | | Gets rid of moving strings back and forth, which was extra expensive without QList's prepend optimization (which is returning, but getting rid of the moves is even better). Change-Id: I520fc140310a0e1f096dda97f2e999d0e7993e77 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtNetwork: highlight DTLS client and server exampleMårten Nordheim2020-11-041-1/+3
| | | | | | | Change-Id: Ie6aaf0c15daaf63f9c7dd172c7a775d4076e4b16 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Fix link error when comparing QSslPreSharedKeyAuthenticatorFriedemann Kleint2020-11-041-1/+1
| | | | | | | | | | QSslPreSharedKeyAuthenticator::isEqual() as accessed by inline operators is not exported. Amends 57e57d9bcda868abcfb552e1247b391162c0dff9. Change-Id: Ia0f0de81a371a31422d07af5b11f0db03265504e Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Doc: Prefer versioned CMake library targetsv6.0.0-beta3Kai Koehne2020-11-011-1/+1
| | | | | | | | The non-versioned one's do miss some properties. It's therefore best to not advocate using them. Change-Id: I53645e65ed4de4e0100e59905c024cdfe40be0c5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Regenerate qtbase projectsAlexandru Croitor2020-10-301-0/+17
| | | | | | | | | | In preparation for some further regeneration. Also modify pro2cmake to add forgotten mapping for the Qt::EglFsKmsGbmSupportPrivate module. Change-Id: I92425c566c2b275b40eec8c652496290754ac385 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Hide comparison operators for QtNetwork value types from non-ADLVolker Hilsheimer2020-10-3012-98/+130
| | | | | | | | | Make them hidden friends, add a private isEqual helper where needed. Adjust and add documentation. Fixes: QTBUG-87976 Change-Id: If7c19eeab5be7452364eb76193981100f5516d6b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Hide comparison of QHostAddress with SpecialAddress from ADLVolker Hilsheimer2020-10-302-9/+8
| | | | | | | | | Make global operators hidden friends. No change to the member-operators. Task-number: QTBUG-87976 Change-Id: If7b08a30700d4e2f1a304d4b6cc4b5d02ee5e251 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Fix documentation warnings for Qt NetworkTopi Reinio2020-10-303-6/+10
| | | | | | Task-number: QTBUG-86295 Change-Id: Ib8bcf0a6e2af8a589b44e56b19641f4d2fe6f800 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Pass SameSite through QNetworkCookieAllan Sandfeld Jensen2020-10-282-1/+9
| | | | | | | | | It is an important new details in cookies, as a minimum pass it through, before we add API for it. Pick-to: 5.15 Change-Id: I5222a24e0f50f3822a94cce126b5055fed1a8008 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>