#define GET_FILE_RECORD_QUERY \
"SELECT path, inode, modtime, type, md5, fileid, remotePerm, filesize," \
- " ignoredChildrenRemote, contentchecksumtype.name || ':' || contentChecksum, e2eMangledName " \
+ " ignoredChildrenRemote, contentchecksumtype.name || ':' || contentChecksum, e2eMangledName, isE2eEncrypted " \
" FROM metadata" \
" LEFT JOIN checksumtype as contentchecksumtype ON metadata.contentChecksumTypeId == contentchecksumtype.id"
rec._serverHasIgnoredFiles = (query.intValue(8) > 0);
rec._checksumHeader = query.baValue(9);
rec._e2eMangledName = query.baValue(10);
+ rec._isE2eEncrypted = query.intValue(11) > 0;
}
static QByteArray defaultJournalMode(const QString &dbPath)
commitInternal("update database structure: add e2eMangledName col");
}
+ if (!columns.contains("isE2eEncrypted")) {
+ SqlQuery query(_db);
+ query.prepare("ALTER TABLE metadata ADD COLUMN isE2eEncrypted INTEGER;");
+ if (!query.exec()) {
+ sqlFail("updateMetadataTableStructure: add e2eMangledName column", query);
+ re = false;
+ }
+ commitInternal("update database structure: add e2eMangledName col");
+ }
+
if (!tableColumns("uploadinfo").contains("contentChecksum")) {
SqlQuery query(_db);
query.prepare("ALTER TABLE uploadinfo ADD COLUMN contentChecksum TEXT;");
qCInfo(lcDb) << "Updating file record for path:" << record._path << "inode:" << record._inode
<< "modtime:" << record._modtime << "type:" << record._type
<< "etag:" << record._etag << "fileId:" << record._fileId << "remotePerm:" << record._remotePerm.toString()
- << "fileSize:" << record._fileSize << "checksum:" << record._checksumHeader << "e2eMangledName:" << record._e2eMangledName;
+ << "fileSize:" << record._fileSize << "checksum:" << record._checksumHeader
+ << "e2eMangledName:" << record._e2eMangledName << "isE2eEncrypted:" << record._isE2eEncrypted;
qlonglong phash = getPHash(record._path);
if (checkConnect()) {
if (!_setFileRecordQuery.initOrReset(QByteArrayLiteral(
"INSERT OR REPLACE INTO metadata "
- "(phash, pathlen, path, inode, uid, gid, mode, modtime, type, md5, fileid, remotePerm, filesize, ignoredChildrenRemote, contentChecksum, contentChecksumTypeId, e2eMangledName) "
- "VALUES (?1 , ?2, ?3 , ?4 , ?5 , ?6 , ?7, ?8 , ?9 , ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17);"), _db)) {
+ "(phash, pathlen, path, inode, uid, gid, mode, modtime, type, md5, fileid, remotePerm, filesize, ignoredChildrenRemote, contentChecksum, contentChecksumTypeId, e2eMangledName, isE2eEncrypted) "
+ "VALUES (?1 , ?2, ?3 , ?4 , ?5 , ?6 , ?7, ?8 , ?9 , ?10, ?11, ?12, ?13, ?14, ?15, ?16, ?17, ?18);"), _db)) {
return false;
}
_setFileRecordQuery.bindValue(15, checksum);
_setFileRecordQuery.bindValue(16, contentChecksumTypeId);
_setFileRecordQuery.bindValue(17, record._e2eMangledName);
+ _setFileRecordQuery.bindValue(18, record._isE2eEncrypted);
if (!_setFileRecordQuery.exec()) {
return false;
existing._fileSize = record._fileSize;
existing._serverHasIgnoredFiles = record._serverHasIgnoredFiles;
existing._e2eMangledName = record._e2eMangledName;
+ existing._isE2eEncrypted = record._isE2eEncrypted;
return setFileRecord(existing);
}