mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-24 13:25:52 +03:00
Merge pull request #2201 from nextcloud/disable_parallelism_for_e2e_remote_mkdir_jobs
Disable parallelism for e2e remote mkdir jobs
This commit is contained in:
commit
15f9eeeb08
2 changed files with 45 additions and 6 deletions
|
@ -28,6 +28,46 @@ namespace OCC {
|
|||
|
||||
Q_LOGGING_CATEGORY(lcPropagateRemoteMkdir, "nextcloud.sync.propagator.remotemkdir", QtInfoMsg)
|
||||
|
||||
PropagateRemoteMkdir::PropagateRemoteMkdir(OwncloudPropagator *propagator, const SyncFileItemPtr &item)
|
||||
: PropagateItemJob(propagator, item)
|
||||
, _deleteExisting(false)
|
||||
, _uploadEncryptedHelper(nullptr)
|
||||
, _parallelism(FullParallelism)
|
||||
{
|
||||
const auto rootPath = [=]() {
|
||||
const auto result = propagator->_remoteFolder;
|
||||
if (result.startsWith('/')) {
|
||||
return result.mid(1);
|
||||
} else {
|
||||
return result;
|
||||
}
|
||||
}();
|
||||
const auto path = _item->_file;
|
||||
const auto slashPosition = path.lastIndexOf('/');
|
||||
const auto parentPath = slashPosition >= 0 ? path.left(slashPosition) : QString();
|
||||
|
||||
SyncJournalFileRecord parentRec;
|
||||
bool ok = propagator->_journal->getFileRecord(parentPath, &parentRec);
|
||||
if (!ok) {
|
||||
done(SyncFileItem::NormalError);
|
||||
return;
|
||||
}
|
||||
|
||||
const auto remoteParentPath = parentRec._e2eMangledName.isEmpty() ? parentPath : parentRec._e2eMangledName;
|
||||
const auto absoluteRemoteParentPath = remoteParentPath.isEmpty() ? rootPath : rootPath + remoteParentPath + '/';
|
||||
const auto account = propagator->account();
|
||||
|
||||
if (account->capabilities().clientSideEncryptionAvailable() &&
|
||||
account->e2e()->isFolderEncrypted(absoluteRemoteParentPath)) {
|
||||
_parallelism = WaitForFinished;
|
||||
}
|
||||
}
|
||||
|
||||
PropagatorJob::JobParallelism PropagateRemoteMkdir::parallelism()
|
||||
{
|
||||
return _parallelism;
|
||||
}
|
||||
|
||||
void PropagateRemoteMkdir::start()
|
||||
{
|
||||
if (propagator()->_abortRequested.fetchAndAddRelaxed(0))
|
||||
|
|
|
@ -30,14 +30,13 @@ class PropagateRemoteMkdir : public PropagateItemJob
|
|||
QPointer<AbstractNetworkJob> _job;
|
||||
bool _deleteExisting;
|
||||
PropagateUploadEncrypted *_uploadEncryptedHelper;
|
||||
JobParallelism _parallelism;
|
||||
friend class PropagateDirectory; // So it can access the _item;
|
||||
public:
|
||||
PropagateRemoteMkdir(OwncloudPropagator *propagator, const SyncFileItemPtr &item)
|
||||
: PropagateItemJob(propagator, item)
|
||||
, _deleteExisting(false)
|
||||
, _uploadEncryptedHelper(nullptr)
|
||||
{
|
||||
}
|
||||
PropagateRemoteMkdir(OwncloudPropagator *propagator, const SyncFileItemPtr &item);
|
||||
|
||||
JobParallelism parallelism() override;
|
||||
|
||||
void start() override;
|
||||
void abort(PropagatorJob::AbortType abortType) override;
|
||||
|
||||
|
|
Loading…
Reference in a new issue