diff options
Diffstat (limited to 'src/network/socket/qhttpsocketengine.cpp')
-rw-r--r-- | src/network/socket/qhttpsocketengine.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp index 899c02fba6..b543ea7981 100644 --- a/src/network/socket/qhttpsocketengine.cpp +++ b/src/network/socket/qhttpsocketengine.cpp @@ -46,7 +46,7 @@ #include "qelapsedtimer.h" #include "qnetworkinterface.h" -#if !defined(QT_NO_NETWORKPROXY) && !defined(QT_NO_HTTP) +#if !defined(QT_NO_NETWORKPROXY) #include <qdebug.h> QT_BEGIN_NAMESPACE @@ -572,18 +572,13 @@ void QHttpSocketEngine::slotSocketReadNotification() } if (d->state == ReadResponseContent) { - char dummybuffer[4096]; - while (d->pendingResponseData) { - int read = d->socket->read(dummybuffer, qMin(sizeof(dummybuffer), (size_t)d->pendingResponseData)); - if (read == 0) - return; - if (read == -1) { - d->socket->disconnectFromHost(); - emitWriteNotification(); - return; - } - d->pendingResponseData -= read; + qint64 skipped = d->socket->skip(d->pendingResponseData); + if (skipped == -1) { + d->socket->disconnectFromHost(); + emitWriteNotification(); + return; } + d->pendingResponseData -= uint(skipped); if (d->pendingResponseData > 0) return; if (d->reply->d_func()->statusCode == 407) @@ -871,4 +866,4 @@ QAbstractSocketEngine *QHttpSocketEngineHandler::createSocketEngine(qintptr, QOb QT_END_NAMESPACE -#endif +#endif // !QT_NO_NETWORKPROXY |