Skip to content

Instantly share code, notes, and snippets.

@nickvergessen
Created March 4, 2016 10:03
Show Gist options
  • Save nickvergessen/bbe9b821f6e41e4f1930 to your computer and use it in GitHub Desktop.
Save nickvergessen/bbe9b821f6e41e4f1930 to your computer and use it in GitHub Desktop.
diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp
index 59dca10..5a3255a 100644
--- a/src/libsync/syncengine.cpp
+++ b/src/libsync/syncengine.cpp
@@ -388,9 +388,16 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote )
_seenFiles.insert(renameTarget);
}
+ qDebug() << "NICKVa: " << item->_file;
+ qDebug() << "NICKVa0: " << file->remotePerm;
+ qDebug() << "NICKVb0: " << _remotePerms[item->_file];
if (remote && file->remotePerm && file->remotePerm[0]) {
_remotePerms[item->_file] = file->remotePerm;
+ qDebug() << "NICKVa1: " << file->remotePerm;
+ qDebug() << "NICKVb1: " << _remotePerms[item->_file];
}
+ qDebug() << "NICKVa2: " << file->remotePerm;
+ qDebug() << "NICKVb2: " << _remotePerms[item->_file];
switch(file->error_status) {
case CSYNC_STATUS_OK:
@@ -522,6 +529,8 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote )
// remote tree doesn't ask us to do some kind of propagation.
item->_isDirectory = isDirectory;
_syncItemMap.insert(key, item);
+
+ qDebug() << "NICKVx: " << _remotePerms[item->_file];
}
return re;
}
@@ -582,8 +591,10 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote )
item->log._other_size = file->other.size;
_syncItemMap.insert(key, item);
+ qDebug() << "NICKVy1: " << _remotePerms[item->_file];
emit syncItemDiscovered(*item);
+ qDebug() << "NICKVy2: " << _remotePerms[item->_file];
return re;
}
@@ -814,6 +825,7 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
for (SyncFileItemVector::iterator it = _syncedItems.begin();
it != _syncedItems.end(); ++it) {
(*it)->_file = adjustRenamedPath((*it)->_file);
+ qDebug() << "_syncedItems to _syncItemMap: " << (*it)->_file << " perms: " << (*it)->_remotePerm;
}
// Check for invalid character in old server version
@@ -1000,7 +1012,13 @@ void SyncEngine::checkForPermission()
auto selectiveSyncBlackList = _journal->getSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList);
std::sort(selectiveSyncBlackList.begin(), selectiveSyncBlackList.end());
+ foreach(QString file, _remotePerms.keys()) {
+ qDebug() << "Loooooooping " << file << " perms: " << _remotePerms[file];
+ }
+
+
for (SyncFileItemVector::iterator it = _syncedItems.begin(); it != _syncedItems.end(); ++it) {
+ qDebug() << "checkForPermissionNICKV: " << (*it)->_file << " perms: " << (*it)->_remotePerm;
if ((*it)->_direction != SyncFileItem::Up) {
// Currently we only check server-side permissions
continue;
@@ -1031,6 +1049,7 @@ void SyncEngine::checkForPermission()
int slashPos = (*it)->_file.lastIndexOf('/');
QString parentDir = slashPos <= 0 ? "" : (*it)->_file.mid(0, slashPos);
const QByteArray perms = getPermissions(parentDir);
+ qDebug() << "checkForPermission: parentDir" << parentDir;
if (perms.isNull()) {
// No permissions set
break;
@@ -1049,6 +1068,7 @@ void SyncEngine::checkForPermission()
} else if (!(*it)->_isDirectory && !perms.contains("C")) {
qDebug() << "checkForPermission: ERROR" << (*it)->_file;
+ qDebug() << "checkForPermission: PERMS" << perms;
(*it)->_instruction = CSYNC_INSTRUCTION_ERROR;
(*it)->_status = SyncFileItem::NormalError;
(*it)->_errorString = tr("Not allowed because you don't have permission to add files in that folder");
diff --git a/src/libsync/syncjournaldb.cpp b/src/libsync/syncjournaldb.cpp
index e88bd40..483a78b 100644
--- a/src/libsync/syncjournaldb.cpp
+++ b/src/libsync/syncjournaldb.cpp
@@ -798,6 +798,7 @@ SyncJournalFileRecord SyncJournalDb::getFileRecord( const QString& filename )
rec._etag = _getFileRecordQuery->baValue(7);
rec._fileId = _getFileRecordQuery->baValue(8);
rec._remotePerm = _getFileRecordQuery->baValue(9);
+ qDebug() << "PLEASE NOOOOOOOOOOOOOOOOOOOOOOOO: " << filename << ", Error:" << rec._remotePerm;
rec._fileSize = _getFileRecordQuery->int64Value(10);
rec._serverHasIgnoredFiles = (_getFileRecordQuery->intValue(11) > 0);
rec._contentChecksum = _getFileRecordQuery->baValue(12);
diff --git a/src/libsync/syncjournalfilerecord.cpp b/src/libsync/syncjournalfilerecord.cpp
index 96f9007..4a9eaff 100644
--- a/src/libsync/syncjournalfilerecord.cpp
+++ b/src/libsync/syncjournalfilerecord.cpp
@@ -82,6 +82,7 @@ SyncJournalFileRecord::SyncJournalFileRecord(const SyncFileItem &item, const QSt
}
#endif
qDebug() << Q_FUNC_INFO << localFileName << "Retrieved inode " << _inode << "(previous item inode: " << item._inode << ")";
+ qDebug() << localFileName << "PLEASE " << _remotePerm << "(previous item inode: " << item._remotePerm << ")";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment