diff options
author | Lorn Potter <lorn.potter@gmail.com> | 2020-05-07 19:14:36 +1000 |
---|---|---|
committer | Lorn Potter <lorn.potter@gmail.com> | 2020-06-12 09:48:17 +1000 |
commit | 3ef5bc06fab6473f5b2d3e430a79ec8d836c6df8 (patch) | |
tree | 74edecea6980a9a25f84e2ef01974bc71b24f3e3 /src/network/access/qnetworkreplywasmimpl.cpp | |
parent | a9f82b8b2c19ecc5bf5ab0d376780c34e8435202 (diff) | |
download | qtbase-3ef5bc06fab6473f5b2d3e430a79ec8d836c6df8.tar.gz |
wasm: set status codes from network operation
Fixes: QTBUG-83991
Change-Id: Ie1e88189bee8b6a9dc6cb2a721777a5e1032307a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
(cherry picked from commit 3fbf7b34cc2242559a047c3868855c9de6f0c3d3)
Diffstat (limited to 'src/network/access/qnetworkreplywasmimpl.cpp')
-rw-r--r-- | src/network/access/qnetworkreplywasmimpl.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/network/access/qnetworkreplywasmimpl.cpp b/src/network/access/qnetworkreplywasmimpl.cpp index e9f9928470..83254889fb 100644 --- a/src/network/access/qnetworkreplywasmimpl.cpp +++ b/src/network/access/qnetworkreplywasmimpl.cpp @@ -462,6 +462,13 @@ void QNetworkReplyWasmImplPrivate::downloadSucceeded(emscripten_fetch_t *fetch) } } +void QNetworkReplyWasmImplPrivate::setStatusCode(int status, const QByteArray &statusText) +{ + Q_Q(QNetworkReplyWasmImpl); + q->setAttribute(QNetworkRequest::HttpStatusCodeAttribute, status); + q->setAttribute(QNetworkRequest::HttpReasonPhraseAttribute, statusText); +} + void QNetworkReplyWasmImplPrivate::stateChange(emscripten_fetch_t *fetch) { if (fetch->readyState == /*HEADERS_RECEIVED*/ 2) { @@ -498,8 +505,14 @@ void QNetworkReplyWasmImplPrivate::downloadFailed(emscripten_fetch_t *fetch) reasonStr = QStringLiteral("Operation canceled"); else reasonStr = QString::fromUtf8(fetch->statusText); + + QByteArray statusText(fetch->statusText); + reply->setStatusCode(fetch->status, statusText); reply->emitReplyError(reply->statusCodeFromHttp(fetch->status, reply->request.url()), reasonStr); } + + if (fetch->status >= 400) + emscripten_fetch_close(fetch); // Also free data on failure. } //taken from qhttpthreaddelegate.cpp |