Make sure the encrypted flag gets all the way to the journal db
authorKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 1 Dec 2020 11:45:01 +0000 (12:45 +0100)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 15 Dec 2020 09:59:21 +0000 (10:59 +0100)
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
src/libsync/discovery.cpp
src/libsync/propagateuploadencrypted.cpp
src/libsync/syncfileitem.cpp
src/libsync/syncfileitem.h

index 75eaa4143892883de16e783b20bf7034089ade1c..b4a42200fd9a7787de4034868f6d52709080779a 100644 (file)
@@ -399,6 +399,7 @@ void ProcessDirectoryJob::processFileAnalyzeRemoteInfo(
     item->_directDownloadUrl = serverEntry.directDownloadUrl;
     item->_directDownloadCookies = serverEntry.directDownloadCookies;
     item->_encryptedFileName = serverEntry.e2eMangledName;
+    item->_isEncrypted = serverEntry.isE2eEncrypted;
 
     // Check for missing server data
     {
index cf23fffe23f5aa839240cee9ea507df63428ab5a..2bce8b5adb62486f3b0ff875f26a94b1ea617189 100644 (file)
@@ -184,6 +184,7 @@ void PropagateUploadEncrypted::slotFolderEncryptedMetadataReceived(const QJsonDo
   }
 
   _item->_encryptedFileName = _remoteParentPath + QLatin1Char('/') + encryptedFile.encryptedFilename;
+  _item->_isEncrypted = true;
 
   qCDebug(lcPropagateUploadEncrypted) << "Creating the encrypted file.";
 
index c72cb1b468b6c8a00c7957e053f130822580b308..de33eb70f7dff61ed491b889d6f11f7bcdefba3c 100644 (file)
@@ -44,6 +44,7 @@ SyncJournalFileRecord SyncFileItem::toSyncJournalFileRecordWithInode(const QStri
     rec._serverHasIgnoredFiles = _serverHasIgnoredFiles;
     rec._checksumHeader = _checksumHeader;
     rec._e2eMangledName = _encryptedFileName.toUtf8();
+    rec._isE2eEncrypted = _isEncrypted;
 
     // Update the inode if possible
     rec._inode = _inode;
@@ -73,6 +74,7 @@ SyncFileItemPtr SyncFileItem::fromSyncJournalFileRecord(const SyncJournalFileRec
     item->_serverHasIgnoredFiles = rec._serverHasIgnoredFiles;
     item->_checksumHeader = rec._checksumHeader;
     item->_encryptedFileName = QString::fromUtf8(rec._e2eMangledName);
+    item->_isEncrypted = rec._isE2eEncrypted;
     return item;
 }
 
index 29fda0d2fb155ec934c27305164ab034abbb9825..e2079492198ab1befe48f0f4da858b9aa2d78c92 100644 (file)
@@ -107,6 +107,7 @@ public:
         , _status(NoStatus)
         , _isRestoration(false)
         , _isSelectiveSync(false)
+        , _isEncrypted(false)
     {
     }
 
@@ -241,6 +242,7 @@ public:
     Status _status BITFIELD(4);
     bool _isRestoration BITFIELD(1); // The original operation was forbidden, and this is a restoration
     bool _isSelectiveSync BITFIELD(1); // The file is removed or ignored because it is in the selective sync list
+    bool _isEncrypted BITFIELD(1); // The file is E2EE or the content of the directory should be E2EE
     quint16 _httpErrorCode = 0;
     RemotePermissions _remotePerm;
     QString _errorString; // Contains a string only in case of error