Gerhard Gappmeier [Fri, 9 Nov 2018 12:39:50 +0000 (13:39 +0100)]
owncloudcmd: fix compiliation with TOKEN_AUTH_ONLY
Gerhard Gappmeier [Thu, 8 Nov 2018 17:17:29 +0000 (18:17 +0100)]
libsync: Fix build error with TOKEN_AUTH_ONLY
When enabling TOKEN_AUTH_ONLY, the code path using QPainter is disabled.
So we also don't need the includes.
This header is not available for Remarkable.
Gerhard Gappmeier [Thu, 8 Nov 2018 17:15:52 +0000 (18:15 +0100)]
Disable stack protector features when cross compiling
When cross-compiling this for remarkable using the poky toolchain
this results in linker errors with stack protector: libssp_nonshared.a
not found
Gerhard Gappmeier [Thu, 8 Nov 2018 17:15:04 +0000 (18:15 +0100)]
Add CMake option to disable GUI build
Kevin Ottens [Thu, 26 Nov 2020 18:08:17 +0000 (19:08 +0100)]
Get DatabaseErrorTest to pass
The E2EE code path would get the engine to go wrong in case of db error.
It's just better to have a failing upload or failing mkdir later in those
cases.
Emitting signals from a ctor is a bad idea anyway
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
Olivier Goffart [Thu, 26 Nov 2020 14:27:03 +0000 (15:27 +0100)]
Test that the sync behave well if there are errors while reading the database
Olivier Goffart [Mon, 5 Nov 2018 12:25:31 +0000 (13:25 +0100)]
Discovery: fix double emission of finished in case of error
Olivier Goffart [Wed, 7 Nov 2018 09:49:33 +0000 (10:49 +0100)]
Discovery: Fix downloading files when database is used for local discovery
This also fix the currently failling LockedFilesTest
Olivier Goffart [Wed, 7 Nov 2018 09:32:27 +0000 (10:32 +0100)]
Remove csync.cpp: It's only dead code
Christian Kamm [Tue, 6 Nov 2018 09:59:28 +0000 (10:59 +0100)]
Add Ctrl-L as log window shortcut
F12 is taken on OSX and there's no other way of showing it.
Christian Kamm [Mon, 5 Nov 2018 11:12:49 +0000 (12:12 +0100)]
Test: Add test for locked file tracking and propagation
Christian Kamm [Thu, 1 Nov 2018 11:25:12 +0000 (12:25 +0100)]
Folder: Treat file unlock similar to external change #6822
For consistent handling of incoming notifications.
Christian Kamm [Mon, 8 Oct 2018 10:36:43 +0000 (12:36 +0200)]
Propagator: Add assert against duplicate done() calls
Olivier Goffart [Mon, 5 Nov 2018 11:03:39 +0000 (12:03 +0100)]
RemoteDiscoveryTest: Fix after the merge from 2.5
The new discovery's message is slightly different
Christian Kamm [Thu, 1 Nov 2018 11:13:16 +0000 (12:13 +0100)]
Test: Check for folder in error message #6826
Markus Goetz [Wed, 31 Oct 2018 18:31:01 +0000 (19:31 +0100)]
gitignore: XCode userdata
Olivier Goffart [Fri, 2 Nov 2018 15:46:38 +0000 (16:46 +0100)]
Discovery: Fix renaming on windows
buf.type is ItemFileSkip because csync_vio_local_stat does not set this field
Olivier Goffart [Thu, 1 Nov 2018 10:02:54 +0000 (11:02 +0100)]
New Discovery: Fix trailing slash causing failure on windows
Olivier Goffart [Wed, 31 Oct 2018 15:34:23 +0000 (16:34 +0100)]
Folder: update the folder version
Since the new index would crash old version of the client, we need to
upgrade folder version so they do not load in the client 2.5.0
Christian Kamm [Mon, 29 Oct 2018 11:31:39 +0000 (12:31 +0100)]
Settings: Make FoldersWithPlaceholders group sticky
If virtual files are disabled on a folder it might still have db entries
or local virtual files that would confuse older client versions.
Olivier Goffart [Mon, 29 Oct 2018 10:38:54 +0000 (11:38 +0100)]
owncloudcmd: Read the server version from the capabilities
Issue: #6846
Olivier Goffart [Wed, 24 Oct 2018 08:44:56 +0000 (10:44 +0200)]
owncloudcmd: fetch the dav user
This is required to get the new endpoint working when the server
uses ldap or that the dav user is not the same as the login.
Issue #6830
Olivier Goffart [Wed, 24 Oct 2018 10:47:41 +0000 (12:47 +0200)]
Sharing: add the `shareWithAdditionalInfo` string in autocompletion results
Issue #6749
Olivier Goffart [Wed, 24 Oct 2018 13:42:42 +0000 (15:42 +0200)]
Migration from 2.4: fallback to move file by file if directory move failled (#6807)
Migration from 2.4: fallback to move file by file if directory move failed
This can happen if the directory already exist because, say, it was
created by the ownCloud outlook plugin which save its file in the same directory
Olivier Goffart [Wed, 24 Oct 2018 08:28:26 +0000 (10:28 +0200)]
Move: Fix too many starting slashes in the destination header
QDir::cleanPath does not remove starting slashes on windows.
So use account::davUrl which is already cleaned
Issue: #6824
Olivier Goffart [Wed, 24 Oct 2018 09:57:08 +0000 (11:57 +0200)]
Wizard: Reset the QSslConfiguration before checking the server
Because a previous call with another demain might have set some
config for another server.
Issue #6832
Olivier Goffart [Sat, 20 Oct 2018 13:13:23 +0000 (15:13 +0200)]
Fix compiler warning
Olivier Goffart [Wed, 17 Oct 2018 12:49:00 +0000 (14:49 +0200)]
OAuth2: Refresh the token without aborting the sync
OAuth2 access token typically only has a token valid for 1 hour.
Before this patch, when the token was timing out during the sync, the
sync was aborted, and the ConnectionValidator was then requesting a new
token, so the sync can be started over.
If the discovery takes longer than the oauth2 validity, this means that
the sync can never proceed, as it would be always restarted from scratch.
With this patch, we try to transparently renew the OAuth2 token and restart
the jobs that failed because the access token was invalid.
Note that some changes were required in the GETFile job because it handled
the error itself and so it was erroring the jobs before its too late.
Issue #6814
Olivier Goffart [Wed, 17 Oct 2018 09:25:54 +0000 (11:25 +0200)]
HttpCredentials: initialize all member inline
Dominik Schmidt [Tue, 16 Oct 2018 17:18:01 +0000 (10:18 -0700)]
Disable autostartCheckBox if autostart is configured system wide
Christian Kamm [Fri, 19 Oct 2018 12:40:39 +0000 (14:40 +0200)]
Discovery: Virtual file handling adjustments
- adjust virtual file path handing
- helpers for vfs suffix adding/removal
- helpers for isDirectory/isVirtual on SyncJournalRecords
- be clear about what PathTuple _local/_server mean
Olivier Goffart [Sat, 20 Oct 2018 11:24:31 +0000 (13:24 +0200)]
Database: Add an index on the parent path
So we can quickly query the items in a parent directory
This uses a custom slite3 function, which means that when downgrading the client,
or using another tool to add entries in the database, any insertion in the metadata
table will produce an error: "unknown function: parent_hash()"
(This will crash the client 2.5)
Olivier Goffart [Sat, 20 Oct 2018 11:25:22 +0000 (13:25 +0200)]
Add missing export
Christian Kamm [Fri, 19 Oct 2018 09:23:50 +0000 (11:23 +0200)]
Discovery: Fix log output for instructions
Christian Kamm [Fri, 19 Oct 2018 08:51:25 +0000 (10:51 +0200)]
Discovery: Don't rebuild invalidFilname regex each call
Christian Kamm [Fri, 19 Oct 2018 08:45:11 +0000 (10:45 +0200)]
Discovery: Introduce smaller functions
Christian Kamm [Fri, 19 Oct 2018 08:28:22 +0000 (10:28 +0200)]
Excludes: drop csyncTraversalMatchFun()
The new discovery can call the traversal match function directly.
Christian Kamm [Fri, 19 Oct 2018 08:24:47 +0000 (10:24 +0200)]
Discovery: Add back virtual file instruction checks
Olivier Goffart [Fri, 19 Oct 2018 07:11:01 +0000 (09:11 +0200)]
Fix windows build
Olivier Goffart [Wed, 17 Oct 2018 13:15:11 +0000 (15:15 +0200)]
Account Settings: fix progress being written in white when there are errors
Christian Kamm [Fri, 31 Aug 2018 13:50:54 +0000 (15:50 +0200)]
Virtual files: Wipe selective sync settings when enabled
Christian Kamm [Thu, 30 Aug 2018 15:55:24 +0000 (17:55 +0200)]
virtual files: show option only when branding allows it
Christian Kamm [Fri, 31 Aug 2018 13:50:36 +0000 (15:50 +0200)]
Virtual files: Use theme to check for option availability
Olivier Goffart [Thu, 26 Nov 2020 08:56:52 +0000 (09:56 +0100)]
Account Settings: Add a context menu entry to enable or disable virtual files
Issue #6725
Olivier Goffart [Tue, 9 Oct 2018 07:20:15 +0000 (09:20 +0200)]
Upload: Do not error out if the server do not send the X-OC-MTime: accepted header
If the server does not set the mtime, it is not a big problem for the
synchronisation.
The test was used before so we could do a PROPPATCH for server that did not
support this header. But now that all server supports that we don't need to
to the check. (We do not do the PROPPATCH since we got rid of the neon
dependency)
Apparently, it may happen that some backend don't support setting mtime
and this can lead to this error.
https://github.com/owncloud/client/issues/6797
Dominik Schmidt [Thu, 27 Sep 2018 18:08:48 +0000 (20:08 +0200)]
Do not select ownCloud in Finder after installation to fix #6781
Olivier Goffart [Fri, 5 Oct 2018 17:45:43 +0000 (19:45 +0200)]
OAuth2: Store 'Account::davUser' in the config, and use that user for connecting
We need to use the user id to check if we are connected to the right account.
These might be different from the HTTP Basic Auth login. (LDAP setups)
When the account was configured as an oauth2 account form the wisard, the
http_user was already set correctly to the user id. But when the server is
upgrading from basic auth to oauth2, we need to pick the right login.
Note that Account::davUser() already defaults to the HTTP user when none
is set, so this means the upgrade will be fine if this is not set in the
config.
Issues:
https://github.com/owncloud/oauth2/issues/109
https://github.com/owncloud/enterprise/issues/2781
Olivier Goffart [Thu, 11 Oct 2018 10:15:44 +0000 (12:15 +0200)]
Local discovery: always recurse within touched directory
If the file system watcher tells us a directory was modified, we should
recurse into it because it means it is probably a new directory
Issue #6804
Christian Kamm [Mon, 8 Oct 2018 10:04:54 +0000 (12:04 +0200)]
PropagateUpload: Avoid crash due to cascading aborts
https://sentry.io/owncloud/desktop-win-and-mac/issues/
698694072/activity/
Olivier Goffart [Fri, 5 Oct 2018 17:03:08 +0000 (19:03 +0200)]
Fix leaks in tests
As discovered by AddressSanitizer
Christian Kamm [Wed, 17 Oct 2018 08:59:45 +0000 (10:59 +0200)]
Discovery: restructure processFileAnalyzeLocalInfo
Christian Kamm [Wed, 17 Oct 2018 08:43:25 +0000 (10:43 +0200)]
Discovery: easy conditions first in processFileAnalyzeRemoteInfo
Removing two levels of indent that way
Christian Kamm [Wed, 17 Oct 2018 08:42:58 +0000 (10:42 +0200)]
Discovery: Add comments
Olivier Goffart [Tue, 16 Oct 2018 14:18:39 +0000 (16:18 +0200)]
Discovery: make sure finished is not called twice, even in case of errors
Olivier Goffart [Tue, 16 Oct 2018 14:08:49 +0000 (16:08 +0200)]
Remove the backup deteciton code which was used for server < 9.1
Olivier Goffart [Tue, 16 Oct 2018 14:00:59 +0000 (16:00 +0200)]
Discovery: Remove stale DB entries
And test the Remove/Remove case.
This means we need to always query the database for all the entries.
This showed another small bug in the test in which sync item for virtual
files at the root could have a slash in front of them.
Christian Kamm [Tue, 16 Oct 2018 13:08:04 +0000 (15:08 +0200)]
Discovery: Comments and visibility adjustments
Olivier Goffart [Tue, 16 Oct 2018 11:25:17 +0000 (13:25 +0200)]
Discovery: cleanups and comments
Olivier Goffart [Tue, 16 Oct 2018 12:55:39 +0000 (14:55 +0200)]
Discovery: move checkMovePermissions to its own function
Olivier Goffart [Tue, 16 Oct 2018 12:44:20 +0000 (14:44 +0200)]
Discovery: Adjust the instruction in case of resolved conflict
When resolving a conflict because the file was just updated on the server,
we write all the metadata on the database immediatly, so INSTRUCITON_NONE
is enough and UPDATE_METADATA is not needed
Olivier Goffart [Tue, 16 Oct 2018 11:42:52 +0000 (13:42 +0200)]
ProcessDirectoryJob: always set _childModified to true, regardless the direction
This was like that to handle the case of CSYNC_INSTRUCTION_TYPE_CHANGE, but just add
a condition in this location.
Olivier Goffart [Tue, 16 Oct 2018 11:03:24 +0000 (13:03 +0200)]
Discovery phase: refactor some code in DiscoveryPhase::findAndCancelDeletedJob
Less code duplication
Olivier Goffart [Tue, 16 Oct 2018 09:03:46 +0000 (11:03 +0200)]
New Discovery Algorithm: more cleanups
- rename progress() to be more explicit
- Make some more member of the discovery phase private
Olivier Goffart [Mon, 15 Oct 2018 16:05:51 +0000 (18:05 +0200)]
Fixup commit
835c9163374f42003aa2f7795ade3f4ff62c8877
The previous code considered the also HTTP 207 code without the
application/xml header to have this message.
httpCode 0 does not make much sense anyway.
This change the behavior to consider any 2xx without the xml header
to show this error message
Olivier Goffart [Mon, 15 Oct 2018 15:02:04 +0000 (17:02 +0200)]
New discovery algorithm: fixups
Adapt reviews from ckamm in https://github.com/owncloud/client/pull/6738#pullrequestreview-
164623532
- SyncJournalFileRecord: initialize everything inline
- Add more comments
- And some ENFORCE
Olivier Goffart [Mon, 15 Oct 2018 14:51:24 +0000 (16:51 +0200)]
Move Result to its own header
Olivier Goffart [Fri, 12 Oct 2018 12:44:33 +0000 (14:44 +0200)]
New discovery algorithm: Parallel PROPFIND
Olivier Goffart [Tue, 9 Oct 2018 13:54:42 +0000 (15:54 +0200)]
New Discovery algorithm: Remove the sync cleanup phase
Since we do not recurse within some directories, many files are not seen.
The stale entry will cleanup by themself as the sync engine try to remove
the files that are already removed.
Should we need to actually do this cleanup, it should be dotected in the
discovery.
Olivier Goffart [Tue, 9 Oct 2018 13:54:03 +0000 (15:54 +0200)]
New discovery algorithm: Set the originalFile for ignored files
This is used to show the name in the UI
Olivier Goffart [Tue, 9 Oct 2018 13:12:02 +0000 (15:12 +0200)]
New Propagation algorithm: Fetch, and emit, the root etag
Remove the feature to concatenate etags as servers that don't
have a root etag are no longer suported
Olivier Goffart [Tue, 9 Oct 2018 11:45:27 +0000 (13:45 +0200)]
New Discovery Algorithm: Ge tthe size of new folders
Also add a test that this works properly
Olivier Goffart [Tue, 9 Oct 2018 10:49:21 +0000 (12:49 +0200)]
New Discovery algorithm: Split the process function even further
Move the finialization in its own function.
This allow to save a bit of code duplication.
Also change the order of the parameter in the constructor for consistency
Olivier Goffart [Fri, 5 Oct 2018 09:05:08 +0000 (11:05 +0200)]
New Discovery Algo: Refactor by splitting the processFile in two
Olivier Goffart [Thu, 4 Oct 2018 13:04:29 +0000 (15:04 +0200)]
New Discovery Algorithm: Handle rename of virtual files
Christian Kamm [Wed, 26 Sep 2018 11:41:02 +0000 (13:41 +0200)]
Virtual files: Renames propagate #6718
Olivier Goffart [Sun, 16 Sep 2018 10:25:44 +0000 (12:25 +0200)]
Folder Wizard: Disable the 'choose what to sync' treeview if virtual files are selected
Don't allow to configure virtual files with a selective sync blacklist
Olivier Goffart [Sun, 16 Sep 2018 19:52:50 +0000 (21:52 +0200)]
AccountSetting: Fix Small Memoy leak
Olivier Goffart [Wed, 5 Sep 2018 16:36:53 +0000 (18:36 +0200)]
Fix tx.pl
The conflict filename changed
Olivier Goffart [Mon, 3 Sep 2018 07:45:08 +0000 (09:45 +0200)]
AccountSettings: Force sync should wipe the blacklist
Issue #6757
Olivier Goffart [Thu, 30 Aug 2018 16:14:33 +0000 (18:14 +0200)]
Virtual files: don't check for new big folders
https://github.com/owncloud/client/issues/6724#issuecomment-
417368475
Olivier Goffart [Thu, 30 Aug 2018 16:14:13 +0000 (18:14 +0200)]
Virtual files: Don't show selective sync
Issue #6724
Olivier Goffart [Tue, 28 Aug 2018 08:35:26 +0000 (10:35 +0200)]
Socket API: add an option to replace existing files with virtual files
Issue #6726
Olivier Goffart [Fri, 29 Jun 2018 07:43:53 +0000 (09:43 +0200)]
Update the minimum supported version
We want to warn if the server version is not supported and did not get
appropriate QA for this client version.
https://github.com/owncloud/enterprise/issues/2687
Markus Goetz [Wed, 22 Aug 2018 14:38:57 +0000 (16:38 +0200)]
CMakeLists.txt: Log the Qt version in compile
Christian Kamm [Tue, 21 Aug 2018 09:24:45 +0000 (11:24 +0200)]
Conflicts: Rename BasePath to InitialBasePath #6709
Olivier Goffart [Thu, 5 Jul 2018 12:36:10 +0000 (14:36 +0200)]
Checksum: Add support for SHA256 and SHA3
In case, some day, the server also supports it
Olivier Goffart [Thu, 5 Jul 2018 12:24:44 +0000 (14:24 +0200)]
Move the checksum related routine from FileSystem to checksum, where they belong
Olivier Goffart [Mon, 3 Sep 2018 09:47:15 +0000 (11:47 +0200)]
Fix a compilation error on windows
Olivier Goffart [Mon, 27 Aug 2018 13:10:12 +0000 (15:10 +0200)]
New Discovery Algo: readability improvements
As proposed by ckamm on #6738
Olivier Goffart [Tue, 21 Aug 2018 17:54:48 +0000 (19:54 +0200)]
New discovery algo: data finger print
Olivier Goffart [Tue, 21 Aug 2018 11:08:09 +0000 (13:08 +0200)]
New Disco Algo: Handle spurious virtual files
Port commit
0b9049e6ff01401883184d29d22dd4a30c092da8
for issue #6718
Olivier Goffart [Tue, 21 Aug 2018 08:45:27 +0000 (10:45 +0200)]
Fix test link with older Qt
Olivier Goffart [Tue, 14 Aug 2018 11:35:04 +0000 (13:35 +0200)]
Conflict handling: add the OC-ConflictBasePath header
Issue #6702
Olivier Goffart [Sat, 18 Aug 2018 07:37:00 +0000 (09:37 +0200)]
Account Settings: Add a text for folder using vierual files
Issue #6723
Olivier Goffart [Sat, 18 Aug 2018 07:14:01 +0000 (09:14 +0200)]
Virtual Files: Set the mtime of the virtual file to that of the server
Note: When the server mtime is modified, the mtime of the file is not updated
Issue #6727
Olivier Goffart [Fri, 17 Aug 2018 10:04:48 +0000 (12:04 +0200)]
Virtual Files Mime Type: use "vnd." prefix instead of "x-"
As reported in https://github.com/owncloud/client/issues/6717#issuecomment-
413703567
Christian Kamm [Thu, 16 Aug 2018 10:38:39 +0000 (12:38 +0200)]
Virtual files: Renaming to virtual doesn't delete data #6718
Unfortunately to do this, the local update phase must write to the
database, creating a new side-effect and order dependency (local update
must run before remote update).
Olivier Goffart [Tue, 7 Aug 2018 07:32:14 +0000 (09:32 +0200)]
SyncEngine: Fix renames making hierarchy inversion
Issue #6694
Christian Kamm [Wed, 15 Aug 2018 10:16:46 +0000 (12:16 +0200)]
RemotePermissions: Fix empty vs null
Fixes two bugs that appeared since the introduction of the struct:
- when reading permissions from the journal, null ("") was read as
empty-not-null
- when reading permissinos from the server, empty ("") was read as null
Addresses #4608
Olivier Goffart [Wed, 1 Aug 2018 09:10:38 +0000 (11:10 +0200)]
FolderStatusModel: Do not abort applying selective sync if one folder has an error
Issue #6675