Felix Weilbach
4d72d375f2
Fix warnings related to wrong ordering of ctor init
...
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-08-26 15:52:25 +00:00
Hannah von Reth
5b457a1663
Use byte array for etag
2021-08-23 09:44:33 +02:00
Felix Weilbach
78f1943d76
Add a key value store to the sync journal
...
This key value store should help to keep track of important events,
that can not be store in the logs, because the logs are deleted too fast.
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-05-19 09:04:43 +02:00
allexzander
96472320e4
Fix e2ee folder move issue
...
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-01-14 15:54:30 +02:00
Hannah von Reth
9d9eadba8e
Use time the request was send,..
...
not when it was processed by the client, to determine the quality of the connection.
2020-12-15 11:01:08 +01:00
Christian Kamm
4c4cbf0d97
Vfs: Lots of tests and corrections for suffix edge cases
...
Avoid or deal with problems that happen when suffixed files exist on the
server or suffix and non-suffixed files exist locally.
See #7350 , #7261 .
2020-12-15 10:59:02 +01:00
Christian Kamm
53a217d4e4
Don't store pointer to local job
...
There were crashes in the QPointer assignment. Possibly the thread pool
is done with the job and deletes it before the assignment is done.
2020-12-15 10:58:59 +01:00
Markus Goetz
26b5e36351
Discovery: List local directories from thread #7456 #7439
2020-12-15 10:58:59 +01:00
Christian Kamm
28797baa39
Discovery: If a move is forbidden, restore the source
...
Previously the source was deleted (or attempted to be deleted), even if
the new location was not acceptable for upload. This could make data
unavilable on the server.
For #7410
2020-12-15 10:58:58 +01:00
Christian Kamm
590db28541
Vfs: Clear up relationship between _type and pin state
...
The pin state is a per-item attribute that has an effect on _type:
AlwaysLocal dehydrated files will be marked for hydration and OnlineOnly
hydrated files will be marked for dehydration.
Where exactly this effect materializes depends on how the pin states are
stored. If they're stored in the db (suffix) the dbEntry._type is
changed during the discovery.
If the pin state is stored in the filesystem, the localEntry._type must
be adjusted by the plugin's stat callback.
This patch makes pin states behave more consistently between plugins.
Previously with suffix-vfs pin states only had an effect on new remote
files. Now the effect of pinning or unpinning files or directories is as
documented and similar to other plugins.
2020-12-15 10:58:46 +01:00
Christian Kamm
7f400e3226
Pin state updates
...
- unspecified and inherited are different
- move enum to header in common/
- access through Vfs instead of directly in Journal
2020-12-15 10:58:38 +01:00
Christian Kamm
d956f518a8
vfs: Remove newFilesAreVirtual - use root PinState instead
...
This unifies how to deal with pin states.
Also enable reading a folders direct pin state vs its effective pin
state.
2020-12-15 10:58:30 +01:00
Olivier Goffart
62ec4c9330
Discovery: Handle the blacklistFiles from the server capabilities
...
Issue #434
Ideally one could add the blacklist to the exlucde reggexp, but this
is simpler
2020-12-15 10:58:30 +01:00
Christian Kamm
486c25cb47
vfs: Use PinState in sync algorithm #6815
...
New files are virtual if the file's pin state is OnlineOnly.
2020-12-15 10:58:29 +01:00
Christian Kamm
b30f79edf6
vfs: Ensure SyncOptions::_vfs is never null
...
- Create a VfsOff derived class
- Make it a shared pointer shared with Folder::_vfs
2020-12-15 10:58:26 +01:00
Christian Kamm
ae9a7e088f
vfs: Fix suffix detection and handling
2020-12-15 10:58:22 +01:00
Christian Kamm
00edcf98a1
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
2020-12-15 10:58:14 +01:00
Christian Kamm
113124cde5
Discovery: Introduce smaller functions
2020-12-15 10:58:13 +01:00
Christian Kamm
d1aedcfd3c
Discovery: restructure processFileAnalyzeLocalInfo
2020-12-15 10:58:10 +01:00
Christian Kamm
76341904e9
Discovery: Add comments
2020-12-15 10:58:10 +01:00
Christian Kamm
5683278fab
Discovery: Comments and visibility adjustments
2020-12-15 10:58:09 +01:00
Olivier Goffart
b10b3e5eeb
Discovery: move checkMovePermissions to its own function
2020-12-15 10:58:09 +01:00
Olivier Goffart
1c2a3279bb
New Discovery Algorithm: more cleanups
...
- rename progress() to be more explicit
- Make some more member of the discovery phase private
2020-12-15 10:58:09 +01:00
Olivier Goffart
c009dae1ce
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
2020-12-15 10:58:08 +01:00
Olivier Goffart
afed46afcc
New discovery algorithm: Parallel PROPFIND
2020-12-15 10:58:08 +01:00
Olivier Goffart
52dcfcb166
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
2020-12-15 10:58:07 +01:00
Olivier Goffart
ef542ac83d
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
2020-12-15 10:58:07 +01:00
Olivier Goffart
fc69dda246
New Discovery Algo: Refactor by splitting the processFile in two
2020-12-15 10:58:07 +01:00
Olivier Goffart
21fe54fb13
New Discovery Algo: readability improvements
...
As proposed by ckamm on #6738
2020-12-15 10:58:04 +01:00
Olivier Goffart
a36ed56f01
New Discovery algorithm: Refactor a bit the way the signal are emited
2020-12-15 10:58:02 +01:00
Olivier Goffart
9863500ec1
New discovery algorithm: handle symlinks
2020-12-15 10:58:01 +01:00
Olivier Goffart
a9ec521bf1
New discovery algo: Handle Database error
2020-12-15 10:58:01 +01:00
Olivier Goffart
ac24cdbde6
New Discovery Algo: Permsission check
2020-12-15 10:58:01 +01:00
Olivier Goffart
57068b0fd9
New Discovery Algorithm: handle server errors
2020-12-15 10:58:00 +01:00
Olivier Goffart
1e8c37d3d6
New discovery algorithm: Virtual files
...
The commented tests lines were implementation details
2020-12-15 10:57:59 +01:00
Olivier Goffart
22d989e272
New discovery algorithm: Fix directory deletion
...
TestAllFilesDeleted passes
2020-12-15 10:57:59 +01:00
Olivier Goffart
bdd1e72dda
New discovery algoritmh: more on Renames
2020-12-15 10:57:58 +01:00
Olivier Goffart
f43d07dc05
New Discovery algorithm: Check that the original file is still on the server while renaming
2020-12-15 10:57:58 +01:00
Olivier Goffart
7e36cc3fcb
New disco algorithm: Fix some moving
...
Fix TestSyncMove::testSelectiveSyncMovedFolder
2020-12-15 10:57:58 +01:00
Olivier Goffart
f9a9be59e6
New discovery algo: Remote move
...
TestSyncMove::testRemoteChangeInMovedFolder
2020-12-15 10:57:57 +01:00
Olivier Goffart
501da58b10
Ignore Hidden Files
2020-12-15 10:57:57 +01:00
Olivier Goffart
e934f6b27b
New discovery algo
...
Make TestSyncEngine::testSelectiveSyncBug pass
2020-12-15 10:57:57 +01:00
Olivier Goffart
ec681ab2a5
New discovery algorithm: Initial work.
...
SyncEngineTest testFileDownload is passing
2020-12-15 10:57:56 +01:00