summaryrefslogtreecommitdiffstats
path: root/src/network/access
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix compile warnings with MSVCShane Kearns2012-05-231-0/+7
| | | | | | | | | | Calling a static function non statically causes an unused variable warning for the optimised away d pointer. sscanf causes an insecure functions warning. (Even though it was used safely in this case) Change-Id: I07700e2155284ef3ebbe7d604ed59b2e61ee7f95 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Prevent infinite loops by handling all ZLIB errorsShane Kearns2012-05-211-5/+4
| | | | | | | | | | | | In case the HTTP server returns more data after the end of the compressed data stream, inflate will return Z_STREAM_END, which is a normal informative error code. This was handled in 4.8, but lost in 5.0. Also catch all ZLIB negative error codes rather than only three. Task-number: QTBUG-25823 Change-Id: Ibdbbd3dd6fa81a0880c477cb080ad35f2d7116f0 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* QNetworkReplyHttpImplPrivate::migrateBackendMartin Petersson2012-05-211-29/+2
| | | | | | | | | | | | | If the QNetworkSession change while we are handling a QNetworkRequest we should try to resume this request if possible. In that case we set the offset for where to continue the request. Abort the operation in the http thread. And then post the request again. The offset will then be set using the range header in postRequest() so that the operation is resumed. Task-number: QTBUG-25762 Change-Id: Ib7946905bcc633f8cc3dd7a7ad1ae74579e6bf56 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Fix QtNetwork compilation for -qconfig largeTasuku Suzuki2012-05-193-1/+6
| | | | | Change-Id: I231272e59101e9492a7a1edbacab165b96927877 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QHttpNetworkReply:readBodyFast return early if nothing to read.Martin Petersson2012-05-161-0/+2
| | | | | | | | | Incase there is no bytesAvailable on the socket there is no need to try to read. Change-Id: Ied9e4b8d86854b356a733fab4948739db206b6ad Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QNetworkAccessManager: Read all from socket on remote host closeMartin Petersson2012-05-161-0/+26
| | | | | | | | | | When we get a remoteHostClosed we should try to read everything from the socket before we close the channel. Change-Id: Iaa87d79ea16d69735f6ba3e8b3b4a0f86fbd5f73 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Properly handle unexpected EOF in QHttpThreadDelegateShane Kearns2012-05-151-6/+9
| | | | | | | | | This prevents http POST/PUT from hanging if the QIODevice being uploaded returns -1 from read. Task-number: QTBUG-24738 Change-Id: I76500cc4f0101cc8e5da5f1dc105508b3f519a3c Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* qhttpthreaddelegate: check that we have a reply set when reading.Martin Petersson2012-05-111-0/+3
| | | | | | | Make sure that we always have a reply set when we try to read. Change-Id: Ib3ce9063bffc9810fc2a4fb52ee1a65b7f8cdfa0 Reviewed-by: Prasanth Ullattil <prasanth.ullattil@nokia.com>
* QtNetwork: remove \link usagesGiuseppe D'Angelo2012-05-111-2/+2
| | | | | | Change-Id: I3f804a31eb9f623fb884052b4892fd45cdcdd126 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QNetworkReply::setReadBufferSize fix for threaded httpMartin Petersson2012-05-116-7/+102
| | | | | | | | | | | | Added the setReadBufferSize functionallity again by limiting the amount that the delegate read from the channel. Each time that data is fetched from the reply buffer, we communicate back to the thread so that more data can be fetched. Task-number: QTBUG-25327 Change-Id: I2f9950196e64acd09bc8da50c1116f2c9deacad4 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Merge branch 'docs-refactoring' into masterMarius Storm-Olsen2012-05-106-19/+19
|\ | | | | | | Change-Id: Iebd1966abace3cdf7f9428dcfc1ded5b124ab113
| * Doc: Modularize QtNetwork documentation.Casper van Donderen2012-05-096-19/+19
| | | | | | | | | | | | | | This change moves the snippets and imagesto the modularized directories. Change-Id: If14912692a7f72d7de345eaf88d9ec9752310fca Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* | Avoid emitting finished() before user can connect the signalShane Kearns2012-05-091-1/+1
|/ | | | | | | | | | | QNetworkSession::open can synchronously emit an error, therefore we need to queue this. Otherwise QNetworkReply::finished is emitted before the user has had a chance to connect the signals. Task-number: QTBUG-18824 Change-Id: I703d5e31d2934afafabdf0a77ea3aaf5336e8dec Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Various minor fixes for qdoc warnings.Richard Moore2012-05-061-25/+25
| | | | | Change-Id: I54c5ab6e1bfb1816bb510be9e2bfa1e3362faa36 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Fix more qdoc warnings in qtnetwork.Richard Moore2012-05-062-0/+3
| | | | | Change-Id: Ibfac6236e9f68b41e34e67ef03cfd590582439be Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Use reference count to close down idle network sessionShane Kearns2012-05-051-4/+4
| | | | | | | | | | | | | | | | | QNetworkAccessManager was using the AutoCloseConnection property of QNetworkSession to close it when idle. However this property is only implemented for polling engines and not event driven engines. Instead, release the network session reference. If another request comes in, it will be resurrected from the shared session weak reference. If not, then after 2 minutes when the connection caches are flushed the ref count will reach zero and cause the QNetworkSession to be destroyed (which closes it) Task-number: QTBUG-15812 Change-Id: I2963bdf13fb02e3ac269489ea463669142f3c5f3 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Change remaining uses of {to,from}Ascii to {to,from}Latin1 [QtNetwork]Thiago Macieira2012-05-042-9/+9
| | | | | | | | | | | | This operation should be a no-op anyway, since at this point in time, the fromAscii and toAscii functions simply call their fromLatin1 and toLatin1 counterparts. Task-number: QTBUG-21872 Change-Id: I94cc301ea75cc689bcb6e2d417120cf14e36808d Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Pass network session to http delegateShane Kearns2012-05-041-0/+3
| | | | | | | | This functionality was in Qt4, and apparently lost in the QNetworkAccessHttpBackend -> QNetworkReplyHttpImpl change Change-Id: Ia354cfd2c10808a6543173ec017d911f1696e7fb Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Document new APIs in 5.0Shane Kearns2012-05-032-0/+6
| | | | | | | | The \since 5.0 directive was missing from many places. Task-number: QTBUG-24001 Change-Id: I191ba8891ae66d78f923164bcab2fccb16eabef9 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QFtp - implement fast abort for downloadsShane Kearns2012-05-031-5/+16
| | | | | | | | | | | | | | | Most FTP servers do not support the ABOR command (they don't process control channel traffic until the data channel is finished). Or they require the telnet IP & sync procedure on the control channel (this requires sending TCP urgent data, which we do not support). Following behaviour of most browsers and GUI FTP clients, abort downloads by resetting the data channel. Abort of uploads needs no change, because the client closes the data channel rather than the server. Task-number: QTBUG-25494 Change-Id: I69e7b7c04d709d26def9a4a7081074e1cbf69701 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* QNetworkAccessManager - ensure abort reaches QFtpShane Kearns2012-05-031-0/+3
| | | | | | | | | Previously, we just disconnected signals from QFtp and allowed it to continue downloading in the background. Task-number: QTBUG-25494 Change-Id: I891c2fff88ef1ee554d1ccf821a3f7998eeb8406 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Don't use obsolete qVariantValue, qVariantCanConvert, etc.Debao Zhang2012-05-022-3/+3
| | | | | | | | | | qVariantValue and qVariantCanConvert are Compatibility members, while in Qt4.8 they are marked as Qt 3 Support Members. qVariantFromValue and qVariantSetValue are Obsolete members. Change-Id: Ie8505cad1e0950e40c6f6710fde9f6fb2ac670fd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Fixed iOS compilation issues.Ian Dean2012-04-261-2/+2
| | | | | | | | Put MacOS-specific code in #ifdef blocks so that it is not compiled for iOS. Change-Id: I303b7dbb63eb298e92351951731868df6a38bffa Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QHttpMultiPart: supply new line at the end of the bodyPeter Hartmann2012-04-251-2/+2
| | | | | | | | | ... to conform to RFC 2046 (section 5.1.1). Apparently IIS had problems without the new line. Task-number: QTBUG-25429 Change-Id: Ia619bbdcebd407b2716bc467323634e4c8d77bcd Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Abort background requests if policy changes to disallow themShane Kearns2012-04-192-9/+37
| | | | | | | | | | | | | Using the policy change signal from QNetworkSession. If the new policy disallows background requests and this is a background request, then generate an error. This results in a TCP RST on the socket, and a BackgroundRequestNotAllowedError on the QNetworkReply. If the reply is already finished, no action is taken. Change-Id: I4ff5c681a8b7b852727bb95f03664d666f4efe07 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Connect usagePoliciesChanged signal to the QNetworkReplyShane Kearns2012-04-194-0/+20
| | | | | Change-Id: Ibb8ba0b3226e402dfa9a5a1a64faa80702b11dd7 Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Set ConnectInBackground also for http implementationShane Kearns2012-04-191-1/+3
| | | | | Change-Id: Id82322250d86f35702036c64d725c9d093046d5b Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
* Merge remote-tracking branch 'origin/api_changes'Lars Knoll2012-04-1716-37/+113
|\ | | | | | | Change-Id: I964b0a6f5c38351fdfafb8a2a128a349ff8c89d1
| * Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-04-163-58/+132
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/corelib/io/qurl.cpp src/gui/kernel/qwindow.cpp src/tools/moc/generator.cpp src/widgets/kernel/qwidget_qpa.cpp src/widgets/styles/qstyle.h src/widgets/widgets/qtabbar.cpp tests/auto/corelib/codecs/utf8/tst_utf8.cpp Change-Id: Ia457228d6f684ec8184e13e8fcc9d25857b1751e
| * | Fix error reporting in QNetworkReplyHttpImplPrivateShane Kearns2012-04-111-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When errors are detected synchronously in _q_startOperation, they were not reported. This is because unlike the generic QNetworkReplyImpl the function is called directly rather than using a queued connection. In order to report errors, use the _q_error and _q_finished slots so that signals are emitted after returning to the event loop i.e. after the application had a chance to connect the QNetworkReply Change-Id: I8a7bbe79a934f4634fb4e0572ebb5479dfc5f489 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
| * | Add autotest interface to get session from QNAMShane Kearns2012-04-112-0/+12
| | | | | | | | | | | | | | | | | | Change-Id: I7d8ea41299408377042a9f0d0a672e1a6fb57e7d Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
| * | Check background requests are allowed before startingShane Kearns2012-04-112-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If background requests are not allowed, don't even attempt to start the network session, just fail the request immediately. After this change, a QNAM with mixed requests queued should behave as follows when background requests are disabled: - background requests at head of the queue fail - first foreground request starts the session and succeeds - remaining background requests fail - remaining foreground requests succeed If policy is changed on the fly, then running background requests are not aborted. However queued background requests won't be started. Change-Id: Ic9aba1eb59ca41b166a08d2ed09418e1b6af6b60 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
| * | Use NetworkSessionFailedError in QNetworkReplyShane Kearns2012-04-113-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | Switched the error code. Republish the error string from the bearer plugin if possible. Change-Id: I9e4ac7a9914fbf2e87fe8fd3a5175deda6d933d2 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
| * | Define QNetworkReply::BackgroundRequestNotAllowedErrorShane Kearns2012-04-112-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This error will be used when background network requests are not allowed according to the current policy of the bearer plugin. For example, to save power when battery is low on a portable device. Change-Id: I866e115f8fdd046134da99ea895b7c1df0375f26 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
| * | Define QNetworkReply::NetworkSessionFailed errorShane Kearns2012-04-112-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is to replace the UnknownNetworkError which occurs when the internal QNetworkSession fails to start (e.g. no usable WLAN available) Change-Id: I2b14577c22e0acf8ff07be7e932f0dfe9ac89c33 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
| * | Set ConnectInBackground based on requestShane Kearns2012-04-111-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set the QNetworkSession attribute to match the QNetworkRequest that triggered it. Currently if there are a mix of normal and background requests queued and background connections are not allowed by policy: - background requests at the head of the queue should fail - first foreground request should successfully start a connection - remaining requests succeed regardless of background attribute Change-Id: If0e3ec0b8a5096e3d7cd6df85884c6f53172d233 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
| * | Define BackgroundRequestAttributeShane Kearns2012-04-112-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is so that the ConnectInBackground flag can be set on the QNetworkSession internal to QNAM according to pending requests. Change-Id: If0cc62f5117ed8febbbda7b7f6de62b11b274258 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
| * | Deprecate qMemCopy/qMemSet in favour of their stdlib equivilents.Robin Burchell2012-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just like qMalloc/qRealloc/qFree, there is absolutely no reason to wrap these functions just to avoid an include, except to pay for it with worse runtime performance. On OS X, on byte sizes from 50 up to 1000, calling memset directly is 28-15% faster(!) than adding an additional call to qMemSet. The advantage on sizes above that is unmeasurable. For qMemCopy, the benefits are a little more modest: 16-7%. Change-Id: I98aa92bb765aea0448e3f20af42a039b369af0b3 Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com> Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
| * | Merge remote-tracking branch 'origin/master' into api_changesOswald Buddenhagen2012-04-105-12/+29
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/widgets/styles/qwindowsxpstyle.cpp tests/auto/gui/kernel/qwindow/qwindow.pro tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
| * | | Port to the new QUrl APIThiago Macieira2012-03-305-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The use of any broken-down components of the query now needs QUrlQuery. The QUrl constructor and toString() are now rehabilitated and the preferred forms. Use toEncoded() and fromEncoded() now only when we need to store data in a QByteArray or the data comes from a QByteArray anyway. Change to toString() or the constructor if the data was in a QString. Change-Id: I9d761a628bef9c70185a48e927a61779a1642342 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
| * | | Merge master into api_changesKent Hansen2012-03-163-50/+142
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/kernel/qmetatype.cpp src/gui/kernel/qplatformsurface_qpa.cpp tests/auto/corelib/tools/qtimeline/qtimeline.pro Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
| * | | | QtNetwork: make some constructors explicitMarc Mutz2012-03-144-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semi-automatic search, so I'm reasonably sure that all the exported ones have been caught. Change-Id: Ia00eb9194a5f64002bd7e7b894abf6333d1b825e Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* | | | | Responses to request with AlwaysNetwork set should be cachedMartin Petersson2012-04-162-8/+2
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the cache was not enabled if the request had AlwaysNetwork set. This removes the check for the CacheLoadControlAttribute when checking if the cache should be enabled. Task-number: QTBUG-15805 Change-Id: I3d0722fbc1e6c77c5b947a2af0a09e2de8f4f9df Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* | | | Fix autotest failures in QAbstractNetworkCacheShane Kearns2012-04-121-58/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The cache expiration calculation was previously removed to avoid calculating it every time an object is fetched from the cache. This is because the expiration date is calculated from max-age or expires headers when the object is added to the cache. However this broke the case where the server only provides a last-modified header. In this case, the expiration date needs to be checked at fetch time in order to add the warning if the object is >24h old. Change-Id: Iad381da0f91c27ac603abbaa94f268700ad2297f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | | Automatically query for Mac Proxy Server credentialsAron Rosenberg2012-04-112-0/+72
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for automatically searching the Mac System Preferences for proxy server username/password. If a user has put credentials in the SystemPreferences->Network->Interface->Proxies area, we will now look in the KeyChain for those files. This will automatically pop up a Permissions dialog from the OS if valid credentials were found which match the server we are trying to access. Task-Number: QTBUG-22033 Change-Id: Ic7952afab4d16a65a87bb2f97a928c1c91167fe7 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* | | Fix warnings about truncations in constants.Friedemann Kleint2012-04-031-1/+1
| | | | | | | | | | | | | | | Change-Id: I46872c5b2866454112092c1ec5efbfe15db5af33 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | QNAM: close the channel if bytesAvailable and nothing piplinedMartin Petersson2012-04-021-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there are still bytesAvailable on the socket and we have nothing pipelined we should close the channel. This was not done before as the chunked decoder did not read the last CRLF. This has now been fixed so this close should be enabled again. Task-number: QTBUG-24875 Change-Id: I115b60f8d78bf1b83d3fd5887ab3eb9940b6bf00 Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* | | QNetworkAccessFtpBackend: remove entry from QNetworkAccessCacheMartin Petersson2012-04-011-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When FTP login fails we fail to remove the entry from the cache. This is because the cache key is created from the url with the userInfo. So this needs to be set again to match the key used when inserted. Task-number: QTBUG-11824 Change-Id: Ib3fd2d737581653ae59c56d0810d42e2d8dc2176 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* | | QNam: try to read the last CRLF when chunked encoding is used.Martin Petersson2012-03-282-3/+21
| |/ |/| | | | | | | | | | | | | | | | | | | When chunked encoding is used we should try to read the last CRLF after the last zero-lenght chunk, with chunk size coded as 0. Task-number: QTBUG-19480 Task-number: QTBUG-20924 Change-Id: Ida40593fec8788bff713a31cfe6a7c2d86354a91 Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* | QHttpNetworkConnectionChannel: Warn if bytesAvailable and no replyMartin Petersson2012-03-151-3/+3
| | | | | | | | | | | | | | | | | | | | If there are no bytesAvailable and no reply then the channel can be closed without any need for this warning. Task-number: QTBUG-9315 Change-Id: Ifbb1f4732d3173a7807ac5bd0dc78fb5144faaf3 Reviewed-by: Markus Goetz <markus@woboq.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>