diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2013-11-28 13:00:12 +0400 |
---|---|---|
committer | Olivier Goffart <ogoffart@woboq.com> | 2013-11-28 13:01:30 +0400 |
commit | ef8fe11f5a0927ae685f2021e244b2a32af60bfd (patch) | |
tree | 5750aaada742547d3a61a6129ad3f7e2fa236382 /src | |
parent | 30db533cea8c7f36250a4b30d688865b7a1a889d (diff) |
Do not write the directory etag in the database in case of soft error
Else we won't retry next time as we think nothing has changed.
Diffstat (limited to 'src')
-rw-r--r-- | src/mirall/owncloudpropagator.cpp | 10 | ||||
-rw-r--r-- | src/mirall/owncloudpropagator.h | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/mirall/owncloudpropagator.cpp b/src/mirall/owncloudpropagator.cpp index 2fb00d5a5..92b10fb79 100644 --- a/src/mirall/owncloudpropagator.cpp +++ b/src/mirall/owncloudpropagator.cpp @@ -1052,7 +1052,7 @@ void OwncloudPropagator::start(const SyncFileItemVector& _syncedItems) void PropagateDirectory::start() { _current = -1; - _hasError = false; + _hasError = SyncFileItem::NoStatus; if (!_firstJob) { proceedNext(SyncFileItem::Success); } else { @@ -1065,8 +1065,8 @@ void PropagateDirectory::proceedNext(SyncFileItem::Status status) if (status == SyncFileItem::FatalError) { emit finished(status); return; - } else if (status == SyncFileItem::NormalError) { - _hasError = true; + } else if (status == SyncFileItem::NormalError || status == SyncFileItem::SoftError) { + _hasError = status; } _current ++; @@ -1074,7 +1074,7 @@ void PropagateDirectory::proceedNext(SyncFileItem::Status status) PropagatorJob *next = _subJobs.at(_current); startJob(next); } else { - if (!_item.isEmpty() && !_hasError) { + if (!_item.isEmpty() && _hasError == SyncFileItem::NoStatus) { if( !_item._renameTarget.isEmpty() ) { _item._file = _item._renameTarget; } @@ -1084,7 +1084,7 @@ void PropagateDirectory::proceedNext(SyncFileItem::Status status) _propagator->_journal->setFileRecord(record); } } - emit finished(_hasError ? SyncFileItem::NormalError : SyncFileItem::Success); + emit finished(_hasError == SyncFileItem::NoStatus ? SyncFileItem::Success : _hasError); } } diff --git a/src/mirall/owncloudpropagator.h b/src/mirall/owncloudpropagator.h index 99eed0a5c..ddaf3387b 100644 --- a/src/mirall/owncloudpropagator.h +++ b/src/mirall/owncloudpropagator.h @@ -62,12 +62,12 @@ public: SyncFileItem _item; int _current; // index of the current running job - bool _hasError; // weather there was an error + SyncFileItem::Status _hasError; // NoStatus, or NormalError / SoftError if there was an error explicit PropagateDirectory(OwncloudPropagator *propagator, const SyncFileItem &item = SyncFileItem()) : PropagatorJob(propagator) - , _firstJob(0), _item(item), _current(-1), _hasError(false) { } + , _firstJob(0), _item(item), _current(-1), _hasError(SyncFileItem::NoStatus) { } virtual ~PropagateDirectory() { qDeleteAll(_subJobs); |