Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <mail@ckamm.de>2019-04-10 11:48:03 +0300
committerChristian Kamm <mail@ckamm.de>2019-04-11 14:48:56 +0300
commit702a494cbbd5fbdab39ee25a5d6c0c703b467d6d (patch)
tree13273edcc782d72f5f3156fa6530b1a8617cc5ab
parent5cbf60c6f4c3e57cfeb679bee6e9fb28c829a562 (diff)
PropagateIgnore: Default to NormalError for INSTRUCTION_ERROR
Previously if one set the instruction to ERROR while forgetting to set an error status, it'd propagate as FileIgnored. Now the default is NormalError for INSTRUCTION_ERROR and FileIgnored for INSTRUCTION_IGNORE.
-rw-r--r--src/libsync/discovery.cpp3
-rw-r--r--src/libsync/owncloudpropagator.h10
-rw-r--r--src/libsync/syncengine.cpp1
3 files changed, 9 insertions, 5 deletions
diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp
index 13de3edb3..93d8a24d7 100644
--- a/src/libsync/discovery.cpp
+++ b/src/libsync/discovery.cpp
@@ -383,7 +383,6 @@ void ProcessDirectoryJob::processFileAnalyzeRemoteInfo(
missingData.append(tr("file id"));
if (!missingData.isEmpty()) {
item->_instruction = CSYNC_INSTRUCTION_ERROR;
- item->_status = SyncFileItem::NormalError;
_childIgnored = true;
item->_errorString = tr("server reported no %1").arg(missingData.join(QLatin1String(", ")));
emit _discoveryData->itemDiscovered(item);
@@ -1137,13 +1136,11 @@ bool ProcessDirectoryJob::checkPermissions(const OCC::SyncFileItemPtr &item)
} else if (item->isDirectory() && !perms.hasPermission(RemotePermissions::CanAddSubDirectories)) {
qCWarning(lcDisco) << "checkForPermission: ERROR" << item->_file;
item->_instruction = CSYNC_INSTRUCTION_ERROR;
- item->_status = SyncFileItem::NormalError;
item->_errorString = tr("Not allowed because you don't have permission to add subfolders to that folder");
return false;
} else if (!item->isDirectory() && !perms.hasPermission(RemotePermissions::CanAddFile)) {
qCWarning(lcDisco) << "checkForPermission: ERROR" << item->_file;
item->_instruction = CSYNC_INSTRUCTION_ERROR;
- item->_status = SyncFileItem::NormalError;
item->_errorString = tr("Not allowed because you don't have permission to add files in that folder");
return false;
}
diff --git a/src/libsync/owncloudpropagator.h b/src/libsync/owncloudpropagator.h
index 3005a847b..6abe7bd38 100644
--- a/src/libsync/owncloudpropagator.h
+++ b/src/libsync/owncloudpropagator.h
@@ -353,7 +353,15 @@ public:
void start() Q_DECL_OVERRIDE
{
SyncFileItem::Status status = _item->_status;
- done(status == SyncFileItem::NoStatus ? SyncFileItem::FileIgnored : status, _item->_errorString);
+ if (status == SyncFileItem::NoStatus) {
+ if (_item->_instruction == CSYNC_INSTRUCTION_ERROR) {
+ status = SyncFileItem::NormalError;
+ } else {
+ status = SyncFileItem::FileIgnored;
+ ASSERT(_item->_instruction == CSYNC_INSTRUCTION_IGNORE);
+ }
+ }
+ done(status, _item->_errorString);
}
};
diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp
index 551106a46..fb1c888a3 100644
--- a/src/libsync/syncengine.cpp
+++ b/src/libsync/syncengine.cpp
@@ -347,7 +347,6 @@ void OCC::SyncEngine::slotItemDiscovered(const OCC::SyncFileItemPtr &item)
QString error;
if (!_syncOptions._vfs->updateMetadata(filePath, item->_modtime, item->_size, item->_fileId, &error)) {
item->_instruction = CSYNC_INSTRUCTION_ERROR;
- item->_status = SyncFileItem::NormalError;
item->_errorString = tr("Could not update virtual file metadata: %1").arg(error);
return;
}