mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-27 23:17:13 +03:00
Remove SyncEngine::_remotePerms
Now that csync is using a more convenient data structure for its file trees, wait a little bit longer before destroying them and fetch the remote permissions from the remote tree there instead.
This commit is contained in:
parent
3bc1f63b0a
commit
82dd1775eb
2 changed files with 16 additions and 16 deletions
|
@ -412,8 +412,6 @@ int SyncEngine::treewalkFile(csync_file_stat_t *file, csync_file_stat_t *other,
|
||||||
}
|
}
|
||||||
if (!file->remotePerm.isEmpty()) {
|
if (!file->remotePerm.isEmpty()) {
|
||||||
item->_remotePerm = file->remotePerm;
|
item->_remotePerm = file->remotePerm;
|
||||||
if (remote)
|
|
||||||
_remotePerms[item->_file] = item->_remotePerm;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The flag "serverHasIgnoredFiles" is true if item in question is a directory
|
/* The flag "serverHasIgnoredFiles" is true if item in question is a directory
|
||||||
|
@ -933,8 +931,6 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
|
||||||
_hasForwardInTimeFiles = false;
|
_hasForwardInTimeFiles = false;
|
||||||
_backInTimeFiles = 0;
|
_backInTimeFiles = 0;
|
||||||
bool walkOk = true;
|
bool walkOk = true;
|
||||||
_remotePerms.clear();
|
|
||||||
_remotePerms.reserve(_csync_ctx->remote.files.size());
|
|
||||||
_seenFiles.clear();
|
_seenFiles.clear();
|
||||||
_temporarilyUnavailablePaths.clear();
|
_temporarilyUnavailablePaths.clear();
|
||||||
_renamedFolders.clear();
|
_renamedFolders.clear();
|
||||||
|
@ -947,13 +943,7 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
|
||||||
qCWarning(lcEngine) << "Error in remote treewalk.";
|
qCWarning(lcEngine) << "Error in remote treewalk.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_csync_ctx->remote.root_perms.isEmpty()) {
|
qCInfo(lcEngine) << "Permissions of the root folder: " << _csync_ctx->remote.root_perms;
|
||||||
_remotePerms[QLatin1String("")] = _csync_ctx->remote.root_perms;
|
|
||||||
qCInfo(lcEngine) << "Permissions of the root folder: " << _remotePerms[QLatin1String("")];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Re-init the csync context to free memory
|
|
||||||
_csync_ctx->reinitialize();
|
|
||||||
|
|
||||||
// The map was used for merging trees, convert it to a list:
|
// The map was used for merging trees, convert it to a list:
|
||||||
SyncFileItemVector syncItems = _syncItemMap.values().toVector();
|
SyncFileItemVector syncItems = _syncItemMap.values().toVector();
|
||||||
|
@ -1016,6 +1006,9 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
|
||||||
// make sure everything is allowed
|
// make sure everything is allowed
|
||||||
checkForPermission(syncItems);
|
checkForPermission(syncItems);
|
||||||
|
|
||||||
|
// Re-init the csync context to free memory
|
||||||
|
_csync_ctx->reinitialize();
|
||||||
|
|
||||||
// To announce the beginning of the sync
|
// To announce the beginning of the sync
|
||||||
emit aboutToPropagate(syncItems);
|
emit aboutToPropagate(syncItems);
|
||||||
|
|
||||||
|
@ -1150,7 +1143,6 @@ void SyncEngine::finalize(bool success)
|
||||||
|
|
||||||
// Delete the propagator only after emitting the signal.
|
// Delete the propagator only after emitting the signal.
|
||||||
_propagator.clear();
|
_propagator.clear();
|
||||||
_remotePerms.clear();
|
|
||||||
_seenFiles.clear();
|
_seenFiles.clear();
|
||||||
_temporarilyUnavailablePaths.clear();
|
_temporarilyUnavailablePaths.clear();
|
||||||
_renamedFolders.clear();
|
_renamedFolders.clear();
|
||||||
|
@ -1460,7 +1452,18 @@ QByteArray SyncEngine::getPermissions(const QString &file) const
|
||||||
return rx.cap(1).toLatin1();
|
return rx.cap(1).toLatin1();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return _remotePerms.value(file);
|
|
||||||
|
// Fetch from the csync context while we still have it.
|
||||||
|
ASSERT(_csync_ctx->status != CSYNC_STATUS_INIT);
|
||||||
|
|
||||||
|
if (file == QLatin1String(""))
|
||||||
|
return _csync_ctx->remote.root_perms;
|
||||||
|
|
||||||
|
auto it = _csync_ctx->remote.files.find(file.toUtf8());
|
||||||
|
if (it != _csync_ctx->remote.files.end()) {
|
||||||
|
return it->second->remotePerm;
|
||||||
|
}
|
||||||
|
return QByteArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SyncEngine::restoreOldFiles(SyncFileItemVector &syncItems)
|
void SyncEngine::restoreOldFiles(SyncFileItemVector &syncItems)
|
||||||
|
|
|
@ -259,9 +259,6 @@ private:
|
||||||
int _downloadLimit;
|
int _downloadLimit;
|
||||||
SyncOptions _syncOptions;
|
SyncOptions _syncOptions;
|
||||||
|
|
||||||
// hash containing the permissions on the remote directory
|
|
||||||
QHash<QString, QByteArray> _remotePerms;
|
|
||||||
|
|
||||||
/// Hook for computing checksums from csync_update
|
/// Hook for computing checksums from csync_update
|
||||||
CSyncChecksumHook _checksum_hook;
|
CSyncChecksumHook _checksum_hook;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue