From 19d5919b39e4b5d1ae568e96d8e8b96c532a3f48 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Fri, 9 Dec 2022 19:05:27 +0100 Subject: [PATCH] Make encryption job errors provide descriptive error messages Signed-off-by: Claudio Cambra --- src/libsync/clientsideencryptionjobs.cpp | 6 +++--- src/libsync/clientsideencryptionjobs.h | 12 +++++++++--- src/libsync/encryptfolderjob.cpp | 17 +++++++++++++---- src/libsync/encryptfolderjob.h | 8 ++++---- 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/libsync/clientsideencryptionjobs.cpp b/src/libsync/clientsideencryptionjobs.cpp index 71bb8a510..e99af0948 100644 --- a/src/libsync/clientsideencryptionjobs.cpp +++ b/src/libsync/clientsideencryptionjobs.cpp @@ -177,7 +177,7 @@ bool UnlockEncryptFolderApiJob::finished() if (retCode != 200) { qCInfo(lcCseJob()) << "error unlocking file" << path() << errorString() << retCode; qCInfo(lcCseJob()) << "Full Error Log" << reply()->readAll(); - emit error(_fileId, retCode); + emit error(_fileId, retCode, errorString()); return true; } emit success(_fileId); @@ -241,7 +241,7 @@ bool LockEncryptFolderApiJob::finished() int retCode = reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); if (retCode != 200) { qCInfo(lcCseJob()) << "error locking file" << path() << errorString() << retCode; - emit error(_fileId, retCode); + emit error(_fileId, retCode, errorString()); return true; } @@ -282,7 +282,7 @@ bool SetEncryptionFlagApiJob::finished() emit success(_fileId); } else { qCInfo(lcCseJob()) << "Setting the encrypted flag failed with" << path() << errorString() << retCode; - emit error(_fileId, retCode); + emit error(_fileId, retCode, errorString()); } return true; } diff --git a/src/libsync/clientsideencryptionjobs.h b/src/libsync/clientsideencryptionjobs.h index 1ab38fa5c..c32038292 100644 --- a/src/libsync/clientsideencryptionjobs.h +++ b/src/libsync/clientsideencryptionjobs.h @@ -129,7 +129,9 @@ protected: signals: void success(const QByteArray &fileId); - void error(const QByteArray &fileId, int httpReturnCode); + void error(const QByteArray &fileId, + const int httpReturnCode, + const QString &errorMessage); private: QByteArray _fileId; @@ -150,7 +152,9 @@ protected: signals: void success(const QByteArray& fileId, const QByteArray& token); - void error(const QByteArray& fileId, int httpdErrorCode); + void error(const QByteArray& fileId, + const int httpErrorCode, + const QString &errorMessage); private: QByteArray _fileId; @@ -175,7 +179,9 @@ protected: signals: void success(const QByteArray& fileId); - void error(const QByteArray& fileId, int httpReturnCode); + void error(const QByteArray& fileId, + const int httpReturnCode, + const QString &errorMessage); private: QByteArray _fileId; diff --git a/src/libsync/encryptfolderjob.cpp b/src/libsync/encryptfolderjob.cpp index e9a8f4caa..eadcb9357 100644 --- a/src/libsync/encryptfolderjob.cpp +++ b/src/libsync/encryptfolderjob.cpp @@ -70,9 +70,12 @@ void EncryptFolderJob::slotEncryptionFlagSuccess(const QByteArray &fileId) lockJob->start(); } -void EncryptFolderJob::slotEncryptionFlagError(const QByteArray &fileId, int httpErrorCode) +void EncryptFolderJob::slotEncryptionFlagError(const QByteArray &fileId, + const int httpErrorCode, + const QString &errorMessage) { qDebug() << "Error on the encryption flag of" << fileId << "HTTP code:" << httpErrorCode; + _errorString = errorMessage; emit finished(Error); } @@ -108,7 +111,7 @@ void EncryptFolderJob::slotUploadMetadataSuccess(const QByteArray &folderId) unlockJob->start(); } -void EncryptFolderJob::slotUpdateMetadataError(const QByteArray &folderId, int httpReturnCode) +void EncryptFolderJob::slotUpdateMetadataError(const QByteArray &folderId, const int httpReturnCode) { Q_UNUSED(httpReturnCode); @@ -120,15 +123,21 @@ void EncryptFolderJob::slotUpdateMetadataError(const QByteArray &folderId, int h unlockJob->start(); } -void EncryptFolderJob::slotLockForEncryptionError(const QByteArray &fileId, int httpErrorCode) +void EncryptFolderJob::slotLockForEncryptionError(const QByteArray &fileId, + const int httpErrorCode, + const QString &errorMessage) { qCInfo(lcEncryptFolderJob()) << "Locking error for" << fileId << "HTTP code:" << httpErrorCode; + _errorString = errorMessage; emit finished(Error); } -void EncryptFolderJob::slotUnlockFolderError(const QByteArray &fileId, int httpErrorCode) +void EncryptFolderJob::slotUnlockFolderError(const QByteArray &fileId, + const int httpErrorCode, + const QString &errorMessage) { qCInfo(lcEncryptFolderJob()) << "Unlocking error for" << fileId << "HTTP code:" << httpErrorCode; + _errorString = errorMessage; emit finished(Error); } void EncryptFolderJob::slotUnlockFolderSuccess(const QByteArray &fileId) diff --git a/src/libsync/encryptfolderjob.h b/src/libsync/encryptfolderjob.h index 1a8646f64..bad5a8976 100644 --- a/src/libsync/encryptfolderjob.h +++ b/src/libsync/encryptfolderjob.h @@ -40,13 +40,13 @@ signals: private slots: void slotEncryptionFlagSuccess(const QByteArray &folderId); - void slotEncryptionFlagError(const QByteArray &folderId, int httpReturnCode); + void slotEncryptionFlagError(const QByteArray &folderId, const int httpReturnCode, const QString &errorMessage); void slotLockForEncryptionSuccess(const QByteArray &folderId, const QByteArray &token); - void slotLockForEncryptionError(const QByteArray &folderId, int httpReturnCode); + void slotLockForEncryptionError(const QByteArray &folderId, const int httpReturnCode, const QString &errorMessage); void slotUnlockFolderSuccess(const QByteArray &folderId); - void slotUnlockFolderError(const QByteArray &folderId, int httpReturnCode); + void slotUnlockFolderError(const QByteArray &folderId, const int httpReturnCode, const QString &errorMessage); void slotUploadMetadataSuccess(const QByteArray &folderId); - void slotUpdateMetadataError(const QByteArray &folderId, int httpReturnCode); + void slotUpdateMetadataError(const QByteArray &folderId, const int httpReturnCode); private: AccountPtr _account;