wasm: set status code before readyRead is sent

Pick-to: 6.7
Change-Id: I6f0360158cf6fe728eb49f61dc0ec819924e96e2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io>
(cherry picked from commit cd213bb750cb6619defeb700aea270f016c6cd19)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Lorn Potter 2024-07-23 16:38:57 +10:00 committed by Qt Cherry-pick Bot
parent 5413d4b460
commit a065afa40b

View File

@ -526,10 +526,10 @@ void QNetworkReplyWasmImplPrivate::downloadSucceeded(emscripten_fetch_t *fetch)
} else if (fetchContext->state == FetchContext::State::SENT) { } else if (fetchContext->state == FetchContext::State::SENT) {
const auto reply = fetchContext->reply; const auto reply = fetchContext->reply;
if (reply->state != QNetworkReplyPrivate::Aborted) { if (reply->state != QNetworkReplyPrivate::Aborted) {
QByteArray buffer(fetch->data, fetch->numBytes);
reply->dataReceived(buffer);
QByteArray statusText(fetch->statusText); QByteArray statusText(fetch->statusText);
reply->setStatusCode(fetch->status, statusText); reply->setStatusCode(fetch->status, statusText);
QByteArray buffer(fetch->data, fetch->numBytes);
reply->dataReceived(buffer);
reply->setReplyFinished(); reply->setReplyFinished();
} }
reply->m_fetch = nullptr; reply->m_fetch = nullptr;
@ -602,10 +602,10 @@ void QNetworkReplyWasmImplPrivate::downloadFailed(emscripten_fetch_t *fetch)
reasonStr = QStringLiteral("Operation canceled"); reasonStr = QStringLiteral("Operation canceled");
else else
reasonStr = QString::fromUtf8(fetch->statusText); reasonStr = QString::fromUtf8(fetch->statusText);
QByteArray buffer(fetch->data, fetch->numBytes);
reply->dataReceived(buffer);
QByteArray statusText(fetch->statusText); QByteArray statusText(fetch->statusText);
reply->setStatusCode(fetch->status, statusText); reply->setStatusCode(fetch->status, statusText);
QByteArray buffer(fetch->data, fetch->numBytes);
reply->dataReceived(buffer);
reply->emitReplyError(reply->statusCodeFromHttp(fetch->status, reply->request.url()), reply->emitReplyError(reply->statusCodeFromHttp(fetch->status, reply->request.url()),
reasonStr); reasonStr);
reply->setReplyFinished(); reply->setReplyFinished();