if (_item->_instruction == CSYNC_INSTRUCTION_NEW && _item->_direction == SyncFileItem::Down) {
// special case for local MKDIR, set local directory mtime
// (it's not synced later at all, but can be nice to have it set initially)
+
+ if (_item->_modtime <= 0) {
+ status = _item->_status = SyncFileItem::NormalError;
+ _item->_errorString = tr("Error updating metadata due to invalid modified time");
+ qCWarning(lcDirectory) << "Error writing to the database for file" << _item->_file;
+ }
+
FileSystem::setModTime(propagator()->fullLocalPath(_item->destination()), _item->_modtime);
}
Result<void, QString> VfsSuffix::updateMetadata(const QString &filePath, time_t modtime, qint64, const QByteArray &)
{
+ if (modtime <= 0) {
+ return {tr("Error updating metadata due to invalid modified time")};
+ }
+
FileSystem::setModTime(filePath, modtime);
return {};
}
Result<void, QString> VfsSuffix::createPlaceholder(const SyncFileItem &item)
{
+ if (item._modtime <= 0) {
+ return {tr("Error updating metadata due to invalid modified time")};
+ }
+
// The concrete shape of the placeholder is also used in isDehydratedPlaceholder() below
QString fn = _setupParams.filesystemPath + item._file;
if (!fn.endsWith(fileSuffix())) {
Result<void, QString> VfsXAttr::updateMetadata(const QString &filePath, time_t modtime, qint64, const QByteArray &)
{
+ if (modtime <= 0) {
+ return {tr("Error updating metadata due to invalid modified time")};
+ }
+
FileSystem::setModTime(filePath, modtime);
return {};
}
Result<void, QString> VfsXAttr::createPlaceholder(const SyncFileItem &item)
{
+ if (item._modtime <= 0) {
+ return {tr("Error updating metadata due to invalid modified time")};
+ }
+
const auto path = QString(_setupParams.filesystemPath + item._file);
QFile file(path);
if (file.exists() && file.size() > 1