Commit Graph

2806 Commits

Author SHA1 Message Date
alex-z
4b0e1b57eb Prevent issues when changing the enum.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-12-11 18:03:57 +01:00
alex-z
8e38739d94 Generate client status report records when errors happen.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-12-11 18:03:57 +01:00
alex-z
5b54b13a97 Iteration. Properly process server reply.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-12-11 18:03:57 +01:00
alex-z
4b7ccf8647 Iteration. Use Capabilities to control Client Status Reporting availibility.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-12-11 18:03:57 +01:00
alex-z
5e78b83ca7 Send status report. Improved logic and database columns.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-12-11 18:03:57 +01:00
alex-z
ff8db2674a Client status reporting feature. First iteration.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-12-11 18:03:57 +01:00
alex-z
9298305093 Feature. Do not allow move of external storage mounted folders.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-12-07 14:10:35 +01:00
Matthieu Gallien
bf78f008bd
extend log to get information about mtime modifications by the client
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-12-06 10:42:33 +01:00
Matthieu Gallien
b77fc9d4ff
avoid modifying a placeholder (virtual files) when not needed
acoid modifying some metadata of the placeholder when this placeholder
has just been uploaded to the server (will avoid truncating the
timestamps)

Close #6190

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-12-06 10:13:49 +01:00
Matthieu Gallien
1dcde3a41f maintain lock state if unlock happens during sync
currently unlock can happen during the sync
in that case, it may be possible that the propagator will lose the lock
state changes and override them when updating teh etag after a file has
been uploaded

detect that case and ensure we keep consistent state about files

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-12-05 08:57:17 +01:00
Matthieu Gallien
f8730b6bfb avoid restore algorithm by setting the data fingerprint from sync DB
avoid single file sync to switch to data fingerprint restore sync mode if
a data fingerprint has been saved in the database but missed during
single file sync

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-11-24 15:20:40 +01:00
alex-z
19f7b87809 Fix. Bulk upload. Accumulate sent bytes. Fix negative value in UI.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-11-20 17:02:31 +01:00
alex-z
406bad8ab4 Enforce virtual file type when it is falsely marked as non-virtual. Added more logs for scenarios when virtual placeholder gets marked as non-virtual.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-10-25 11:28:42 +02:00
alex-z
5f9e04dad3 Do not show failure popul for VFS when hydration finished with code 200 or 204.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-10-24 13:00:22 +02:00
alex-z
bc91eac2e5 Improve Settings dialog design.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-10-23 12:45:24 +02:00
alex-z
727cd797ff Show more informative error message when VFS hydration fails. Display a popup and put an error into activity list. More detailed logs.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-10-20 14:54:42 +02:00
Matthieu Gallien
8b0d6dc322 avoid for loops detaching the container when uneeded
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-10-17 09:32:34 +02:00
Matthieu Gallien
a46bc8e8b0 fix mising emit keyword in two places when emitting a signal
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-10-17 09:32:34 +02:00
Matthieu Gallien
fcd5a86349 signals/slots need to have fully qualified arguments
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-10-17 09:32:34 +02:00
Matthieu Gallien
242135d9d9 remove deprecated openssl 3.0 warnings
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-10-16 22:00:00 +02:00
Matthieu Gallien
15a45a21c1 when sync is completed and data fingerprint changed, update it
in case sync would complete after a data fingerprint change, we should
tolerate some errors

a file being blacklisted for whatever reason should not block the
propagation of data fingerprint

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-10-16 22:00:00 +02:00
Matthieu Gallien
27b807d164 ensure we do not restore unselected folders from selective sync
we should not try to restore files/folders no longer synced because of
selective sync when detecting a data fingerprint change

in case the user deselect a folder from selective sync list, we would do
a local delete

in case the client is also detecting a change of data fingerprint (or is
stuck in restore mode) then instead of applying the new set of selected
folders to sync, it would upload unselected files/folders

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-10-16 22:00:00 +02:00
Claudio Cambra
f6140f5b5f Also add destination header to initial chunk folder MKCOL
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-10-16 10:11:00 +02:00
Claudio Cambra
2b9b182204 Move destination header build to own method
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-10-16 10:11:00 +02:00
Claudio Cambra
a29af562de Provide full url for chunked upload destination header
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-10-16 10:11:00 +02:00
alex-z
623fe40c36 Unhide discovery logs for file deleted on the server and for discovered file.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-10-05 10:48:06 +02:00
alex-z
fde7933585 Optimize CaseConflictRecords search in local DB during the sync.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-09-25 10:37:10 +02:00
Claudio Cambra
a045dd71ae
Fix Chunk v2 upload headers
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-09-22 16:45:20 +08:00
Claudio Cambra
6cf04d660b Remove OAuth authentication method as it is now unused
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-09-19 14:58:17 +08:00
Dimitri Papadopoulos
8a73a9a6f5 Fix new typos found by codespell
Signed-off-by: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
2023-09-17 10:41:38 +02:00
Dimitri Papadopoulos
09521edbac Fix residual typos found by codespell
Signed-off-by: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
2023-09-16 20:36:56 +02:00
Matthieu Gallien
a17b3608d9
do not check every 5 seconds files with infinite timeout (= 0)
we want to schedule a new sync attempt if a file is likely to have been
unlocked due to timeout expiring on server

but if the timeout is null (equal to 0), there will be no timeout on
server and no automated unlocking, so do not schedule a sync every 5
seconds to check for it

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-09-14 18:33:24 +02:00
alex-z
cc99b0ae45 Remove unused function 'revertPlaceholder'.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-09-14 16:00:14 +02:00
alex-z
3831d8b462 Do not attempt to convert .lnk files to placeholder. Also do not modify folders' metadata.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-09-14 16:00:14 +02:00
Matthieu Gallien
a3303bc70b once we call done on a sync file item, return is needed
will avoid calling done method multiple times on a signle file item
causing a crash via ENFORCE function

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-09-14 11:58:00 +02:00
Claudio Cambra
97301e3a55 Use a standardised locale to create log file filenames, fixing issues with certain locales
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-09-13 17:16:56 +08:00
alex-z
c6978be904 Store the new etag into local database when opening with auto-locking/manual locking the file locally.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-09-07 17:43:43 +02:00
alex-z
f8a2826f7f Remove locketimeout condition.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-09-06 12:12:08 +02:00
alex-z
3815919aa5 Fix a crash when saving the locked Word document file due to unnecessary spam to the lock state change from folder watcher logic.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-09-05 15:52:04 +02:00
alex-z
0f7d29bce6 Ignore upload error items and schedule a new sync in case there are removed items that need to be downsynced.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2023-09-04 10:02:05 +02:00
Camila
9dbb072858
Migrate legacy user defined exclude file.
- Refactor ConfigFile::setupDefaultExcludeFilePaths.
- Refactor ConfigFile::excludeFile.
- Fix code style.

Signed-off-by: Camila <hello@camila.codes>
2023-09-01 15:09:29 +02:00
Claudio Cambra
a0c528a190 Replace comments about relevancy of chunk to propagat v1 with variable name change
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00
Claudio Cambra
f46d71fdf6 Ensure default min and max chunk sizes are multiplied as long longs
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00
Claudio Cambra
eadb458ae6 Use [[nodiscard]] for new syncoptions and propagateupload functions
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00
Claudio Cambra
2f5c164534 Enforce Chunk V2 API chunk size limits at the sync options level
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00
Claudio Cambra
7cb8640352 Clarify use of ProgressInfo _chunk
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00
Claudio Cambra
7d90641722 Ensure chunkUploadFolder components are QStrings
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00
Claudio Cambra
a8a2a86316 Assert that chunk num passed to chunkUrl is at least 1
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00
Claudio Cambra
a647ee1911 Sent destination header per chunking v2 api
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00
Claudio Cambra
fbb513a26d Start numbering chunks from 1 per chunking v2 api
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
2023-08-31 15:25:00 +02:00