aboutsummaryrefslogtreecommitdiff
path: root/libdino
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-09-11 21:43:14 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-09 14:08:52 +0200
commitfefcf353520ebbe9e63f59e25a85fc122a5acc7a (patch)
tree8f272bd6137c5663f3d77ed337d6eec1d7695fd0 /libdino
parent90bee87ff5cf6cf3ee481394ece343e2446ac70f (diff)
Allow to resume failed transfers
Diffstat (limited to 'libdino')
-rw-r--r--libdino/src/service/file_manager.vala3
1 files changed, 3 insertions, 0 deletions
diff --git a/libdino/src/service/file_manager.vala b/libdino/src/service/file_manager.vala
index 89ae1ce1..2ef79d84 100644
--- a/libdino/src/service/file_manager.vala
+++ b/libdino/src/service/file_manager.vala
@@ -210,6 +210,8 @@ public class FileManager : StreamInteractionModule, Object {
private async void download_file_internal(FileProvider file_provider, FileTransfer file_transfer, Conversation conversation) {
try {
+ file_transfer.cancellable.reset();
+
// Get meta info
FileReceiveData receive_data = file_provider.get_file_receive_data(file_transfer);
FileDecryptor? file_decryptor = null;
@@ -246,6 +248,7 @@ public class FileManager : StreamInteractionModule, Object {
File file = File.new_for_path(Path.build_filename(get_storage_dir(), filename));
OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION);
+ file_transfer.cancellable.reset();
uint8[] buffer = new uint8[1024];
ssize_t read;
while ((read = yield input_stream.read_async(buffer, Priority.LOW, file_transfer.cancellable)) > 0) {