aboutsummaryrefslogtreecommitdiff
path: root/plugins/omemo/src/file_provider.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2019-02-13 21:50:15 +0100
committerfiaxh <git@lightrise.org>2019-02-14 00:04:01 +0100
commit736522737f4dae39af126353abfe26903b2c82ea (patch)
treec0e607550476b779e263fd772894e5816ee645cd /plugins/omemo/src/file_provider.vala
parentd668e0158df40e1bb1ea00ab72fac9d0e95e8bd9 (diff)
downloaddino-736522737f4dae39af126353abfe26903b2c82ea.tar.gz
dino-736522737f4dae39af126353abfe26903b2c82ea.zip
Make file read/write async
Diffstat (limited to 'plugins/omemo/src/file_provider.vala')
-rw-r--r--plugins/omemo/src/file_provider.vala10
1 files changed, 5 insertions, 5 deletions
diff --git a/plugins/omemo/src/file_provider.vala b/plugins/omemo/src/file_provider.vala
index 49b42e92..bda73bfb 100644
--- a/plugins/omemo/src/file_provider.vala
+++ b/plugins/omemo/src/file_provider.vala
@@ -106,14 +106,14 @@ public class FileProvider : Dino.FileProvider, Object {
var session = new Soup.Session();
Soup.Request request = session.request(url);
- file_transfer.input_stream = decrypt_file(yield request.send_async(null), url_body);
+ file_transfer.input_stream = yield decrypt_file(yield request.send_async(null), url_body);
file_transfer.encryption = Encryption.OMEMO;
OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION);
- os.splice(file_transfer.input_stream, 0);
+ yield os.splice_async(file_transfer.input_stream, 0);
os.close();
file_transfer.path = file.get_basename();
- file_transfer.input_stream = file.read();
+ file_transfer.input_stream = yield file.read_async();
file_transfer.state = FileTransfer.State.COMPLETE;
} catch (Error e) {
@@ -121,7 +121,7 @@ public class FileProvider : Dino.FileProvider, Object {
}
}
- public InputStream? decrypt_file(InputStream input_stream, string url) {
+ public async InputStream? decrypt_file(InputStream input_stream, string url) {
// Decode IV and key
MatchInfo match_info;
this.url_regex.match(url, 0, out match_info);
@@ -140,7 +140,7 @@ public class FileProvider : Dino.FileProvider, Object {
Array<uint8> data = new Array<uint8>(false, true, 0);
size_t len = -1;
do {
- len = input_stream.read(buf);
+ len = yield input_stream.read_async(buf);
data.append_vals(buf, (uint) len);
} while(len > 0);