summaryrefslogtreecommitdiffstats
path: root/src/network
Commit message (Collapse)AuthorAgeFilesLines
* Introduce AutoDeleteReplyOnFinishAttribute for QNetworkRequestMårten Nordheim2019-05-153-1/+11
| | | | | | | | | | | [ChangeLog][QtNetwork][QNetworkRequest] Added the AutoDeleteReplyOnFinishAttribute attribute to QNetworkRequest, which makes QNetworkAccessManager delete the QNetworkReply after it has emitted the "finished" signal. Change-Id: I03d4ac0830137882e51dd28795a8ec817762a300 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QNetworkReply: replace a QQueue with a std::vectorMarc Mutz2019-05-152-16/+9
| | | | | | | | | | | | | | | | | | | The 'queue' was never used as a queue: it was populated, and then exchanged into a local copy to be consumed in a loop. This loop used dequeue(), but of course it could just const-iterate the container and dump it as the end, since the member variable was already reset at that point, no-one could tell the difference from the outside. So, no need for a queue. A vector will do very nicely. The loop now uses ranged-for and qExchange(), greatly simplifying the code over the old version. Add another qExchange() call as a drive-by. Change-Id: I6147453dc9edfe9500833627b123bb3a31114651 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-05-135-6/+12
|\ | | | | | | | | | | | | Conflicts: src/corelib/tools/qstring.cpp Change-Id: I81dbf90fc936c9bf08197baefa071117bddb1c63
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-05-091-1/+7
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qlocale_data_p.h (Regenerated by running the scripts in util/local_database/) src/gui/opengl/qopengltextureuploader.cpp Done-With: Edward Welbourne <edward.welbourne@qt.io> Done-With: Allan Sandfeld Jensen <allan.jensen@qt.io> Change-Id: I12df7f066ed0a25eb109f61c4b8d8dea63b683e2
| | * WinRT: Fix crash in native socket engine during closeMårten Nordheim2019-05-081-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure "this" still exists when we're done sending the readNotification. The crash manifested itself when connecting to certain websites as they would reply with status 403, then close the connection. On our end we would then handle this "remote host closed" followed by handling the data we received. The http code handles the data successfully and sees we are done and there is nothing more to do, so it closes the connection. Which leads to closing QAbstractSocket, which closes native socket again and then deletes it. Fixes: QTBUG-75620 Change-Id: I233c67f359aa8234f1a2c4ea9463108b08c9165f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | Doc: replace even more null/0/nullptr with \nullptr macroChristian Ehrlicher2019-05-084-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Try to replace all wordings like '.. to 0' with '.. to \nullptr'. Also checked for 'null pointer' and similar. Change-Id: I73341f59ba51e0798e816a8b1a532c7c7374b74a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | QNetworkStatusMonitor - make it always enabled on DarwinTimur Pocheptsov2019-05-102-28/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also undo changes in setNetworkAccessible and setConfiguration since they introduced a change in behavior, which results in auto-test failing. Change-Id: I5d74c47338bff8f964ba2e27256902c79303e00f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Migrate Windows system libs to external dependenciesJoerg Bornemann2019-05-081-1/+1
| | | | | | | | | | | | | | | | | | Started-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: I211ce3252b836894aeeac1c85eb316d9596bca57 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | | Deprecate conversion functions between QList and QSetLars Knoll2019-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Users should use range constructors instead to do the conversion. Keep conversion methods between QList and QVector as these will turn into a no-op in Qt 6, whereas forcing people to use range constructors would lead to deep copies of the data. Change-Id: Id9fc9e4d007044e019826da523e8418857c91283 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-05-071-1/+8
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/kernel/qobject.cpp src/corelib/kernel/qvariant.h src/corelib/tools/qlist.h Done-With: Milian Wolff <milian.wolff@kdab.com> Done-With: Allan Sandfeld Jensen <allan.jensen@qt.io> Change-Id: I6803f7239aa137a51a7467fab7cc7a01302a848d
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-05-031-1/+8
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/pcre2/qt_attribution.json Change-Id: Ibae941cb12662f27bd6962ee02bc235971c59a15
| | * HTTP2: Fix handling of GOAWAY framesChristian Kamm2019-05-031-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously there were two issues: - A QNetworkReply could be aborted but be in NoError state. (GOAWAY frame with 0 as error) - Streams in a connection would be aborted prematurely when a GOAWAY frame with a lastStreamId of 2^31-1 was received. Fixes: QTBUG-73947 Change-Id: Iddee9385c1db3cc4bb80e07efac7220fff787bf3 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Compile-fix: add private/ prefix to qnetconmonitor_p.hEdward Welbourne2019-05-061-1/+1
| | | | | | | | | | | | | | | | | | | | | Build was failing without it. Change-Id: I23a6e8a359e6208f78fa9ef571b8b27f8ecb3628 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Introduce QNetworkConnection/Status/MonitorTimur Pocheptsov2019-05-0213-55/+903
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Private classes to replace broken or even not working at all 'session management' and 'bearer manager' (on at least two major platforms we support). This implementation is macOS/iOS-specific and uses SystemConfiguration framework, or more precisely SCNetworkReachability's part of it. Task-number: QTBUG-40332 Change-Id: Iac5f44c4063c4092b93b8cf2bde3fb2c524855b3 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Remove handling of missing Q_COMPILER_RVALUE_REFSAllan Sandfeld Jensen2019-05-0115-43/+0
| | | | | | | | | | | | | | | | | | | | | | | | Remove remaining handling of missing support for rvalue refs. Change-Id: I78bab8bccfeeb9c76f464f345874364a37e4840a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Consolidate Unix and Windows implementations of QHostInfo::fromNameVolker Hilsheimer2019-04-304-247/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementations were practically identical, so we can just move the code into qhostinfo.cpp, cleaning up things along the way. Since QHostInfoAgent is an internal class, add the shared code as additional static helper functions. And since half the code already used QCoreApplication::translate anyway, we can remove the QObject inheritance which was only added for getting a tr(). Change-Id: I58eafbdc3e7d06d2e898486a1add63cd63d98c96 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | FTP: Workaround for servers without HELP command supportJesus Fernandez2019-04-293-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ignores errors produced by the HELP command. It will continue executing the commands sent to QFtp when a server does not have a HELP command implemented. Commands SIZE, MDTM, and PWD are not going to be used if the HELP command failed. [ChangeLog][QtNetwork][QNetworkAccessManager] Don't fail when FTP does not implement the HELP command. Task-number: QTBUG-69477 Change-Id: I0ebd51b134535730c6bef83de1abf1a427b8d2ce Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | Set 'originalRequest' in QNetworkReplyImplMårten Nordheim2019-04-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's what's returned when calling request() on a QNetworkReply, but for QNetworkReplyImpl (the implementation used for e.g. FTP) it was not set, so it returned a default object. Change-Id: Id82f7920e4268c1a7743e681fc503bcd28889b6e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-04-291-3/+8
|\| | | | | | | | | | | Change-Id: Ic712e8a84b01b212bb1121d7a2c9b85e0d2da9da
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-04-281-3/+8
| |\| | | | | | | | | | Change-Id: Ibce9bfef928ce39070183c488ce86ae32e5ea705
| | * Document that QHostInfo does not guarantee to return all IP addressesVolker Hilsheimer2019-04-251-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using getaddrinfo, which implements RFC 6724, implies that addresses that are not needed will be trimmed. In particular, IPv6 addresses are often not returned. Also move the implementation detail documentation down in the text, it's a detail with little relevance for the usage of the class, but makes for a good opener regarding this behavior. Change-Id: I516a64f0b39a6a06621a63c1d5236544b7758049 Fixes: QTBUG-31865 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Merge "Merge remote-tracking branch 'origin/5.13' into dev" into ↵Liang Qi2019-04-241-2/+2
|\ \ \ | | | | | | | | | | | | refs/staging/dev
| * | | Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-04-241-2/+2
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/util/qshaderformat.cpp src/gui/util/qshaderformat_p.h src/widgets/graphicsview/qgraphicsitem_p.h Change-Id: Idafd88eb9a0a15b4af29f6143d009c1ec8ceecca
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-04-241-2/+2
| | |\| | | | | | | | | | | | | Change-Id: I26da00aa71b0f0b91c9bfb4a9e8550345ee62875
| | | * Fix typo in QHostAddress::SpecialAddress descriptionVolker Hilsheimer2019-04-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ia4269b74eb85d5055ca0e893277be92df012c000 Fixes: QTBUG-75332 Reviewed-by: Akihito Izawa <akihito.izawa@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | | Fix compiling with QHOSTINFO_DEBUG enabledVolker Hilsheimer2019-04-241-4/+9
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we require getaddrinfo and freeaddrinfo, those symbols are not resolved dynamically, and will never be null, which causes compile errors. Correctly appending a string literal shuts up compiler warnings. Change-Id: I0096dca6a77ad86e0c89890444b8d7bbb38a40f2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QRegExp include cleanupSamuel Gaist2019-04-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QRegExp includes can be found in several files where there's not even a use of the class. This patch aims to avoid needless includes as well as follow the "include only what you use" moto. This patch removes a QRegExp include from the QStringList header which means that there is likely going to be code breaking since QStringList is used in many places and would get QRegExp in. [ChangeLog][Potentially Source-Incompatible Changes] qstringlist.h no longer includes qregexp.h. Change-Id: I32847532f16e419d4cb735ddc11a26551127e923 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Clear SSL key data as soon as possible when move-assigningKonstantin Shegunov2019-04-183-4/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move-assign uses qSwap to exchange the private pointer and thus can extend the lifetime of sensitive data. The move assignment operator is changed so it releases the private data as soon as possible. [ChangeLog][QtNetwork][QSslKey] Key data is cleared as soon as possible when move-assigning. Change-Id: Iebd029bf657acfe000417ce648e3b3829948c0e5 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* | | Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-04-105-24/+60
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/win32-clang-msvc/qmake.conf src/gui/image/qpnghandler.cpp Change-Id: Ied79d02912ffb3a307a99483df7db08c7f9d0cd8
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-04-095-24/+60
| |\| | | | | | | | | | Change-Id: I05d14a40e17554691bad369d0363e88413afd9b3
| | * QUdpSocket: Convert snippet to functor connectAndre Hartmann2019-04-081-2/+2
| | | | | | | | | | | | | | | Change-Id: Ice210b979a1dd948cd8d95003bd50a4b71d91852 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QUdpSocket: Add missing \since to docsAndre Hartmann2019-04-081-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | QNetworkDatagram was introduced together with these methods in Qt 5.8 (commit 4da2dda2aa) Change-Id: I454c26ebf6f94988cada8ac9315db1d43a31a595 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QHostInfo: use dlsym() with RTLD_DEFAULT in case libs cannot be loadedDavide Beatrici2019-04-062-13/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current code only tries to load the required functions from LIBRESOLV_SO (if defined) and resolv, but on FreeBSD they are in libc: https://www.freebsd.org/cgi/man.cgi?query=res_query&sektion=3&apropos=0&manpath=freebsd This commit changes the code so that, after failing to load the non-existent libraries, it attempts to load the functions with dlsym() using the special handle RTLD_DEFAULT, which searches for the specified symbol in the loaded libraries. This is a follow-up to 8eeb5150ed99914e252a84f1637f179e3de04659. Change-Id: I19d90b0ca8703398bf4f5f4edd5ae31e346ef251 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QDnsLookup: fix "Resolver functions not found" error on FreeBSDDavide Beatrici2019-04-062-14/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current code only tries to load the required functions from LIBRESOLV_SO (if defined) and resolv, but on FreeBSD they are in libc: https://www.freebsd.org/cgi/man.cgi?query=res_query&sektion=3&apropos=0&manpath=freebsd This commit changes the code so that, after failing to load the non-existent libraries, it attempts to load the functions with dlsym() using the special handle RTLD_DEFAULT, which searches for the specified symbol in the loaded libraries. Task-number: QTBUG-74844 Change-Id: If97aaae233cabbfa01c30d26d9a7fb01ec3ff5c2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Replace qMove with std::moveAllan Sandfeld Jensen2019-04-062-4/+4
| | | | | | | | | | | | | | | | | | Change-Id: I67df3ae6b5db0a158f86e75b99f422bd13853bc9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | Merge "Merge remote-tracking branch 'origin/5.13' into dev" into ↵Qt Forward Merge Bot2019-04-0412-42/+59
|\ \ \ | | | | | | | | | | | | refs/staging/dev
| * | | Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-03-315-33/+26
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/configure.json Change-Id: I93ac67f3bf4844bc7c691183e94bceb922b7b919
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-301-1/+1
| | |\| | | | | | | | | | | | | Change-Id: I9935bacae0d6ba532418fc3d28adbc7ca1463604
| | | * Fix a crash in QHttp2ProtocolHandler in h2c-direct modeAlexey Edelev2019-03-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After 'h2c' mode was implemented with the proper protocol upgrade, the previously working 'direct connection' mode was lost for clear text connections due to the erroneous logic in the constructor: having !channel->ssl does not necessary mean we started with HTTP/1.1 request, including protocol upgrade header; it can also mean we connected a plain socket and immediately sending h2 frames, without any H2 negotiation at all. Fixes: QTBUG-74765 Change-Id: Ice466d6bffb40048b7ab46fb064f2d3d795a12aa Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
| | * | wasm: Use common “qt” prefix for exported functionsMorten Johan Sørvig2019-03-261-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevent namespace collisions and make sure Qt functions are grouped together. Change-Id: I217188ee93e4300e273d10a79d6014179fc5a1ef Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Friedemann Kleint2019-03-263-21/+14
| | |\| | | | | | | | | | | | | Change-Id: I71cc71881fb638e207d83a8733bad8f267701c0f
| | | * Network cache: Stop treating no-cache like no-storeMårten Nordheim2019-03-223-21/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the QNetworkAccessManager machinery we would treat "no-cache" as if it meant "don't cache" while in reality it means "don't return these cached elements without making sure they're up-to-date" At the same time as this change is made let's add test data for "no-store", which replaces the "no-cache" test data. Fixes: QTBUG-71896 Change-Id: Ieda98f3982884ccc839cac2420c777968c786f6e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
| * | | tst_qsslkey: test AES encryption in the 'encrypt' testMårten Nordheim2019-03-263-4/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And export the required symbols in OpenSSL so we can run the test there as well even if it's not needed for any functionality. Change-Id: I4246d2b0bbdd42079d255f97f3c66ce8bb37390b Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * | | WinRT: Add support for AES-encrypted keysMårten Nordheim2019-03-262-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-54422 Change-Id: Icbf2b153edacb348e475d6adb9aecb63519874de Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| * | | Merge remote-tracking branch 'origin/5.13' into devFriedemann Kleint2019-03-262-3/+4
| |\| | | | | | | | | | | | | | Change-Id: I38389a69411f4549fed432f1181dbe23398b34a2
| | * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-201-2/+2
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qplatformintegration.cpp src/gui/kernel/qplatformintegration.h src/plugins/platforms/wasm/qwasmintegration.cpp src/plugins/platforms/xcb/qxcbconnection_screens.cpp Change-Id: I15063d42e9a1e226d9d2d2d372f75141b84c5c1b
| | | * Merge remote-tracking branch 'origin/5.12.2' into 5.12Qt Forward Merge Bot2019-03-151-2/+2
| | | |\ | | | | | | | | | | | | | | | Change-Id: I5f9d8090a07056411fb65d7de60eb679d00e99a3
| | | | * Add all library dependencies for static OpenSSL builds on WindowsJoerg Bornemann2019-02-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Static builds of OpenSSL can now be linked with -openssl-linked without passing additional library dependencies like user32 or advapi32. Fixes: QTBUG-73205 Change-Id: I66c13096b0a1466c1e6dfbd014123e18655270e6 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * | | wasm: QNAM: support relative urlsMorten Johan Sørvig2019-03-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can pass these through to to the browser, which will resolve them relative to the current html file. Task-number: QTBUG-74289 Change-Id: I595f30456de55da4f1432fb997d381940f51c5f9 Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* | | | | Remove remaining Q_DECL_NOEXCEPT/Q_DECL_NOTHROW usageAllan Sandfeld Jensen2019-04-0431-96/+96
|/ / / / | | | | | | | | | | | | | | | | Change-Id: I91ac9e714a465cab226b211812aa46e8fe5ff2ab Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>