aboutsummaryrefslogtreecommitdiff
path: root/src/webclient.cpp
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-16 23:01:16 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-16 23:01:16 +0200
commit94dbe30902e36cedb30cb89ea3bd7ecd6c5a03f2 (patch)
tree98b32b834960a59102118630f4d936671081f6c7 /src/webclient.cpp
parenta3f3e3933c4a2522e233917a6795c6e9d677e65c (diff)
downloadkristall-94dbe30902e36cedb30cb89ea3bd7ecd6c5a03f2.tar.gz
Adds improved error handling.
Diffstat (limited to 'src/webclient.cpp')
-rw-r--r--src/webclient.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/webclient.cpp b/src/webclient.cpp
index b317692..40beec0 100644
--- a/src/webclient.cpp
+++ b/src/webclient.cpp
@@ -71,15 +71,36 @@ void WebClient::on_finished()
{
if(this->current_reply->error() != QNetworkReply::NoError)
{
+ NetworkError error = UnknownError;
+ switch(this->current_reply->error())
+ {
+ case QNetworkReply::ConnectionRefusedError: error = ConnectionRefused; break;
+ case QNetworkReply::RemoteHostClosedError: error = ProtocolViolation; break;
+ case QNetworkReply::HostNotFoundError: error = HostNotFound; break;
+ case QNetworkReply::TimeoutError: error = Timeout; break;
+ case QNetworkReply::SslHandshakeFailedError: error = TlsFailure; break;
+
+ case QNetworkReply::ContentAccessDenied: error = Unauthorized; break;
+ case QNetworkReply::ContentOperationNotPermittedError: error = BadRequest; break;
+ case QNetworkReply::ContentNotFoundError: error = ResourceNotFound; break;
+ case QNetworkReply::AuthenticationRequiredError: error = Unauthorized; break;
+ case QNetworkReply::ContentGoneError: error = ResourceNotFound; break;
+
+ case QNetworkReply::InternalServerError: error = InternalServerError; break;
+ case QNetworkReply::OperationNotImplementedError: error = InternalServerError; break;
+ case QNetworkReply::ServiceUnavailableError: error = InternalServerError; break;
+ default:
+ qDebug() << "Unhandled server error:" << this->current_reply->error();
+ break;
+ }
+
qDebug() << "web network error" << this->current_reply->errorString();
- emit this->networkError(UnknownError, this->current_reply->errorString());
+ emit this->networkError(error, this->current_reply->errorString());
}
else
{
auto mime = this->current_reply->header(QNetworkRequest::ContentTypeHeader).toString();
- // qDebug() << this->current_reply->url() << mime;
-
emit this->requestComplete(this->body, mime);
this->body.clear();
@@ -90,6 +111,7 @@ void WebClient::on_finished()
void WebClient::on_sslErrors(const QList<QSslError> &errors)
{
+ qDebug() << "HTTP SSL Errors:";
for(auto const & err : errors)
qDebug() << err;
this->current_reply->ignoreSslErrors();