From e44e81fa71f622b21450dc203eeac96d7bb31982 Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Thu, 6 Mar 2025 22:34:02 +0700 Subject: [PATCH] chore: error body processing --- client/core/controllers/gatewayController.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/client/core/controllers/gatewayController.cpp b/client/core/controllers/gatewayController.cpp index ba4a8d36..19277ffc 100644 --- a/client/core/controllers/gatewayController.cpp +++ b/client/core/controllers/gatewayController.cpp @@ -26,6 +26,10 @@ namespace constexpr char apiPayload[] = "api_payload"; constexpr char keyPayload[] = "key_payload"; } + + constexpr QLatin1String errorResponsePattern1("No active configuration found for"); + constexpr QLatin1String errorResponsePattern2("No non-revoked public key found for"); + constexpr QLatin1String errorResponsePattern3("Account not found."); } GatewayController::GatewayController(const QString &gatewayEndpoint, bool isDevEnvironment, int requestTimeoutMsecs, QObject *parent) @@ -262,7 +266,16 @@ bool GatewayController::shouldBypassProxy(QNetworkReply *reply, const QByteArray } else if (responseBody.contains("html")) { qDebug() << "The response contains an html tag"; return true; - } else if (reply->error() == QNetworkReply::NetworkError::NoError && checkEncryption) { + } else if (reply->error() == QNetworkReply::NetworkError::ContentNotFoundError) { + if (responseBody.contains(errorResponsePattern1) || responseBody.contains(errorResponsePattern2) + || responseBody.contains(errorResponsePattern3)) { + return false; + } else { + return true; + } + } else if (reply->error() != QNetworkReply::NetworkError::NoError) { + return true; + } else if (checkEncryption) { try { QSimpleCrypto::QBlockCipher blockCipher; static_cast(blockCipher.decryptAesBlockCipher(responseBody, key, iv, "", salt));