From 2c6f4dc839a279b9d5c10d674489998b021908b8 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 5 Feb 2023 20:57:47 +0100 Subject: update deps --- Cargo.lock | 48 +++++++++--------- client-native-export-track/Cargo.toml | 8 +-- client-native-gui/Cargo.toml | 6 +-- client-native-lib/Cargo.toml | 6 +-- client-native-lib/src/crypto.rs | 9 ++-- client-native-lib/src/peer.rs | 93 +++++++++++++++-------------------- client-native-rift/Cargo.toml | 6 +-- client-native-rift/src/main.rs | 42 ++++++---------- server/Cargo.toml | 6 +-- 9 files changed, 103 insertions(+), 121 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d116317..267b1b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -232,9 +232,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" +checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" [[package]] name = "arboard" @@ -631,9 +631,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "calloop" @@ -722,9 +722,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.1" +version = "4.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec7a4128863c188deefe750ac1d1dfe66c236909f845af04beed823638dc1b2" +checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76" dependencies = [ "bitflags", "clap_derive", @@ -1687,9 +1687,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" dependencies = [ "futures-core", "futures-sink", @@ -1697,9 +1697,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" [[package]] name = "futures-executor" @@ -1714,9 +1714,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" [[package]] name = "futures-lite" @@ -1735,9 +1735,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" dependencies = [ "proc-macro2", "quote", @@ -1746,21 +1746,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" dependencies = [ "futures-channel", "futures-core", @@ -2110,9 +2110,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.23" +version = "0.14.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c" dependencies = [ "bytes", "futures-channel", @@ -3834,9 +3834,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.24.2" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a12a59981d9e3c38d216785b0c37399f6e415e8d0712047620f189371b0bb" +checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" dependencies = [ "autocfg", "bytes", diff --git a/client-native-export-track/Cargo.toml b/client-native-export-track/Cargo.toml index b8efdca..36ba652 100644 --- a/client-native-export-track/Cargo.toml +++ b/client-native-export-track/Cargo.toml @@ -6,10 +6,10 @@ edition = "2021" [dependencies] client-native-lib = { path = "../client-native-lib" } -clap = { version = "4.1.1", features = ["derive"] } +clap = { version = "4.1.4", features = ["derive"] } env_logger = "0.10.0" log = "0.4" -tokio = { version = "1.24", features = ["full"] } -bytes = "1.3.0" -anyhow = "1.0.68" +tokio = { version = "1.25", features = ["full"] } +bytes = "1.4.0" +anyhow = "1.0.69" diff --git a/client-native-gui/Cargo.toml b/client-native-gui/Cargo.toml index f41859c..767433c 100644 --- a/client-native-gui/Cargo.toml +++ b/client-native-gui/Cargo.toml @@ -6,12 +6,12 @@ edition = "2021" [dependencies] client-native-lib = { path = "../client-native-lib" } -clap = { version = "4.1.1", features = ["derive"] } +clap = { version = "4.1.4", features = ["derive"] } async-std = "1.12.0" -tokio = { version = "1.24.1", features = ["full"] } +tokio = { version = "1.25.0", features = ["full"] } env_logger = "0.10.0" log = "0.4" -anyhow = "1.0.68" +anyhow = "1.0.69" crossbeam-channel = "0.5.6" egui = "0.20.1" diff --git a/client-native-lib/Cargo.toml b/client-native-lib/Cargo.toml index 69c6e91..c9b0ea4 100644 --- a/client-native-lib/Cargo.toml +++ b/client-native-lib/Cargo.toml @@ -4,8 +4,8 @@ version = "0.1.0" edition = "2021" [dependencies] -tokio = { version = "1.24", features = ["full"] } -futures-util = "0.3.25" +tokio = { version = "1.25", features = ["full"] } +futures-util = "0.3.26" webrtc = "0.6.0" tokio-tungstenite = { version = "*", features = ["rustls-tls"] } @@ -22,4 +22,4 @@ sha256 = "1.1.1" rand = "0.8.5" rand_chacha = "0.3.1" base64 = "0.21.0" -bytes = "1.3.0" +bytes = "1.4.0" diff --git a/client-native-lib/src/crypto.rs b/client-native-lib/src/crypto.rs index 239c9f3..0472ec7 100644 --- a/client-native-lib/src/crypto.rs +++ b/client-native-lib/src/crypto.rs @@ -7,6 +7,7 @@ use aes_gcm::{ aead::{generic_array::sequence::GenericSequence, Aead}, Aes256Gcm, KeyInit, Nonce, }; +use base64::Engine; use log::info; pub struct Key(Aes256Gcm); @@ -14,7 +15,9 @@ pub struct Key(Aes256Gcm); impl Key { pub fn derive(secret: &str) -> Self { info!("running key generation..."); - let salt = base64::decode("thisisagoodsaltAAAAAAA==").unwrap(); + let salt = base64::engine::general_purpose::STANDARD + .decode("thisisagoodsaltAAAAAAA==") + .unwrap(); let mut key = [0u8; 32]; fastpbkdf2::pbkdf2_hmac_sha256(secret.as_bytes(), salt.as_slice(), 250000, &mut key); @@ -28,10 +31,10 @@ impl Key { let ciphertext = self.0.encrypt(&iv, s.as_bytes()).unwrap(); let mut packet = iv.to_vec(); // TODO this could be doing less allocations packet.extend(ciphertext); - base64::encode(packet) + base64::engine::general_purpose::STANDARD.encode(packet) } pub fn decrypt(&self, s: &str) -> String { - let r = base64::decode(s).unwrap(); + let r = base64::engine::general_purpose::STANDARD.decode(s).unwrap(); let iv = &r[0..12]; let ciphertext = &r[12..]; let plaintext = self.0.decrypt(Nonce::from_slice(iv), ciphertext).unwrap(); diff --git a/client-native-lib/src/peer.rs b/client-native-lib/src/peer.rs index b3b4dd4..8c27234 100644 --- a/client-native-lib/src/peer.rs +++ b/client-native-lib/src/peer.rs @@ -69,34 +69,28 @@ impl Peer { .on_peer_connection_state_change(Box::new(move |s: RTCPeerConnectionState| { info!("connection state changed: {s}"); Box::pin(async {}) - })) - .await; - + })); { let weak = Arc::::downgrade(&peer); - peer.peer_connection - .on_ice_candidate(box move |c| { - 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; + peer.peer_connection.on_ice_candidate(box move |c| { + 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 {}) + } + }) } { let weak = Arc::::downgrade(&peer); - peer.peer_connection - .on_negotiation_needed(box move || { - let peer = weak.upgrade().unwrap(); - Box::pin(async { peer.on_negotiation_needed().await }) - }) - .await; + peer.peer_connection.on_negotiation_needed(box move || { + let peer = weak.upgrade().unwrap(); + Box::pin(async { peer.on_negotiation_needed().await }) + }) } { @@ -124,37 +118,34 @@ impl Peer { } }) }) - .await; } { let weak = Arc::::downgrade(&peer); - peer.peer_connection - .on_data_channel(box move |dc| { - let peer = weak.upgrade().unwrap(); - Box::pin(async move { - if let Some(res) = peer - .remote_provided - .read() - .await - .get(&dc.label().to_string()) - { - info!("data channel for ({:?}) '{:?}'", res.id, res.label); - peer.inst - .event_handler - .resource_connected( - peer.clone(), - res, - TransportChannel::DataChannel(dc), - ) - .await; - } else { - warn!("got unassociated data channel; closed connection"); - dc.close().await.unwrap(); - } - }) + peer.peer_connection.on_data_channel(box move |dc| { + let peer = weak.upgrade().unwrap(); + Box::pin(async move { + if let Some(res) = peer + .remote_provided + .read() + .await + .get(&dc.label().to_string()) + { + info!("data channel for ({:?}) '{:?}'", res.id, res.label); + peer.inst + .event_handler + .resource_connected( + peer.clone(), + res, + TransportChannel::DataChannel(dc), + ) + .await; + } else { + warn!("got unassociated data channel; closed connection"); + dc.close().await.unwrap(); + } }) - .await; + }) } peer } @@ -228,10 +219,8 @@ impl Peer { pub async fn on_ice_candidate(&self, candidate: RTCIceCandidate) { debug!("publishing local ICE candidate"); - self.send_relay(RelayMessage::IceCandidate( - candidate.to_json().await.unwrap(), - )) - .await; + self.send_relay(RelayMessage::IceCandidate(candidate.to_json().unwrap())) + .await; } pub async fn on_remote_ice_candidate(&self, candidate: RTCIceCandidateInit) { debug!("adding remote ICE candidate"); diff --git a/client-native-rift/Cargo.toml b/client-native-rift/Cargo.toml index cdc6b3b..ccc0c5c 100644 --- a/client-native-rift/Cargo.toml +++ b/client-native-rift/Cargo.toml @@ -6,12 +6,12 @@ edition = "2021" [dependencies] client-native-lib = { path = "../client-native-lib" } -clap = { version = "4.1.1", features = ["derive"] } +clap = { version = "4.1.4", features = ["derive"] } env_logger = "0.10.0" log = "0.4" -tokio = { version = "1.24", features = ["full"] } -bytes = "1.3.0" +tokio = { version = "1.25", features = ["full"] } +bytes = "1.4.0" indicatif = "0.17.3" humansize = "2.1.3" diff --git a/client-native-rift/src/main.rs b/client-native-rift/src/main.rs index 45f720a..6255fe7 100644 --- a/client-native-rift/src/main.rs +++ b/client-native-rift/src/main.rs @@ -167,8 +167,7 @@ impl EventHandler for Handler { info!("channel opened"); *writer.write().await = Some(s.args.action.create_writer().await) }) - }) - .await; + }); } { let writer = writer.clone(); @@ -183,8 +182,7 @@ impl EventHandler for Handler { exit(0); } }) - }) - .await; + }); } { let writer = writer.clone(); @@ -218,13 +216,11 @@ impl EventHandler for Handler { }) }) } - .await; dc.on_error(box move |err| { Box::pin(async move { error!("data channel errored: {err}"); }) - }) - .await; + }); } } }) @@ -292,27 +288,23 @@ impl LocalResource for FileSender { { let reader = reader.clone(); let reader_factory = reader_factory.clone(); - channel - .on_open(box move || { - let reader = reader.clone(); - Box::pin(async move { - info!("channel open"); - *reader.write().await = Some(reader_factory.create_reader().await); - }) + channel.on_open(box move || { + let reader = reader.clone(); + Box::pin(async move { + info!("channel open"); + *reader.write().await = Some(reader_factory.create_reader().await); }) - .await; + }) } { let reader = reader.clone(); - channel - .on_close(box move || { - let reader = reader.clone(); - Box::pin(async move { - info!("channel closed"); - *reader.write().await = None; - }) + channel.on_close(box move || { + let reader = reader.clone(); + Box::pin(async move { + info!("channel closed"); + *reader.write().await = None; }) - .await; + }) } { channel.set_buffered_amount_low_threshold(1 << 20).await; @@ -354,9 +346,7 @@ impl LocalResource for FileSender { .await; } - channel - .on_error(box move |err| Box::pin(async move { error!("channel error: {err}") })) - .await; + channel.on_error(box move |err| Box::pin(async move { error!("channel error: {err}") })) }) } } diff --git a/server/Cargo.toml b/server/Cargo.toml index 4f29cde..e2b0506 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -5,11 +5,11 @@ edition = "2021" [dependencies] warp = "0.3" -tokio = { version = "1.24", features = ["full"] } +tokio = { version = "1.25", features = ["full"] } log = "0.4" env_logger = "0.10" -futures-util = "0.3.25" +futures-util = "0.3.26" listenfd = "1.0.0" -hyper = "0.14.23" +hyper = "0.14.24" serde = { version = "1.0.152", features = ["derive"] } serde_json = "*" -- cgit v1.2.3-70-g09d2