diff options
Diffstat (limited to 'src/network/socket/qhttpsocketengine.cpp')
-rw-r--r-- | src/network/socket/qhttpsocketengine.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp index 899c02fba6..082fb94e0a 100644 --- a/src/network/socket/qhttpsocketengine.cpp +++ b/src/network/socket/qhttpsocketengine.cpp @@ -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) |