summaryrefslogtreecommitdiffstats
path: root/src/network
Commit message (Collapse)AuthorAgeFilesLines
* QLocalSocket/Win: simplify flush()Alex Trotsenko2021-06-191-4/+2
| | | | | | | | | | Replacing a call to waitForWrite(0) with checkForWrite() changes nothing in logic, but saves one system call. As a result, unused functions in the QWindowsPipeWriter class have been removed. Change-Id: I34ec6310d9659f59a720056b9be54e31f2193116 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Remove old configure-related filesJoerg Bornemann2021-06-182-917/+0
| | | | | | | | | | | | | Remove the configure.json and configure.pri files that were used for the qmake-based configure. Remove the .prev_*.cmake files that were a by-product of configurejson2cmake.py. Pick-to: 6.2 Task-number: QTBUG-89536 Change-Id: Ie827562f7fd2513d59f69234d77b8b93124ea78e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* H2 - make integer conversion explicit (signed->unsigned)Timur Pocheptsov2021-06-151-2/+2
| | | | | | | Pick-to: 6.2 Pick-to: 6.1 Change-Id: I47a3f8f7c39d4179a9a108e81a9c7f409acbc315 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Document TLS plugin classes (private, internal)Timur Pocheptsov2021-06-142-126/+1671
| | | | | | | | | | | | | | | Also, a minor clean-up: isMatchingHostname() overload was never used, deleted (and it could not be used safely, since it requires the name to be normalized first). The file (qtlsbackend.cpp) was re-shuffled, to have backend on top of the classes which this backend is factory for. Pick-to: 6.2 Pick-to: 6.1 Fixes: QTBUG-91929 Change-Id: I435c69b167f57f7c3f76e34449c52f665dc6f7c2 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QNativeSocketEngine: Delete old win7 compat codeMårten Nordheim2021-06-141-31/+3
| | | | | | | | | It's no longer used today. And while we're at it: delete or fix typos in some nearby comments Change-Id: Ib52268eeb936e71d6c09aece2e0833b99309ef2d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* H2: remove a rather useless limit on the number of streamsTimur Pocheptsov2021-06-142-10/+3
| | | | | | | | | | | | | | | | | | SETTINGS for max concurrect number of streams is 'one direction' - this is how our peer conveys the possible number of streams _we_ can open, not _them_. If they choose to have it unlimited - let it be so. It's possible to send 0 as maximum number, also, it's possible to reduce the maximum compared to initial at some point - then I have to avoid integer overflows. Pick-to: 6.2 Pick-to: 6.1 Pick-to: 5.15 Fixes: QTBUG-94470 Change-Id: Ia02247acbaedd70998a4cab02082ba10f45cf78c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Update public suffix listMårten Nordheim2021-06-142-14309/+14419
| | | | | | | | Task-number: QTBUG-94410 Pick-to: 6.2 6.1 5.15 Change-Id: I2ccf717dc7e0e70c4abd66956238ac3cca1d7a5d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QNetworkReply: Decompress when readingMårten Nordheim2021-06-1211-122/+155
| | | | | | | | | | | Rather than when the data is received. Source compatibility is achieved through double-decompressing the data. This lets us know how many bytes are available just as before but without having the uncompressed data left in memory. Fixes: QTBUG-83269 Change-Id: I352bd09581614c582e4628243e2a0e895ba4946b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QNetworkInformation: Rename the plugins and typeMårten Nordheim2021-06-112-2/+2
| | | | | | | | | | To better match other plugins in Qt Pick-to: 6.2 Change-Id: I6ab19603f13c80a8afe4fe69f64669559a0eea15 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Yuhang Zhao <2546789017@qq.com>
* QLocalSocket/Win: avoid double buffering on writeAlex Trotsenko2021-06-092-31/+11
| | | | | | | | | As QWindowsPipeWriter now maintains a chunk queue, there is no need to use the internal QIODevice buffer and wait for the previous operation to complete. Change-Id: Id4d54edfe920aeb4a534980cb0cc85a56c067a70 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QHttpSocketEngine: Fix memory leakMårten Nordheim2021-06-091-1/+1
| | | | | | | | The reply needs to be parented or it's not guaranteed to be deleted Pick-to: 6.2 6.1 5.15 Change-Id: I7cbc31682f80dbbd9fb240fff9e6781cb6ca7b36 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QNetworkInformation: Adjustments to captive portal APIMårten Nordheim2021-06-083-39/+14
| | | | | | | | | | | | | | | Make it return bool since the TriState was really only used signify that the property was unsupported but there is already a separate way to check if it's supported. More importantly there is no different set of actions available to a user if they're in the Unknown or False state. Because of the change to bool, we also rename the property to have an 'is'-prefix. Change-Id: Iaaaad5ac31e663c36e00223bf5b0e719f412fc69 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* wasm: fix network crash on abortLorn Potter2021-06-052-46/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also work around emscripten bug #8238 emcripten_fetch_close() does not abort the network request, but instead just free’s the emscripten_fetch_t object. onsuccess or onerror will still be called, but now with a stale pointer to the deleted emscripten_fetch_t object. See https://github.com/emscripten-core/emscripten/issues/8234 Work around this by setting the userData to null when we want to abort or are done with the request. The onerror and onsuccess callbacks can then check this field (on the the still valid emscripten_fetch_t), and bail out on the (from the Qt side) aborted request. Call emcripten_fetch_close() from on error and onsuccess; this should be the point when the emscripten request is done, and there will be no more callbacks. Pick-to: 5.15 Fixes: QTBUG-87813 Change-Id: Ie9b8a29037eb150c23741683588b0f0bfd5d8c63 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Consolidate debug string generationAlex Trotsenko2021-05-313-125/+20
| | | | | | | | | | | | | | Several QIODevice subclasses use the qt_prettyDebug() function to get a printable representation of the buffer data for debug output. Rather than having this feature statically implemented in each respective file, this patch introduces a generic function in the QtDebugUtils namespace. Accordingly, some inaccuracies in the use-cases have been corrected. Change-Id: I1a8465cab08c8acf5fdcdba5085182511b1cbb7b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QNetworkInformation: Behind captive portalMårten Nordheim2021-05-313-0/+60
| | | | | | | | | This patch adds the API, with no supporting backends Task-number: QTBUG-93848 Change-Id: I50454717f928819e1b990df91872675e842f9987 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QNetworkRequest: Add API to set a minimum archive bomb sizeMårten Nordheim2021-05-319-39/+77
| | | | | | Fixes: QTBUG-91870 Change-Id: Ia23e8b8bcfdf65a91fe57e739242a355c681c9e6 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QSsl::ImplementedClass - add DtlsCookieTimur Pocheptsov2021-05-272-4/+6
| | | | | | | | To report QDtlsClientVerifier implementation supported. Change-Id: I23812396c0c6a9595769d8ddb9cc2f85cc636ecb Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Doc: Use \deprecated instead of \obsoletePaul Wicking2021-05-261-2/+2
| | | | | | Task-number: QTBUG-93990 Change-Id: I4e512354a49dde6678ca89cabc56bc76ba666bb3 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add #include <mutex>Kimmo Ollila2021-05-251-0/+2
| | | | | | | | | Needed for having std::unique_lock Pick-to: 6.1 Change-Id: I3665e9e2afab0d9230778b8b36f2b7f0c8f44a2a Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QHttpNetworkConnectionPrivate::createAuthorization: refactorMårten Nordheim2021-05-201-7/+7
| | | | | | | | | Grab a reference to the channel instead of indexing into the array repeatedly. Change-Id: I114d571fcfcfd3a751346b513cec728dc2fcda0a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QHttpNetworkConnectionChannel: remove *authMethodMårten Nordheim2021-05-205-64/+31
| | | | | | | | | | | | | | | We store the authenticator right alongside it, which knows the method. The biggest change from this is changing a, self-proclaimed, duplicate method from QHttpNetworkReply. Finding the method name ahead-of-time is not actually needed, all we need to know is that a supported authentication method is requested. Also moved that specific functionality to a more logical location: QAuthenticatorPrivate. Change-Id: I11627803ccb42b8ec33a28ef1d1e00bf60dc6da9 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Add function to QAuthenticatorPrivate to check method supportMårten Nordheim2021-05-202-0/+22
| | | | | | | | To see if a certain method is supported. To be used in an upcoming patch. Change-Id: I1a5c2f655585331820701bb54f6991b4aba38273 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QNetworkAddressEntry: export QDebug stream operatorFabian Kosmale2021-05-192-3/+19
| | | | | | | | It already existed, but was only used internally in QNetworkInterface's debug stream operator. Change-Id: I36c2b4f6cb228df2f92ec92cc879b6d34f1e3ea1 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QLocalSocket/Win: fix closed state detection in waitFor...() functionsAlex Trotsenko2021-05-183-17/+21
| | | | | | | | | | | A delayed close should only be completed in the _q_bytesWritten() slot as a confirmation of a successful write operation on the socket. Otherwise, a failed write operation may cause the socket to be closed unexpectedly within the waitFor...() function, which may result in a malfunction. Change-Id: I14cff26734f64a89090b6b5c13037466a6400597 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Prefer previously used channels in QHttpNetworkConnectionLars Schmertmann2021-05-111-19/+38
| | | | | | | | | | | | | | | | | | When IPv4 and IPv6 are supported by a server, QHttpNetworkConnection will start up two connections and pick the network layer of the one that finish first. In this case the channel with index 1 is used for IPv6. When IPv6 wins, there is no channel at index 0. This situation needs to be respected and we should try to use existing channels first when there is a next request. This is especially important when TLS session resumption is used. Creating a new channel will cause to lose the ephemeralServerKey used in the first connection. Fixes: QTBUG-93295 Pick-to: 5.15 6.1 Change-Id: Ic9dc6a24ef793a29c2652ad37bc11120e2e6ceef Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Use templated QJniObject::object() instead of static_castAssam Boudjelthia2021-05-061-1/+1
| | | | | | | Change-Id: I3bf366967d7995621aba1a7c1bec6732f3ef957d Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QLocalSocket/Win: implement duplex communication in blocking modeAlex Trotsenko2021-05-062-23/+117
| | | | | | | | | | | | | | | | [ChangeLog][QtNetwork][QLocalSocket] The waitFor*() functions on Windows now support duplex operation, as they already did on Unix. As a side effect, this restores the behavior that a single call to waitForReadyRead() won't emit both readyRead() and disconnected(), which also matches Unix behavior. The groundwork for that misbehavior was laid by incorrect refactoring in d1a671b69 already, but at this point it was harmless, as the pipe couldn't be newly closed after a successful read. That changed with f265c87e0, which made the queuing of signals async. Change-Id: I1eb80e8f147bb58825143e0fe1e4300c59ae0fbb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Fix changes' docTimur Pocheptsov2021-05-041-1/+1
| | | | | | | | | The name of attribute has a suffix 'Attribute' which was missing. Pick-to: 6.1 Fixes: QTBUG-93416 Change-Id: I9ce96efb38caa03957ddbdb13a5e61767e8e74f1 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QLocalSocket: declare operators for the SocketOptions flagGiuseppe D'Angelo2021-05-021-0/+2
| | | | | | | The flag existed, without the operators. Change-Id: I386f76b358422fbfc3fbd7b227901803ec27202d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QLocalSocket: fix inclusions in namespaced buildsGiuseppe D'Angelo2021-05-021-1/+4
| | | | | | | | | An include statement appeared after opening the Qt namespace, thus injecting symbols in there. Move it outside. Change-Id: I8e95e821b36ad4e4ceed5b0645bf8ebf7e531e06 Pick-to: 5.15 6.0 6.1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix “unused variable” warningMorten Sørvig2021-04-301-0/+1
| | | | | Change-Id: I6755cb05064c87d9b619bc4ff06e70740d94ccb3 Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* HTTP: Don't call allDone twiceMårten Nordheim2021-04-291-0/+2
| | | | | | Change-Id: Ia3fb2e2c185f4e61234ce237416028b0c45357f8 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* HTTP/2 authentication requiredMårten Nordheim2021-04-295-29/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | With Qt 6 we made HTTP/2 default, which exposed missing handling of 401 Unauthorized (and 407 Proxy Authentication Required). In HTTP/1.* we would handle this after the response had finished, while handling the status code. For h2 this path isn't used since it is heavily reliant on the structure we have for HTTP/1.* (one request per channel). So we must handle the status code and header directly. Having that part fixed exposed another issue - when resetting/rewinding uploaded data we were not resetting the 'totallyUploadedData' counter in the reply (this, in turn, exposed another small issue). Because of that we did not actually send any data on the retry, only sending the content-length followed by no data. Finally, the small issue mentioned in the previous paragraph was how we check if we have uploaded all our data. It was only checking if the byte-device was atEnd(), which it was. But only because it had not yet prepared any data for us. Fixes: QTBUG-91284 Pick-to: 6.1 6.0 5.15 Change-Id: I798d105b02688b18a02897cc476f19f57a47f98f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* CMake: Regenerate configure.cmake filesAlexandru Croitor2021-04-272-6/+24
| | | | | | | | | And adjust configure.json files that were stale Amends d385158d5213ef568b7629e2aa4a818016bbffac Change-Id: I851838a12c3773a6e8119ebc7f1de941ae7fe224 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove links to QRegularExpression#Wildcard matchingVolker Hilsheimer2021-04-271-2/+1
| | | | | | | | The topic existed for QRegExp but is not relevant in QRegularExpression. Pick-to: 6.1 Change-Id: Ife9d42b5b03163cfefff19725409a3feac1cddb2 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Lowercase system includes and lib names for Windows, fix cross compilingMartin Storsjö2021-04-231-2/+2
| | | | | | | | | | | | | | | When cross compiling from a case sensitive file system, casing matters, and mingw headers and import libraries consistently use lowercase. This was uncovered by d385158d5213ef568b7629e2aa4a818016bbffac; prior to that, the schannel TLS plugin didn't end up built (at least when cross compiling). Fix other similar cases that can be found by grepping the repo. Change-Id: Ia696e17b7aaa979d7b7f5b0801383f338a8b585b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Move plugin code from QtNetwork to qtbase/pluginsTimur Pocheptsov2021-04-2261-19031/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All TLS (and non-TLS) backends that QSsl classes rely on are now in plugins/tls (as openssl, securetransport, schannel and certonly plugins). For now, I have to disable some tests that were using OpenSSL calls - this to be refactored/re-thought. These include: qsslsocket auto-test (test-case where we work with private keys), qsslkey auto-test (similar to qsslsocket - test-case working with keys using OpenSSL calls). qasn1element moved to plugins too, so its auto-test have to be re-thought. Since now we can have more than one working TLS-backend on a given platform, the presence of OpenSSL also means I force this backend as active before running tests, to make sure features implemented only in OpenSSL-backend are tested. OCSP auto test is disabled for now, since it heavily relies on OpenSSL symbols (to be refactored). [ChangeLog][QtNetwork][QSslSocket] QSslSocket by default prefers 'openssl' backend if it is available. [ChangeLog][QtNetwork][QSslSocket] TLS-backends are not mutually exclusive anymore, depending on a platform, more than one TLS backend can be built. E.g., configuring Qt with -openssl does not prevent SecureTransport or Schannel plugin from being built. Fixes: QTBUG-91928 Change-Id: I4c05e32f10179066bee3a518bdfdd6c4b15320c3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add Solaris support in cmake buildNiclas Rosenvik2021-04-215-1/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add SOLARIS cmake platform definition. Add settings for QT_DEFAULT_MKSPEC so that qplatformdefs.h can be found. Solaris has its gssapi symbols in libgss. Solaris supports @ORIGIN. Solaris ld does not support --dynamic-list needed for reduce relocations. Make solaris fail the reduce relocation test. getauxval is specific to GNU libc and some other libc implementations on Linux but sys/auxv.h is not. The bootstrap uses sys/aux.h as the only indication for getauxval. This breaks builds on Solaris, so only make sys/auxv.h an indicator for getauxval on linux or glibc based systems. Solaris uses X11 so add it to the X11_SUPPORTED list. Solaris network libraries for sockets etc are in socket and nsl. ifreq does not have a member ifr_ifindex on Solaris, it uses ifr_index. Add test to check if ifr_index is a member of ifreq. The first struct in the in_addr union on solaris is defined as four uint8_t, therefore four arguments are needed for its initializer list. Change-Id: Ieed4c1bbac8559a7ae1db9c4e1e91f609f150270 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Introduce zlib find script to work around hardcoded iOS SDKAlexandru Croitor2021-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Xcode allows building a project targeting either the device or simulator sysroot in one single build dir, but for the sysroot switching to work there should be no linker or compiler flags referencing absolute paths of a specific sysroot. During CMake configuration of a project targeting iOS, all found system libraries will be within one single sysroot, either the device one or the simulator one, whichever one was passed to CMAKE_OSX_SYSROOT. CMake will then generate the Xcode project and pass those absolute paths, which makes sysroot switching within Xcode not work. To avoid that, the CMake documentation recommends passing linker and framework flags of the form '-lfoo' and '-framework bar' instead of absolute paths. Xcode then takes care of setting the correct framework search path. Zlib is one of the libraries found in the iOS sysroot and thus passed as absolute path. To avoid that, create a new FindWrapZLIB find script. The target it creates will pass the absolute path to the library on non Apple platforms and an -lz linker flag on Apple platforms (macOS and iOS). To avoid issues with target global promotion when system PNG package is found, ensure that a found ZLIB::ZLIB target is promoted to global manually in src/gui/configure.cmake. Pick-to: 6.1 Change-Id: I8bd8649be4f680a331ad51925f27cb9d13ac5e5f Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Merge integration refs/builds/qtci/dev/1618564901Qt CI Bot2021-04-161-16/+7
|\
| * QNetworkDiskCache: Switch to unique_ptr in most casesMårten Nordheim2021-04-161-4/+6
| | | | | | | | | | | | | | | | | | Because take() is deprecated, and these pointers are meant to leave the scope in some branches. Pick-to: 6.1 Change-Id: I5432d91a28f4c5c8c17fadf7ce3bcd41716e216a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * QNetworkDiskCache: Drop the file mmap-ingMårten Nordheim2021-04-161-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Presumably the code at some point would do a QByteArray::fromRawData-style thing. But now it doesn't do that so the current code was a bit strange. It would map the content of the file to memory only to then copy the content into a QByteArray. Then it reparents the file to the QBuffer, keeping it alive even if its not needed. Fixes: QTBUG-92838 Pick-to: 6.1 6.0 5.15 Change-Id: I88f8cd1b64e0fd13d08b5cc4df44661e216da340 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | QWindowsPipe{Reader|Writer}: restructure signalsAlex Trotsenko2021-04-152-6/+33
|/ | | | | | | | | | | | | | | | | | | For QProcess, there is no point in suppressing recursive QWPR::readyRead() emission, as the former manages this logic itself. On top of that, the non-recursive nature of QWPR::readyRead() indirectly disallowed reading from the channels inside QProcess::waitForReadyRead(), if that is called from a slot connected to QProcess::readyRead(). QWPW had two signals, one allowing recursion and one not. This commit allows recursion of QWPR::readyRead() and QWPW::bytesWritten(), and moves recursion suppression to the higher- level classes. This makes the code more uniform and efficient, at the cost of a few duplicated lines. Change-Id: Ib20017fff4d92403d0bf2335f1622de4aa1ddcef Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Merge integration refs/builds/qtci/dev/1618401544Qt CI Bot2021-04-142-8/+8
|\
| * QNetworkCookie: Rename sameSite to sameSitePolicyMårten Nordheim2021-04-142-8/+8
| | | | | | | | | | | | | | | | | | As suggested in the API review. Amends 37bd7b5733c7f1a4eb6ac5458fdc46f94a91194a Pick-to: 6.1 6.1.0 Change-Id: Ic3e8567f349568dc3b4dbf79be27c304b39480cf Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | QNetworkInformation: delete the instance as a post-routineMårten Nordheim2021-04-141-2/+24
|/ | | | | | | | | | | | | | | | | | | | | | On Windows, on exit, the backend will deref (and then implicitly start deletion of) a COM object. This object tries to communicate with an object in another thread, though it seems this other thread quits before the main thread in _most_ cases. To get around this we move the deletion to earlier in the program. While this is only reported as a Windows issue it makes for more consistent behavior if all platforms behave the same. Document and test that recreation of QNI works as expected after the destruction (and recreation) of QCoreApplication. Amends: 0875626e22ad4e709ddf505e701a8d699559f5b4 Fixes: QTBUG-92568 Pick-to: 6.1 6.1.0 Change-Id: Iffc07f38673019aa059efd4d64d2ad706a03f6fe Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Document QLocalSocket::socketOptions as a propertyVolker Hilsheimer2021-04-131-8/+5
| | | | | | Change-Id: Ifda55ac7afb3fb30d973a01104b012959ae285ab Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Merge integration refs/builds/qtci/dev/1618240808Qt CI Bot2021-04-122-3/+9
|\
| * QNetworkInformation: Private the destructorMårten Nordheim2021-04-122-3/+9
| | | | | | | | | | | | | | | | It wasn't meant to be public. Pick-to: 6.1 6.1.0 Change-Id: Ifa7fff48f82b96bdfa277677d3988dc8881b8c2a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | Merge integration refs/builds/qtci/dev/1618233601Qt CI Bot2021-04-122-30/+23
|\ \ | |/ |/|