summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-10-15 12:47:31 +0200
committermetamuffin <metamuffin@disroot.org>2022-10-15 12:47:31 +0200
commit05df2017e970b049546c893f8564d112c89c5b40 (patch)
tree926375065645be690d3e0bb9a187c4c93b8e50fa
parent77f6b0d44c2d653cfcdb511a9f91f11aab81ddc5 (diff)
downloadkeks-meet-05df2017e970b049546c893f8564d112c89c5b40.tar
keks-meet-05df2017e970b049546c893f8564d112c89c5b40.tar.bz2
keks-meet-05df2017e970b049546c893f8564d112c89c5b40.tar.zst
fix crash
-rw-r--r--client-native-lib/src/peer.rs15
-rw-r--r--client-native-rift/src/main.rs9
2 files changed, 17 insertions, 7 deletions
diff --git a/client-native-lib/src/peer.rs b/client-native-lib/src/peer.rs
index fa4de25..8e89f48 100644
--- a/client-native-lib/src/peer.rs
+++ b/client-native-lib/src/peer.rs
@@ -77,12 +77,15 @@ impl Peer {
let weak = Arc::<Peer>::downgrade(&peer);
peer.peer_connection
.on_ice_candidate(box move |c| {
- let peer = weak.upgrade().unwrap();
- Box::pin(async move {
- if let Some(c) = c {
- peer.on_ice_candidate(c).await
- }
- })
+ if let Some(peer) = weak.upgrade() {
+ Box::pin(async move {
+ if let Some(c) = c {
+ peer.on_ice_candidate(c).await
+ }
+ })
+ } else {
+ Box::pin(async move {})
+ }
})
.await;
}
diff --git a/client-native-rift/src/main.rs b/client-native-rift/src/main.rs
index 48dac0b..e00d4c9 100644
--- a/client-native-rift/src/main.rs
+++ b/client-native-rift/src/main.rs
@@ -259,6 +259,7 @@ impl LocalResource for FileSender {
fn on_request(&self, peer: Arc<Peer>) -> DynFut<()> {
let id = self.info().id.clone();
+ let total_size = self.info().size.unwrap_or(0);
let reader_factory = self.reader_factory.clone();
Box::pin(async move {
let channel = peer
@@ -299,6 +300,7 @@ impl LocalResource for FileSender {
let channel2 = channel.clone();
channel
.on_buffered_amount_low(box move || {
+ let pos = pos.clone();
let reader = reader.clone();
let channel = channel2.clone();
Box::pin(async move {
@@ -316,7 +318,12 @@ impl LocalResource for FileSender {
info!("reached EOF, closing channel");
channel.close().await.unwrap();
} else {
- debug!("sending {size} bytes");
+ let progress_size = pos.fetch_add(size, Ordering::Relaxed);
+ info!(
+ "sending {size} bytes ({} of {})",
+ humansize::format_size(progress_size, DECIMAL),
+ humansize::format_size(total_size, DECIMAL),
+ );
channel
.send(&Bytes::copy_from_slice(&buf[..size]))
.await