From 89a12509ed9d07eaca4acb49ce5bf595e81bb953 Mon Sep 17 00:00:00 2001 From: alterdekim Date: Sun, 13 Oct 2024 20:06:21 +0300 Subject: [PATCH] modified: src/client.rs --- src/client.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/client.rs b/src/client.rs index 4281339..5e7b021 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1,6 +1,6 @@ //use crossbeam_channel::unbounded; use socket2::SockAddr; -use tokio::{net::UdpSocket, sync::{Mutex, mpsc, oneshot}, io::{BufReader, BufWriter, AsyncWriteExt, AsyncReadExt}, fs::File}; +use tokio::{net::UdpSocket, sync::{Mutex, mpsc}, io::{BufReader, BufWriter, AsyncWriteExt, AsyncReadExt}, fs::File}; use tokio_util::sync::CancellationToken; use base64::prelude::*; use log::{error, info, warn}; @@ -44,13 +44,13 @@ pub async fn client_mode(client_config: ClientConfiguration, fd: i32, close_toke let cipher_shared: Arc>> = Arc::new(Mutex::new(None)); - let (cancel_dr, mut listen_dr) = oneshot::channel(); + let cancel_dr = close_token.clone(); let dev_read_task = tokio::spawn(async move { let mut buf = vec![0; 1400]; // mtu let listen = listen_dr.clone(); loop { tokio::select! { - _ = listen => { + _ = cancel_dr.cancelled() => { return; } rr = dev_reader.read(&mut buf) => { @@ -66,13 +66,13 @@ pub async fn client_mode(client_config: ClientConfiguration, fd: i32, close_toke let priv_key = BASE64_STANDARD.decode(client_config.client.private_key).unwrap(); let cipher_shared_clone = cipher_shared.clone(); - let (cancel_sr, mut listen_sr) = oneshot::channel(); + let cancel_sr = close_token.clone(); let sock_read_task = tokio::spawn(async move { let mut buf = vec![0; 4096]; loop { tokio::select! { - _ = listen_sr => { + _ = cancel_sr.cancelled() => { return; } rr = sock_rec.recv(&mut buf) => {