From: Felix Weilbach Date: Thu, 4 Mar 2021 14:47:06 +0000 (+0100) Subject: Add missing error handling for downloads of client side encryption X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~327^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=88426de4ddf18d9a6b78200bf21885df68214c5e;p=nextcloud-desktop.git Add missing error handling for downloads of client side encryption The missing error handlers can cause the sync to hang forever Signed-off-by: Felix Weilbach --- diff --git a/src/libsync/propagatedownloadencrypted.cpp b/src/libsync/propagatedownloadencrypted.cpp index 8975faff7..74f671cd7 100644 --- a/src/libsync/propagatedownloadencrypted.cpp +++ b/src/libsync/propagatedownloadencrypted.cpp @@ -56,10 +56,18 @@ void PropagateDownloadEncrypted::checkFolderId(const QStringList &list) auto metadataJob = new GetMetadataApiJob(_propagator->account(), folderInfo.fileId); connect(metadataJob, &GetMetadataApiJob::jsonReceived, this, &PropagateDownloadEncrypted::checkFolderEncryptedMetadata); + connect(metadataJob, &GetMetadataApiJob::error, + this, &PropagateDownloadEncrypted::folderEncryptedMetadataError); metadataJob->start(); } +void PropagateDownloadEncrypted::folderEncryptedMetadataError(const QByteArray & /*fileId*/, int /*httpReturnCode*/) +{ + qCCritical(lcPropagateDownloadEncrypted) << "Failed to find encrypted metadata information of remote file" << _info.fileName(); + emit failed(); +} + void PropagateDownloadEncrypted::checkFolderEncryptedMetadata(const QJsonDocument &json) { qCDebug(lcPropagateDownloadEncrypted) << "Metadata Received reading" diff --git a/src/libsync/propagatedownloadencrypted.h b/src/libsync/propagatedownloadencrypted.h index 4df0446df..3d60adb2e 100644 --- a/src/libsync/propagatedownloadencrypted.h +++ b/src/libsync/propagatedownloadencrypted.h @@ -24,6 +24,7 @@ public slots: void checkFolderId(const QStringList &list); void checkFolderEncryptedMetadata(const QJsonDocument &json); void folderIdError(); + void folderEncryptedMetadataError(const QByteArray &fileId, int httpReturnCode); signals: void fileMetadataFound();