summaryrefslogtreecommitdiffstats
path: root/src/network
Commit message (Collapse)AuthorAgeFilesLines
* QNetworkDiskCache: avoid a 31-bit truncationMarc Mutz2012-08-231-1/+1
| | | | | | | | | Network operations whose content size exceed 2G are not unheard of, and they probably shouldn't be cached, so use the correct toX() function, one that doesn't truncate the value in the header. Change-Id: Ie4e68a3120c85952dd2cc9feb73c5844e20b9aa3 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QtNetwork: declare some classes as sharedMarc Mutz2012-08-2314-2/+38
| | | | | Change-Id: Ib3eaba59836529ad0cf8e4353b54dd0cd31fd1ad Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* A few more random documentation fixesShawn Rutledge2012-08-231-2/+2
| | | | | | | @p replaced by \a, \QD replaced by {Qt Designer}, couple of enums etc. Change-Id: I315510690bf52e42db519292b4122fa24c73bbc9 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix typo in QAbstractNetworkCache documentation.Mitch Curtis2012-08-211-1/+1
| | | | | | | | "used be" => "used by" Change-Id: Ibde738facab357d21604779f8b2145d32815ed66 Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Add Q_DECL_NOTHROW to some qHash functionsThiago Macieira2012-08-201-0/+1
| | | | | | | | | | | | The hashing functions for QDateTime and QHostAddress did not get the noexcept keyword because they might allocate memory. QDateTime doesn't do it now, but it could in the future. QHostAddress does allocate memory today. Change-Id: Ia5f80942944bfc2b8c405306c467bfd88ef0e48c Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add missing #include <qmetatype.h>Thiago Macieira2012-08-201-0/+1
| | | | | | | There's a Q_DECLARE_METATYPE at the end of this file. Change-Id: Ib63aa4397ccba8740d46cf1ee7af712f75d05765 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* doc: Fixed qdoc errors in SSLMartin Smith2012-08-182-12/+14
| | | | | | | | | Fixed some bad camel case, marked some parameters with \a, and changed a \enum to a \typedef. Removed some obasolete text. Change-Id: I1e69dd9f3b74129230770addc80fe1c125faf268 Reviewed-by: Richard J. Moore <rich@kde.org>
* Fix sockets for Windows CEAndreas Holzammer2012-08-141-2/+2
| | | | | | | | | Version numbers for CE are higher then for the desktop, so insert a check for this, as the api is not working as for windows 7 and above. Change-Id: I79baba9183e11c714cffd0bb43327c197043d6e0 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Doc: Added a Qt Network landing page.Jerome Pasion2012-08-104-11/+43
| | | | | | | | | | -fixed generated HTML file names -removed qt-network group in qt/qtdoc and removed \ingroup instances Change-Id: Ida5ded5da30e6db1978382f6742a5da8036e055e Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Martin Smith <martin.smith@nokia.com> Reviewed-by: Laszlo Papp <lpapp@kde.org>
* rename qt_module_config.prf => qt_module.prfOswald Buddenhagen2012-08-081-1/+1
| | | | | | | this is more logical, following the qt_plugin and qt_tool scheme. Change-Id: Ib3b2abec6728cdab260e15128b1cd78e8e6f5d6a Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Add possibility to add OpenSSL, DBUS, MySQL path under WindowsAndreas Holzammer2012-08-071-0/+5
| | | | | | | | | | | Under Windows it's quite possible that OpenSSL, DBUS or MySQL is not installed into a central place. If -I and -L is passed at configure time, it is added to all targets, and if that path contained a conflicting header things would go wrong. Change-Id: Ic3338c49aa6eaa91b3abf5341e709ef604bf7aab Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix some documentation inconsistency in QtNetwork.Stephen Kelly2012-08-062-21/+21
| | | | | Change-Id: Id3e25480d4a8529813e02dc3d19f553a9263a363 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QtNetwork: Handle FD_CLOSE on WindowsMartin Petersson2012-08-016-0/+52
| | | | | | | | | | | | | We need to handle FD_CLOSE separately on Windows as this will be sent only once. When we get FD_CLOSE we need to check if there is more data available for reading. It there is this might indicate that there is another FD_READ that we need to handle after the FD_CLOSE. So in this case we will manually create another close event. Task-number: QTBUG-19409 Task-number: QTBUG-25386 Change-Id: Ie19906bc3f64fb6a85a508a5ab12caac5d70ccdb Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Adding missing QT_BEGIN_HEADER/QT_END_HEADERSergio Ahumada2012-07-311-1/+5
| | | | | Change-Id: I1144497ec8376ec41c714b7a55c05637b6feee66 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* add configure options for debug/release OpenSSLPeter Kümmel2012-07-311-1/+12
| | | | | | | | | msvc cannot use the same library for debug and release builds if openssl libraries are linked statically into the network library. Change-Id: Ic27ede2d9531b94aff4c50c1699947ce72caf286 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* QtNetwork: Better detection of connection failures on WindowsMartin Petersson2012-07-301-21/+41
| | | | | | | | | | | | | | | If the error code from WSAConnect is WSAEWOULDBLOCK, then the operation proceeds but the outcome is not known at that time. We then check SO_ERROR's value to detect errors. But if that call returns 0 this could indicate that the value is still not know. In this case we try one more time to increase the chance of getting the correct value. This fixed the tst_QNetworkReply::getFromUnreachableIp auto test on Windows. Change-Id: I25008aca062b2f823e3d93ebb0ae456d7e4a6ecc Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QtNetwork: unbreak QT_NO_SSL buildMarc Mutz2012-07-262-10/+8
| | | | | | | | | | | The Q_DECLARE_METATYPE()s were outside of #ifndef QT_NO_SSL for classes that are defined inside. Expand the #ifndef block. Change-Id: I45b73a24032fb2a79fd80d91282b782daa8a8f68 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* QtNetwork: use nullary version of qRegisterMetaType<T>("T")Marc Mutz2012-07-2517-21/+35
| | | | | | | | | | | | | | | | | Using the nullary version has the advantage that multiple calls during a program run are much more efficient, since an inlined atomic is used to store the result. It also ensures that Q_DECLARE_METATYPE(T) has been used, whereas qRegisterMetaType<T>("T") will happily register anything. So I've added the macro where it was missing, or moved it to a central place when it existed hidden. In tst_qnetworkreply, this became a bit tricky, because a private header is conditionally included, so moved the Q_DECLARE_METATYPE() into a conditional section, too. Change-Id: I71484523e4277f4697b7d4b2ddc3505375162727 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove obsolete or commented use of Q_DECLARE_METATYPE.Stephen Kelly2012-07-244-7/+0
| | | | | Change-Id: I15bc845801b9f84a9252a0092fbd69f0e1b3f4ea Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Replace Q_REGISTER_METATYPE in QAbstractSocket::stateChanged doc.Mitch Curtis2012-07-231-1/+1
| | | | | | | | Should be Q_DECLARE_METATYPE. Task-number: QTBUG-24692 Change-Id: I9c8b8d503fba254661e8f0d72855758d5d03ada1 Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
* QtNetwork: normalize signals/slotsMarc Mutz2012-07-183-9/+9
| | | | | | | | | | This is the result of running util/normalize --modify from Qt 4.7 with manual review. Change-Id: I3f89d5138ea9905c42ed581991426e72c90d4069 Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* removing QT_NO_URLINFO and using QT_NO_FTP insteadTasuku Suzuki2012-07-172-4/+4
| | | | | | | | | | | URLINFO was removed from qfeature.txt but QT_NO_URLINFO macro was not removed. As QUrlInfo is now private and only used for FTP, the class can be disabled when FTP is disabled. Change-Id: Ic63b066f8ff9ad1eea0073ab75b622e5739ac5a8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fix some spelling errorsSergio Ahumada2012-07-115-8/+8
| | | | | | Change-Id: I19d3b2e9a5180b13deb828b55195404ef20be295 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Avoid loading multiple bearer plugins of the same keyJiang Jiang2012-07-111-0/+5
| | | | | | | | There may be duplicated debug plugins, loading both will cause crash. Change-Id: Icc2a3643c318844bc7f2e149a6434e95de2449b2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtNetwork: add member-swap to shared classesMarc Mutz2012-07-0628-0/+202
| | | | | | | | Implemented as in other shared classes (e.g. QPen). Change-Id: Ib3d87ff99603e617cc8810489f9f5e9fe054cd2a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QNativeSocketEngine: remove compile watning on WindowsMartin Petersson2012-07-031-0/+2
| | | | | | | Remove warning of unused variable. Change-Id: Ia361dcb9081cd47c7018f5e75cdb8eb74f5474d4 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* SocketEngine Windows: If not dual stack, use IPv4 for AnyIPProtocolMartin Petersson2012-07-031-0/+3
| | | | | | | | | If the Windows version doesn't support dual stack then we should bind to IPv4. So we should change the socketProtocol to QAbstractSocket::IPv4Protocol as well. Change-Id: I7f9d0bdd861f82d720e347d3fa968198de720d1a Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QSslCertificate::fromPath fix wildcard handlingMartin Petersson2012-07-031-23/+30
| | | | | | | | | | | | | | The reqExp used to handle wildcards in the path was broken. So we always searched the working directory and not the specified path. Autotest where passing because of a hack used for Windows paths where we removed the first two chars in the path string. This fix will not use nativeSeparators thus removing the Windows hack and fix the regExp to match wildcard chars. Task-number: QTBUG-23573 Change-Id: I56fadbb67f25b8ce9c0f17cb6232e0bdb9148b1c Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Add null httpReply checks to QHttpThreadDelegateShane Kearns2012-07-031-6/+25
| | | | | | | | | | | | | | | | | If a request is aborted while under load, the abort signal can be queued in front of a signal emitted from the httpReply. The abort slot is deleting the httpReply and setting it to null. So when the queued slot is processed the httpReply is null and caused an MMU fault. Removed qWarning from existing null checks, as these are expected if abort is called with precise timing so that it races with the reply finishing on the socket. Task-number: QTBUG-26245 Change-Id: I0a7e0223fda1bc01d117fe8a993c7f6e43fd72ff Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Richard J. Moore <rich@kde.org>
* Make QtNetwork compile with qconfig smallJeremy Katz2012-07-011-0/+15
| | | | | | | Task-number: QTBUG-24816 Change-Id: I8c7965e4498794db93ee51c8511c9a72071ddce3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Move the QDataStream operator<< for QPair to qdatastream.hThiago Macieira2012-06-282-0/+2
| | | | | | | | | | QPair is small and is no problem to include from qdatastream.h. However, including QDataStream from qpair.h means including QIODevice and QObject too. Change-Id: I344321e9f68438008ec329a165135c3a346c6058 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Removed flags from SSPI calls which prevented the NTLM authentication from ↵Adrian Carpenter2012-06-281-8/+2
| | | | | | | working Change-Id: I87b085442ef301d9d92def0608a8baaa330522e6 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Add const & to foreach 'iterators'Albert Astals Cid2012-06-272-3/+3
| | | | | | | Change-Id: I8c0600dfd919f45d14a0011f2da9b9fe0b9a0df3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* QNetworkCookie - ignore unparsable expires attributeShane Kearns2012-06-271-4/+3
| | | | | | | | | | As required by RFC6265, if the date can't be parsed then the attribute should be ignored but not the whole cookie. Task-number: QTBUG-15794 Task-number: QTBUG-16798 Change-Id: I2ed2fbbaf2d00b194995349c24b174032a599703 Reviewed-by: Richard J. Moore <rich@kde.org>
* Ignore empty domain attribute in cookiesShane Kearns2012-06-271-9/+18
| | | | | | | | | As recommended by RFC6265. This fixes the optional-domain0042 test case. Task-number: QTBUG-15794 Change-Id: I6dd459797afcb52fa2a78437f8481f5abc6f3105 Reviewed-by: Richard J. Moore <rich@kde.org>
* Use RFC6265 rules for cookie path & path matchingShane Kearns2012-06-272-8/+25
| | | | | | | | | | | | | | | Url encoding of paths is no longer used. This matches the current release behaviour of Firefox, Chrome and MSIE browsers. RFC6265 does not allow this type of encoding. This fixes remaining path test cases in the IETF test suite. Currently the path0027 test is passed by Firefox but failed by Chrome and MSIE, so there is a potential compatibility issue. However it is a corner case with a malformed cookie. Task-number: QTBUG-15794 Change-Id: I9b02bb5adc32d614f512d314d06f2c60894aa2b0 Reviewed-by: Richard J. Moore <rich@kde.org>
* QNetworkCookie: Use RFC6265 rules for parsing Set-CookieShane Kearns2012-06-271-87/+16
| | | | | | | | | | | | | | The ';' separator takes priority even inside a quoted string. Quotation marks have no special meaning, they are not parsed and regenerated anymore. This means it is not possible to include the ';' character inside a cookie value. Other characters are returned transparently, including [",\] Task-number: QTBUG-15794 Task-number: QTBUG-26002 Task-number: QTBUG-11641 Change-Id: I4eefef5c6ac7753d5a21c226169e264578521fe9 Reviewed-by: Richard J. Moore <rich@kde.org>
* QNetworkCookie - use RFC6265 rules for max-ageShane Kearns2012-06-271-3/+9
| | | | | | | | | | | | | | | | If unparsable, ignore the max-age attribute but process the rest of the cookie normally. If max age <= 0, set expiration time to "earliest representable time" To keep this a safe value for conversions, time_t of 0 is used. This fixes cases 0019 and comma0005 in the test suite. Due to this change, cookies may be sent after they should have expired in case the max-age was malformed. Previously they would have been discarded immediately, which is more likely to break web services. Task-number: QTBUG-15794 Change-Id: I7882af8eb37db156785e4e358ca639e90c94f8d0 Reviewed-by: Richard J. Moore <rich@kde.org>
* QNetworkCookie - ignore unknown attributesShane Kearns2012-06-271-9/+1
| | | | | | | | | | | | RFC6265 clarifies that unknown cookie attributes should be ignored, including the version attribute which was defined by RFC2109 but not used correctly in practice. This fixes case 0008 in the test suite with minimal risk. Task-number: QTBUG-15794 Change-Id: I6f15e8e5e2e5f1ed168fc733a5c84d606a452252 Reviewed-by: Richard J. Moore <rich@kde.org>
* Remove support for multiple cookies in one Set-Cookie header to follow RFC6265.Jocelyn Turcotte2012-06-271-13/+5
| | | | | | | | | | | | This also allows cookie values to contain commas to increase compatibility like most popular browsers do even though the RFC still reserves them for future uses. Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com> Task-number: QTBUG-21456 (cherry-picked from 8ba781b01e900148fec2e9d26485369b3295487f) Change-Id: Ib09ab2411dddf7f99de1c0c31680428b7412fc7e Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QAbstractSocket: Enable readNotifier on read from bufferMartin Petersson2012-06-262-0/+10
| | | | | | | | | | | | | | This is needed for the QSslSocket. When we read on that socket we will only read from the QIODevice buffer to get the unencrypted data. So when the readNotifier has been turned off on the plainsocket there is nothing to trigger it to be turned on again. This will add a readData with zero size when we have read everything from the buffer. This is so that we get a call into the socket to check if the readNotifier should be turned on again. Change-Id: I3b63e33de007db823e964480903186eb1b8caac2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtNetwork: remove double buffering on socketsMartin Petersson2012-06-266-141/+55
| | | | | | | | | Removes the readBuffer from the QAbstractSocket since data is already buffered in the QIODevice. Change-Id: I4e50b791fd2852455e526fa2c07089d4d3f0b2a4 Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix non inheritable socket creation on old windows versionsShane Kearns2012-06-221-16/+21
| | | | | | | | | | | | | | | | | | The documentation is misleading, as using the new API actually causes WSASocket to fail. New behaviour: On windows vista or earlier: skip the new API, use old one On windows 7: try the new API first, if it fails try the old one On windows 8: try the new API only The windows 7 behaviour is because we don't know if the service pack has been installed or not. (And IT departments may have specifically installed/blocked the hotfix) Task-number: QTBUG-26224 Change-Id: I6da47959919caee0cd2697f1ae1fca46aa33c1ff Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mikhail Vorozhtsov
* Ensure that Proxy-Connection: Keep-Alive is respected for HTTP 1.0Andy Shaw2012-06-221-1/+2
| | | | | | | | | | | | When doing a NTML authentication it would close the connection after the second phase before replying when the reply was a HTTP 1.0 version reply. Since the Proxy-Connection header is set to Keep-Alive in this case we want to ensure we do not close in this siutation. Task-number: QTBUG-26037 Change-Id: Icaaf2277efc0d05a946c52fb42b5191964e2e0fe Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Handle fragmented responses on SOCKS5 control channelShane Kearns2012-06-212-15/+27
| | | | | | | | | | | | Server responses may arrive in more than one packet, though this is rare due to nagle algorithm. Also fixed IPv6 addresses being discarded from server responses, which was caught by the new autotest. Task-number: QTBUG-18564 Change-Id: I32d9e2978037fb3e1fff27b7e618b5da6d222f28 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Change default Content-Type for http POST to match 4.7.4Shane Kearns2012-06-211-2/+5
| | | | | | | | | | | | | | | Qt 4.7.3 sent no Content-Type header by default. This was fixed independently on 4.8.0 and 4.7.4 branches, with different defaults. Since this is often used for web service logins, the 4.7.4 default of x-www-form-urlencoded seems more likely to work. The warning message is left in place, since not specifying the content type is still an application bug. Task-number: QTBUG-23350 Change-Id: I30bf50fd216ee9894d0168e904cea1ed4251ec68 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* QNetworkAccessManager: delete the httpThreadMartin Petersson2012-06-202-4/+12
| | | | | | | | | | | | | The httpThread was using deleteLater the finished signal of the thread to call the deleteLater slot. If the QNetworkAccessManager is deleted when the application is closed then then fished is emitted but we never return to the eventloop so the deletion is never done. This will delete the httpThread directly instead of using deleteLater Task-number: QTBUG-25487 Change-Id: I1fdbd4eca01e8bd8b3a98936298e5c78217752b4 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* fix misnomer: qt_module.prf => qt_build_config.prfOswald Buddenhagen2012-06-191-1/+1
| | | | | | qt_module suggests to be congruent to qt_plugin. Change-Id: I629530bcbe2ba6c0adbdc11a275119c8aff0c953
* automatically add QT_BUILD_FOO_LIB to DEFINESOswald Buddenhagen2012-06-191-1/+1
| | | | | Change-Id: I35d9861e48469eb5cc8824e361450684047e6559 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* clean up projects from QPRO_PWD nonsense, etc.Oswald Buddenhagen2012-06-191-3/+1
| | | | | Change-Id: I4c41aedf5bfb37e31ad202cacd2312b0bdb168e2 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>