Matthieu Gallien
01ecb639ab
use new connect syntax
...
mainly done using clazy and old-style-connect check
close #5426
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-02-28 09:36:27 +01:00
Matthieu Gallien
602b8db5e2
handle case clash conflicts in a similar way to content conflicts
...
introduce a new type of conflict for case clash filename conflicts
add proper handling including a new utility class to solve them and a
new dialog for the user to pick a fix
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-01-25 16:37:35 +01:00
alex-z
089b677633
Fix SyncEngineTest failure when localstate is destroyed.
...
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-12-15 10:32:10 +01:00
Matthieu Gallien
af49e1079a
fix test and code to not stop on case clash errors
...
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-11-30 11:49:35 +01:00
Matthieu Gallien
b68754827c
case clash should not prevent full propagation
...
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-11-30 11:49:35 +01:00
Matthieu Gallien
c379879e30
check that we update local file mtime on changes from server
...
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-11-22 15:08:46 +01:00
allexzander
5175d186a4
Do not ignore return values for SyncJournalDB in unit tests.
...
Signed-off-by: allexzander <blackslayer4@gmail.com>
2022-09-17 09:47:15 +02:00
Matthieu Gallien
b5a10d7829
add new tests dedicated for recovery scenario of wrong mtime on server
...
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-03-17 23:28:02 +00:00
Matthieu Gallien
d4081c99a7
prevent updating files when that would result in invalid mtime
...
ensure that we never try to sync a file with a sync that would result in
setting it up to an invalid mtime
test a recovery scenario with plain old sync folder and virtual files
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-03-17 23:28:02 +00:00
alex-z
37168fce9f
Fix review comments.
...
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-25 15:31:26 +00:00
alex-z
1a300d0d56
Unit tests for new files restore logic when the parent folder is removed on the server.
...
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-25 15:31:26 +00:00
alex-z
3443de4388
Rollback local move when server move has failed.
...
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-23 16:53:26 +02:00
Matthieu Gallien
e4590d7a3b
ensure that bulk upload network job errors are handled
...
in case we get a network error during bulk propagator POST network
request, report all files within this upload as files in error that will
then be sent using the plain old WebDAV protocol
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-02-11 09:44:20 +01:00
alex-z
225753a8c0
Refactor DeleteJob and DeleteApiJob to use SimpleFileJob.
...
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-11 13:37:09 +00:00
alex-z
190d278fd4
Checksum validation PropagateDownload unit tests.
...
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-01-11 13:37:09 +00:00
Matthieu Gallien
c194605c35
implement bulk upload
...
add PutMultiFileJob to send many files at once
use it in BulkPropagatorJob to implement bulk upload feature
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-24 16:17:47 +01:00
Matthieu Gallien
112be18635
read capabilities for bulk upload from server
...
use it in dedicated tests
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-24 16:17:47 +01:00
Matthieu Gallien
c6344c05be
add test to check the order of actions when uploading new files
...
should allow to check that uploads are delayed after directories are
created
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-10-26 12:45:15 +02:00
Hannah von Reth
3a87067348
Cleanup
2021-08-23 09:40:26 +02:00
Hannah von Reth
4d615c31da
Rename csync_instructions_e -> SyncInsturctions
2020-12-15 10:59:10 +01:00
Olivier Goffart
390af4d41b
Tests: introduce ItemCompletedSpy to avoid a bit of code duplication
2020-12-15 10:59:00 +01:00
Christian Kamm
89216daee6
Propagate dir: Never write the etag on remote mkdir #7481
...
It must always only be written once all children are successfully
propagated.
2020-12-15 10:59:00 +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
cd10e3d28c
PropagateDirectory: Set initial dir mtime to server mtime #7119
...
It's still not synced in any way later.
2020-12-15 10:58:46 +01:00
Christian Kamm
238ac53666
Ensure local discovery on selective sync changes
...
As far as I'm aware local discovery can be skipped on folders that are
selective-sync blacklisted, so a local discovery is required when an
entry is removed from the blacklist.
Also rename
avoidReadFromDbOnNextSync() -> schedulePathForRemoteDiscovery()
since the old name might also imply it's not read from db in the local
discovery - which is not the case. Use Folder::
schedulePathForLocalDiscovery() for that.
2020-12-15 10:58:41 +01:00
Christian Kamm
4c04351360
Fix warnings about signedness
...
Sizes are always qint64, not unsigned.
TransferIds are always uint.
2020-12-15 10:58:41 +01:00
Christian Kamm
60cb5d3b34
Tests: Fix permission propagation check
...
It was using the wrong path to the conflict file.
2020-12-15 10:58:41 +01:00
Christian Kamm
5089f55629
Test: Add check for permission propagation
...
Also covering propagation to the downloaded file when a conflict-rename
is done at the same time, which used to not work.
2020-12-15 10:58:41 +01:00
Olivier Goffart
edd806960d
Propagator: Don't abort sync on error 503
...
Only do it when it is actually a maintenance mode
Issues #5088 , #5859 , https://github.com/owncloud/enterprise/issues/2637
2020-12-15 10:58:27 +01:00
Christian Kamm
e10e953c66
PropagateUpload: Avoid crash due to cascading aborts
...
https://sentry.io/owncloud/desktop-win-and-mac/issues/698694072/activity/
2020-12-15 10:58:11 +01:00
Olivier Goffart
640cf0c71e
Fix leaks in tests
...
As discovered by AddressSanitizer
2020-12-15 10:58:11 +01:00
Olivier Goffart
afed46afcc
New discovery algorithm: Parallel PROPFIND
2020-12-15 10:58:08 +01:00
Christian Kamm
765c12dae1
LocalDiscoveryTracker: Separate from Folder and move to libsync
...
To allow relevant code to be closer together and for testing in
unittests without having to get a gui Folder.
See #6120
2020-12-15 10:57:51 +01:00
Kevin Ottens
712869db9a
Use auto to avoiding repeating type names
...
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-05-20 03:54:41 +02:00
Christian Kamm
cba0627a9c
Ensure GETFileJob notices finishing #6581
...
It could happen that readyRead was emitted for incoming data while the
download was not yet finished. Then the network job could finish with
no more data arriving - so readyRead wasn't emitted again.
To fix this, the finished signal also gets connected to the readyRead
slot.
2018-09-09 11:50:00 +02:00
Roeland Jago Douma
1262cbf4ef
Merge pull request #314 from nextcloud/upstream/pr/6373
...
Make sure ignored and conflict files show up in the issues tab even with partial local discovery
2018-06-02 20:20:19 +02:00
Roeland Jago Douma
bb1b86b087
Merge pull request #307 from nextcloud/upstream/pr/6366
...
test/testsyncengine: testNoLocalEncoding is for Linux
2018-05-26 21:30:21 +02:00
Christian Kamm
75194d1821
SyncEngine: Make "local discovery?" question available
...
Also fix the minor bug that was mentioned and add tests.
2018-05-16 16:46:40 +02:00
Markus Goetz
f6b67a866a
test/testsyncengine: testNoLocalEncoding is for Linux
2018-05-15 23:06:39 +02:00
Christian Kamm
ce0e2d0b88
SyncJournal: Don't use LIKE with paths
...
Paths can contain the wildcards % and _ and that would lead to odd
behavior.
This patch also clarifies the behavior of avoidReadFromDbOnNextSync()
which previously dependend on whether "foo/bar" or "foo/bar/" was
passed as input.
Possibly affects #6322
2018-05-15 19:44:00 +02:00
Olivier Goffart
9613f6437d
Merge remote-tracking branch 'origin/2.4'
...
Conflicts:
src/libsync/networkjobs.cpp
2018-01-11 10:46:50 +01:00
Christian Kamm
7d70f1becb
Ignore files that can't be encoded for the filesystem
...
There's an upstream bug where QTextCodec::canEncode returns true even
though it should be false. This works around that issue and adds a test.
The original work was done in 72809ef5b1
See #6287 , #5676 , #5719
See https://bugreports.qt.io/browse/QTBUG-6925
2018-01-10 13:36:00 +01:00
Olivier Goffart
482ee875a1
Fix TestSyncEngine on windows
2017-12-15 14:39:01 +01:00
Olivier Goffart
4369853ddb
TestSystem: Add QIODevice in the serverOverride function, and add a DelayedReply
...
Preparing to add test that needs the QIODevice.
Also make the DelayedReply so we can generalize the existing delay on FakeChunkMoveReply
to any reply.
2017-12-14 11:56:12 +01:00
Christian Kamm
aafe7c4732
Merge remote-tracking branch 'origin/2.4'
2017-11-20 11:54:56 +01:00
Olivier Goffart
480932a58a
Checksum: Ignore unkown OC-Checksum header when downloading...
...
And if there are several checksums, pick the "best" one.
The case of several checksum was reported in
https://github.com/nextcloud/client_theming/issues/213
2017-11-20 10:51:15 +01:00
Olivier Goffart
2192386d86
test/testsyncengine: test for PR #6168
2017-11-16 13:31:54 +01:00
Christian Kamm
e694ffcd03
PropagateDownload: Adjustments to skipping downloads #6153
...
Previously we required matching mtimes but that's actually
unnecessary when the question is about whether to skip the
download. We will still update the file's metadata.
Also, adjust behavior when the checksum is weak (Adler32):
in these cases we still depend on equal mtimes.
2017-11-16 13:31:54 +01:00
Christian Kamm
37c5612aee
Discovery: Treat files starting with '.' as hidden #6145
...
This bug was introduced when strcmp(a, b) != 0 was accidentally
converted to a == b.
2017-11-08 12:53:46 +01:00