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>
will fix behavior on windows by properly setting the new temp file just
downloaded have the proper state (read only or read/write) and not the
already existing file that will be replaced by the newly odwnloaded one
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
we try to preserve complex existing permissions unless the client is
required to change them significantly
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
make sure that a file locked that would not be modifiable by the
current client is read-only on storage
also make sure we make a file read/write when modification can happen
again
Close#5537
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
those log lines can easily be skipped from info level as they are needed
in very rare occasion
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
in order to be able to filter some errors when showing them into the
main dialog activity list, add some more info about the error to know
the origin (like a network issue or a sync issue)
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
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>
fetch lock properties from server
decode them and store them in sync database
test to ensure we do properly handle those properties
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
if the server has files with invalid modtime this assert will trigger
even though the code is handling the situation
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
when canceling the sync of a big directory, I can get some network
request that are aborted before a Date reply header has been read
in this case we would always access
AbstractNetworkJob::responseTimestamp() and fire the assert even if we
know that the network reply has an error
delay the access to after the possible errors have been dealt with
Signed-off-by: Matthieu Gallien <matthieu_gallien@yahoo.fr>
Indeed, that file size will almost always change between the 1 byte
placeholder and the hydrated file. Only when using the CfAPI on Windows
this won't be the case since because it will expose the original size
even for placeholders.
Also worth noting: the suffix backend didn't hit that case since the
filename changes (with suffix for placeholders, without for hydrated
files).
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>