summaryrefslogtreecommitdiff
path: root/src/network/access/qhttpnetworkreply.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright headersAkseli Salovaara2015-03-311-13/+13
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I7e3e96183e073877b46bc8071b2ccae19e69426b Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* Updated year in copyright headerKai Koehne2014-03-261-1/+1
| | | | | | | | | | | | | | | | | | find . -path '*/3rdparty/*' -prune -o -type f -print | xargs -L1 sed -i -E 's/Copyright(.*) 2013 Digia/Copyright\1 2014 Digia/g' Manually patched files: demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h demos/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp src/3rdparty/s60/eiksoftkeyimage.h tools/qdoc3/test/qt-project.qdocconf tests/auto/qsharedpointer/nontracked.h tests/auto/qsharedpointer/nontracked.cpp Change-Id: I3f9074923b4d6bd4666258ab04f01476cc6e901c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Sergio Ahumada <sahumada@blackberry.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-131-1/+1
| | | | | | Change-Id: I52bf8ef0447b701b4ebf7d7d240013a72adb9425 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-291-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: I280c0a575987d1770e354b4948f1d4d767d711ea Reviewed-by: Simo Fält <simo.falt@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* HTTP header may be damaged - fix, unit testTomasz Duda2012-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | "HTTP/1.1 100 CONTINUE\r\n" If the header from a server is splitted between two packets the first packet contains "HTTP/1.1 100" and the second one contains " CONTINUE\r\n", one space (0x20) is skipped. After processing the line looks in this way "HTTP/1.1 100CONTINUE". QHttpNetworkReplyPrivate::readStatus(QAbstractSocket *socket) is called twice, if a http header is splitted as above. The function always removes whitespace from the beginning of a packet, even if it is the second part of a http header QHttpNetworkReply returns QNetworkReply::RemoteHostClosedError due to damaged http header during processing. Task-number: QTBUG-27161 Backported qtbase/60f4fc8b706db9cbeacd5dc4886a7aa347daafc0 Change-Id: I07ec43641bbb9966285a8a1f57a51fb27d2643d4 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Update contact information in license headers.Sergio Ahumada2012-08-011-2/+2
| | | | | | | | | | | | | - Replace Nokia contact email address with Qt Project website. - Remove "All rights reserved" line from license headers. As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: Ie7ba62011752fcb149b99b26317c54f2a0cfa931 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Ensure that Proxy-Connection: Keep-Alive is respected for HTTP 1.0Andy Shaw2012-06-251-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 (cherry picked from commit bd5ef309ba831740fd8475b2f7415f30c1a18be8) Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QNetworkReply::setReadBufferSize fix for threaded httpMartin Petersson2012-05-131-1/+27
| | | | | | | | | | | | 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: I08a246f4e7fbfdb8d58f4c5982ed0c9fa474f560 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* QNam: try to read the last CRLF when chunked encoding is used.Martin Petersson2012-03-291-3/+20
| | | | | | | | | | | 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: I39c85f45c329246d6c53c29ba1511039b2503e13 Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* Update year in Nokia copyright messages.Jason McDonald2012-01-111-1/+1
| | | | | | | | | Simple search and replace. This commit doesn't touch 3rd-party files, nor translations (where the change is not so simple and will be handled in a separate commit). Change-Id: I4e48513b8078a44a8cd272326685b25338890148 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix crash in QHttpNetworkReplyPrivate::gunzipBodyPartiallyEndSami Rosendahl2011-11-111-2/+4
| | | | | | | | | | | | | | | | | If a HTTP server responds with gzip-encoded empty content without defining Content-Length in the response header QHttpNetworkReplyPrivate::gunzipBodyPartiallyEnd will crash because it calls zlib inflateEnd for an uninitialized stream. - Fixed the crash by adding a check if the stream is initialized to gunzipBodyPartiallyEnd. - Added a regression test tst_QNetworkReply::nb279420gzipNoContentLengthEmptyContentDisconnect PMO 279420 Task-number: QTBUG-22660 Signed-off-by: Sami Rosendahl <sami.rosendahl@reaktor.fi> Merge-request: 1465 Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
* Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Liang Qi2011-10-071-1/+1
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: doc/src/getting-started/installation.qdoc doc/src/platforms/platform-notes.qdoc src/corelib/tools/qlocale_symbian.cpp src/gui/kernel/qwidget_p.h src/network/access/qnetworkaccesshttpbackend.cpp src/opengl/qgl.cpp src/plugins/bearer/symbian/qnetworksession_impl.cpp
| * QNAM - fix poor performance of HEAD request with authenticationShane Kearns2011-10-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QHttpNetworkReply was waiting for a body to be sent for 401 and 407 responses, whereas with a HTTP HEAD request, there will be no body. This delayed the authentication signal until after the http channel is closed by the server after a timeout. For example with the server used for autotesting, the authentication signal is delayed 15 seconds. When the server has a very long timeout, the authentication signal may not be emitted at all. Task-Number: QT-5304 Reviewed-By: Martin Petersson
* | Merge branch 4.7 into qt-4.8-from-4.7Qt Continuous Integration System2011-07-071-3/+9
|\ \ | |/
| * HTTP internals: continue gzip decompression if buffer fills exactlyPeter Hartmann2011-07-051-1/+1
| | | | | | | | | | | | Reviewed-by: Markus Goetz Reviewed-by: Prasanth Ullattil Task-number: QTBUG-12908
| * HTTP internals: do not discard data if not receiving gzip end markerPeter Hartmann2011-07-051-2/+8
| | | | | | | | | | | | | | | | | | some servers send gzip data without the gzip end markers. In that case, we should deliver all content and tear down the gzip data structures. Reviewed-by: Markus Goetz Patch-by: Tor Arne Vestbø and Peter Hartmann Task-number: QTBUG-16022
| * Update licenseheader text in source filesJyri Tahtela2011-05-131-17/+17
| | | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
| * QNAM HTTP: Fix bug with explicitly zero-length compressed responses.Andreas Kling2011-05-041-1/+7
| | | | | | | | | | | | | | | | | | In the case of a response with e.g content-encoding "gzip" and content-length "0", the HTTP backend would incorrectly fall back to the "unspecified length" code path and wait for readyRead() forever. Task-number: QTBUG-18232 Reviewed-by: Markus Goetz
* | Update licenseheader text in source files for qt4.8Jyri Tahtela2011-05-131-17/+17
| | | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* | QNAM HTTP: Fix bug with explicitly zero-length compressed responses.Andreas Kling2011-03-221-1/+7
| | | | | | | | | | | | | | | | | | In the case of a response with e.g content-encoding "gzip" and content-length "0", the HTTP backend would incorrectly fall back to the "unspecified length" code path and wait for readyRead() forever. Task-number: QTBUG-18232 Reviewed-by: Markus Goetz
* | QNAM: Threaded HTTP implementationMarkus Goetz2011-02-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | HTTP requests are run in a separate thread now. This required some big changes in the QNetworkAccessHttpBackend. There is a new class QHttpThreadDelegate which lives in the HTTP thread and is the communication layer between HTTP code and QNetworkAccessHttpBackend. Communication is done via signals/slots. The synchronous HTTP code (private QtWebKit API) also had to be completely re-worked and uses its own thread now. Reviewed-by: Peter Hartmann Task-number: QTBUG-14162
* | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2011-01-171-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/webkit/imageanalyzer/imageanalyzer.h examples/webkit/imageanalyzer/mainwindow.h mkspecs/unsupported/qws/linux-x86-openkode-g++/qplatformdefs.h src/corelib/io/qfsfileengine_iterator_unix.cpp src/corelib/io/qfsfileengine_iterator_win.cpp src/corelib/kernel/qcoreapplication.cpp src/network/access/qnetworkaccessdatabackend.cpp src/plugins/bearer/connman/qconnmanservice_linux.cpp src/plugins/platforms/openvglite/qwindowsurface_vglite.h src/s60installs/bwins/QtCoreu.def src/s60installs/eabi/QtCoreu.def src/s60installs/s60installs.pro tools/assistant/tools/assistant/helpviewer_qwv.h tools/qdoc3/test/qt-html-templates.qdocconf
| * Update copyright year to 2011.Jason McDonald2011-01-111-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-12-061-0/+6
|\ \ | |/ | | | | | | | | | | | | | | | | Conflicts: configure qmake/generators/win32/msbuild_objectmodel.cpp src/gui/image/qpnghandler.cpp src/network/access/qnetworkaccessdatabackend.cpp src/opengl/qgl_x11egl.cpp tests/auto/qnetworkreply/tst_qnetworkreply.cpp
| * QNetworkAccessManager: enable synchronous HTTP callsPeter Hartmann2010-11-231-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | To enable synchronous calls, an attribute in the QNetworkRequest has to be set. If set, when QNetworkAccessManager::get() (and post(), put()) returns, the reply is finished and all data has been read in case of success. This feature is semi-public for now (usable, but not documented). To enable this, an attribute in the QNetworkRequest must be set. If this attribute is set, we open a new connection to the server with only one channel and call the channels' sockets' waitFor* methods. Reviewed-by: Markus Goetz
* | Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2010-10-291-0/+5
|\ \ | |/
| * QNAM HTTP: Use sslErrors() from QHttpNetworkReplyMarkus Goetz2010-10-271-0/+5
| | | | | | | | | | Reviewed-by: Prasanth Task-Number: QTBUG-13234
* | QNAM Zerocopy: HTTP implementation partMarkus Goetz2010-08-121-22/+91
|/ | | | | | Reviewed-by: Peter Hartmann Reviewed-by: Jeremy Katz Reviewed-by: Aleksandar Sasha Babic
* QNAM HTTP: Preemptive anti crash if() statementMarkus Goetz2010-05-131-0/+3
| | | | Task-number: QTBUG-10649
* QNAM HTTP: Fix no-headers and HTTP-100 handlingMarkus Goetz2010-03-161-4/+15
| | | | Reviewed-by: Thiago
* QNAM HTTP: Always set channel.reply to 0 when doneMarkus Goetz2010-02-181-3/+10
| | | | | | | This will help us to track down a sporadic bug that made requests being sent again even if they were already done. Reviewed-by: Peter Hartmann
* QNAM HTTP: Forgot to remove a qDebug()Markus Goetz2010-02-091-1/+1
| | | | Reviewed-by: TrustMe
* QNAM HTTP: Reserve bytes for HTTP parsingMarkus Goetz2010-02-091-0/+12
| | | | Reviewed-by: Peter Hartmann
* QNAM HTTP: Improve readHeader() of the HTTP replyMarkus Goetz2010-02-091-11/+25
| | | | | | | Just read() instead us using peek() and bytesAvailable() Also don't use the obfuscated line ending checking code. Reviewed-by: Peter Hartmann
* QNAM HTTP: Improve parseStatus() of HTTP replyMarkus Goetz2010-02-091-10/+12
| | | | | | Just read() instead us using peek() and bytesAvailable() Reviewed-by: Peter Hartmann
* QNAM HTTP: Fix readBuffer maximum size.Markus Goetz2010-01-111-1/+11
| | | | | | | | | | QHttpNetworkReply has now a throttled mode. If this is activated, it will only read HTTP body when its internal buffer is empty. This means that QNetworkReply.setReadBufferSize() can finally be used for bandwidth limiting. Thanks to David Faure for helping out. Reviewed-By: Peter Hartmann
* Update copyright year to 2010Jason McDonald2010-01-071-1/+1
| | | | Reviewed-by: Trust Me
* QNAM: Remove some more occurences of toLower on the hot pathHolger Hans Peter Freyther2009-11-111-3/+3
| | | | | | | | | | | | | | toLower will force a memory allocation, and memory allocations are certainly adding a delay. Use qstricmp were this is easily possible. This change makes headerValues et all drop out of the profile. QChar::toLower will now be called more often, specially for loops that do linear searching. In the profile with real web content this is faster than using QByteArry::toLower in the inner loop and the forced memory allocations. Reviewed-By: Markus Goetz
* QNAM HTTP Code: Properly remove aborted requests from processingMarkus Goetz2009-09-231-1/+2
| | | | | | | | This fixes a crash that occured because aborted requests were not properly removed from the channel.alreadyPipelinedRequests. Task-number: QTBUG-4507 Reviewed-by: Peter Hartmann
* Update license headers again.Jason McDonald2009-09-091-4/+4
| | | | Reviewed-by: Trust Me
* Merge branch '4.5' into 4.6Thiago Macieira2009-08-311-13/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/boxes/glshaders.cpp demos/boxes/vector.h demos/embedded/fluidlauncher/pictureflow.cpp demos/embedded/fluidlauncher/pictureflow.h doc/src/desktop-integration.qdoc doc/src/distributingqt.qdoc doc/src/examples-overview.qdoc doc/src/examples.qdoc doc/src/frameworks-technologies/dbus-adaptors.qdoc doc/src/geometry.qdoc doc/src/groups.qdoc doc/src/objecttrees.qdoc doc/src/platform-notes.qdoc doc/src/plugins-howto.qdoc doc/src/qt3support.qdoc doc/src/qtdbus.qdoc doc/src/qtdesigner.qdoc doc/src/qtgui.qdoc doc/src/qtmain.qdoc doc/src/qtopengl.qdoc doc/src/qtsvg.qdoc doc/src/qtuiloader.qdoc doc/src/qundo.qdoc doc/src/richtext.qdoc doc/src/topics.qdoc src/corelib/tools/qdumper.cpp src/gui/embedded/qkbdpc101_qws.cpp src/gui/embedded/qkbdsl5000_qws.cpp src/gui/embedded/qkbdusb_qws.cpp src/gui/embedded/qkbdvr41xx_qws.cpp src/gui/embedded/qkbdyopy_qws.cpp src/gui/embedded/qmousebus_qws.cpp src/gui/embedded/qmousevr41xx_qws.cpp src/gui/embedded/qmouseyopy_qws.cpp src/gui/painting/qpaintengine_d3d.cpp src/gui/painting/qwindowsurface_d3d.cpp src/opengl/gl2paintengineex/glgc_shader_source.h src/opengl/gl2paintengineex/qglpexshadermanager.cpp src/opengl/gl2paintengineex/qglpexshadermanager_p.h src/opengl/gl2paintengineex/qglshader.cpp src/opengl/gl2paintengineex/qglshader_p.h src/opengl/util/fragmentprograms_p.h src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp src/script/parser/qscript.g src/script/qscriptarray_p.h src/script/qscriptasm_p.h src/script/qscriptbuffer_p.h src/script/qscriptclass.cpp src/script/qscriptclassdata_p.h src/script/qscriptcompiler.cpp src/script/qscriptcompiler_p.h src/script/qscriptcontext.cpp src/script/qscriptcontext_p.cpp src/script/qscriptcontext_p.h src/script/qscriptcontextfwd_p.h src/script/qscriptecmaarray.cpp src/script/qscriptecmaarray_p.h src/script/qscriptecmaboolean.cpp src/script/qscriptecmacore.cpp src/script/qscriptecmadate.cpp src/script/qscriptecmadate_p.h src/script/qscriptecmaerror.cpp src/script/qscriptecmaerror_p.h src/script/qscriptecmafunction.cpp src/script/qscriptecmafunction_p.h src/script/qscriptecmaglobal.cpp src/script/qscriptecmaglobal_p.h src/script/qscriptecmamath.cpp src/script/qscriptecmamath_p.h src/script/qscriptecmanumber.cpp src/script/qscriptecmanumber_p.h src/script/qscriptecmaobject.cpp src/script/qscriptecmaobject_p.h src/script/qscriptecmaregexp.cpp src/script/qscriptecmaregexp_p.h src/script/qscriptecmastring.cpp src/script/qscriptecmastring_p.h src/script/qscriptengine.cpp src/script/qscriptengine_p.cpp src/script/qscriptengine_p.h src/script/qscriptenginefwd_p.h src/script/qscriptextenumeration.cpp src/script/qscriptextenumeration_p.h src/script/qscriptextqobject.cpp src/script/qscriptextqobject_p.h src/script/qscriptextvariant.cpp src/script/qscriptfunction.cpp src/script/qscriptfunction_p.h src/script/qscriptgc_p.h src/script/qscriptmember_p.h src/script/qscriptobject_p.h src/script/qscriptprettypretty.cpp src/script/qscriptprettypretty_p.h src/script/qscriptvalue.cpp src/script/qscriptvalueimpl.cpp src/script/qscriptvalueimpl_p.h src/script/qscriptvalueimplfwd_p.h src/script/qscriptvalueiteratorimpl.cpp src/script/qscriptxmlgenerator.cpp src/script/qscriptxmlgenerator_p.h tests/auto/linguist/lupdate/testdata/recursivescan/project.ui tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp tests/auto/qkeyevent/tst_qkeyevent.cpp tools/linguist/shared/cpp.cpp
| * Update tech preview license header.Jason McDonald2009-08-311-13/+13
| | | | | | | | Reviewed-by: Trust Me
| * Update license headers.Jason McDonald2009-08-111-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | QNAM HTTP Code: HTTP/1.0 has implicit connection closeMarkus Goetz2009-08-281-2/+5
| | | | | | | | Reviewed-by: TrustMe
* | QNAM HTTP Code: Optimize connectionCloseEnabledMarkus Goetz2009-08-271-4/+9
| | | | | | | | | | | | | | Was called pretty often, therefore we now calculate this once and save it in a bool. Reviewed-by: TrustMe
* | Merge commit 'qt/master'Jason Barron2009-08-201-7/+42
|\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/painting/svgviewer/files/bubbles.svg src/corelib/kernel/qobject.cpp src/network/kernel/qhostinfo.cpp tests/auto/qhostinfo/tst_qhostinfo.cpp
| * | QNAM HTTP: New attribute, Demo browser: Some request statistic outputMarkus Goetz2009-08-201-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | New output that tells if a QNetworkReply was retrieved by using HTTP pipelining. The demo browser now shows some (debug) output about usage of cache, pipelining and SSL. Reviewed-by: Prasanth
| * | QNAM HTTP PipeliningMarkus Goetz2009-08-201-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HTTP Pipelining should improve the performance of HTTP requests for high latency network links. Since some servers/proxies could have problems with it, it is disabled by default. Set the HttpPipeliningAllowed attribute of a QNetworkRequest to enable it for that request. Reviewed-by: Thiago
| * | QNAM: Moved more functions into QHttpNetworkConnectionChannelMarkus Goetz2009-08-201-0/+27
| | | | | | | | | | | | Reviewed-by: Thiago
* | | Merge commit 'qt/master'Jason Barron2009-08-131-1/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/opengl/samplebuffers/glwidget.cpp src/corelib/io/qfsfileengine_unix.cpp src/corelib/kernel/qobject.cpp src/corelib/tools/qsharedpointer.cpp src/gui/gui.pro tests/auto/qhttp/tst_qhttp.cpp tests/auto/qkeyevent/tst_qkeyevent.cpp