summaryrefslogtreecommitdiff
path: root/client-native-rift/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-12-03 16:30:52 +0100
committermetamuffin <metamuffin@disroot.org>2022-12-03 16:30:52 +0100
commit5eca5cc68bd533e4599035ba2694ccf8dfae09f3 (patch)
treec4595eec306984381ea42210f30903868485ea9e /client-native-rift/src
parent2f8ea58c6186256078aeb9bdffa72675be185245 (diff)
downloadkeks-meet-5eca5cc68bd533e4599035ba2694ccf8dfae09f3.tar
keks-meet-5eca5cc68bd533e4599035ba2694ccf8dfae09f3.tar.bz2
keks-meet-5eca5cc68bd533e4599035ba2694ccf8dfae09f3.tar.zst
fix speed issues
Diffstat (limited to 'client-native-rift/src')
-rw-r--r--client-native-rift/src/main.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/client-native-rift/src/main.rs b/client-native-rift/src/main.rs
index b9e38c0..0484d40 100644
--- a/client-native-rift/src/main.rs
+++ b/client-native-rift/src/main.rs
@@ -18,6 +18,7 @@ use log::{debug, error, info, warn};
use std::{
os::unix::prelude::MetadataExt,
pin::Pin,
+ process::exit,
sync::{
atomic::{AtomicUsize, Ordering},
Arc,
@@ -55,6 +56,9 @@ pub struct Args {
secret: String,
#[clap(subcommand)]
action: Action,
+ /// end after completion of the first transfer
+ #[clap(short, long)]
+ one_file: bool,
}
async fn run() {
@@ -155,6 +159,7 @@ impl EventHandler for Handler {
Arc::new(RwLock::new(None));
{
let writer = writer.clone();
+ let s = s.clone();
dc.on_open(box move || {
let s = s.clone();
let writer = writer.clone();
@@ -167,11 +172,16 @@ impl EventHandler for Handler {
}
{
let writer = writer.clone();
+ let args = s.args.clone();
dc.on_close(box move || {
let writer = writer.clone();
+ let args = args.clone();
Box::pin(async move {
info!("channel closed");
*writer.write().await = None;
+ if args.one_file {
+ exit(0);
+ }
})
})
.await;
@@ -334,6 +344,9 @@ impl LocalResource for FileSender {
})
.await;
}
+
+ channel.set_buffered_amount_low_threshold(1 << 20).await;
+
channel
.on_error(box move |err| Box::pin(async move { error!("channel error: {err}") }))
.await;