diff options
author | Trial97 <alexandru.tripon97@gmail.com> | 2023-07-02 22:43:30 +0300 |
---|---|---|
committer | Trial97 <alexandru.tripon97@gmail.com> | 2023-07-02 22:49:58 +0300 |
commit | f1bd9700f71341ed726e205f04633bb0cb44e6fb (patch) | |
tree | caa8c787b7583deba744054feb582ecc234e1fca /launcher/net/NetRequest.cpp | |
parent | 6aa30d334c2c0ccf0890433b9b7fecc3adeb9ed0 (diff) | |
download | PrismLauncher-f1bd9700f71341ed726e205f04633bb0cb44e6fb.tar.gz PrismLauncher-f1bd9700f71341ed726e205f04633bb0cb44e6fb.tar.bz2 PrismLauncher-f1bd9700f71341ed726e205f04633bb0cb44e6fb.zip |
Fail NetRequest on connection close from QT
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/net/NetRequest.cpp')
-rw-r--r-- | launcher/net/NetRequest.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/launcher/net/NetRequest.cpp b/launcher/net/NetRequest.cpp index 30457712..ff59da18 100644 --- a/launcher/net/NetRequest.cpp +++ b/launcher/net/NetRequest.cpp @@ -157,7 +157,7 @@ void NetRequest::downloadError(QNetworkReply::NetworkError error) { if (error == QNetworkReply::OperationCanceledError) { qCCritical(logCat) << getUid().toString() << "Aborted " << m_url.toString(); - m_state = State::AbortedByUser; + m_state = State::Failed; } else { if (m_options & Option::AcceptLocalFiles) { if (m_sink->hasLocalData()) { @@ -274,6 +274,13 @@ void NetRequest::downloadFinished() if (data.size()) { qCDebug(logCat) << getUid().toString() << "Writing extra" << data.size() << "bytes"; m_state = m_sink->write(data); + if (m_state != State::Succeeded) { + qCDebug(logCat) << getUid().toString() << "Request failed to write:" << m_url.toString(); + m_sink->abort(); + emit failed(""); + emit finished(); + return; + } } // otherwise, finalize the whole graph @@ -309,10 +316,14 @@ void NetRequest::downloadReadyRead() auto NetRequest::abort() -> bool { + m_state = State::AbortedByUser; if (m_reply) { +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) // QNetworkReply::errorOccurred added in 5.15 + disconnect(m_reply.get(), &QNetworkReply::errorOccurred, nullptr, nullptr); +#else + disconnect(m_reply.get(), QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error), nullptr, nullptr); +#endif m_reply->abort(); - } else { - m_state = State::AbortedByUser; } return true; } |