For that, treat the not accessible directory as if it were ignored.
This will fix #3767
/* permission denied */
ctx->status_code = csync_errno_to_status(errno, CSYNC_STATUS_OPENDIR_ERROR);
if (errno == EACCES) {
- return 0;
+ if (ctx->current_fs) {
+ ctx->current_fs->instruction = CSYNC_INSTRUCTION_IGNORE;
+ ctx->current_fs->error_status = CSYNC_STATUS_PERMISSION_DENIED;
+ /* If a directory has ignored files, put the flag on the parent directory as well */
+ if( previous_fs ) {
+ previous_fs->has_ignored_files = true;
+ }
+ }
+ goto done;
+ // previously return 0;
} else if(errno == ENOENT) {
asp = asprintf( &ctx->error_string, "%s", uri);
if (asp < 0) {
item->_status = SyncFileItem::SoftError;
_temporarilyUnavailablePaths.insert(item->_file);
break;
+ case CSYNC_STATUS_PERMISSION_DENIED:
+ item->_errorString = QLatin1String("Directory not accessible on client, permission denied.");
+ item->_status = SyncFileItem::SoftError;
+ break;
default:
Q_ASSERT("Non handled error-status");
/* No error string */