From 673413fabcd583cab433f5a0133247de2b935cea Mon Sep 17 00:00:00 2001 From: alterdekim Date: Mon, 12 Aug 2024 04:05:45 +0300 Subject: [PATCH] Changes to be committed: modified: src/tcp_client.rs modified: src/tcp_server.rs --- src/tcp_client.rs | 9 +++++++-- src/tcp_server.rs | 50 +++++++---------------------------------------- 2 files changed, 14 insertions(+), 45 deletions(-) diff --git a/src/tcp_client.rs b/src/tcp_client.rs index b53948b..b30854d 100644 --- a/src/tcp_client.rs +++ b/src/tcp_client.rs @@ -85,6 +85,7 @@ pub async fn client_mode(remote_addr: String) { tokio::spawn(async move { while let Ok(bytes) = rx.recv() { dev_writer.write(&bytes).unwrap(); + info!("Wrote to tun"); } }); @@ -92,20 +93,24 @@ pub async fn client_mode(remote_addr: String) { let mut buf = vec![0; 2048]; while let Ok(n) = dev_reader.read(&mut buf) { dx.send(buf[..n].to_vec()).unwrap(); + info!("Got from tun"); } }); tokio::spawn(async move { let mut buf = vec![0; 2048]; loop { - let n = sock_reader.try_read(&mut buf).unwrap(); - tx.send(buf[..n].to_vec()).unwrap(); + if let Ok(n) = sock_reader.try_read(&mut buf) { + tx.send(buf[..n].to_vec()).unwrap(); + info!("Got from sock"); + } } }); loop { if let Ok(bytes) = mx.recv() { sock_writer.write(&bytes).await.unwrap(); + info!("Wrote to sock"); } } } \ No newline at end of file diff --git a/src/tcp_server.rs b/src/tcp_server.rs index 246cbb1..91d7d89 100644 --- a/src/tcp_server.rs +++ b/src/tcp_server.rs @@ -31,6 +31,7 @@ pub async fn server_mode() { tokio::spawn(async move { while let Ok(bytes) = rx.recv() { dev_writer.write(&bytes).unwrap(); + info!("Wrote to tun"); } }); @@ -38,6 +39,7 @@ pub async fn server_mode() { let mut buf = vec![0; 2048]; while let Ok(n) = dev_reader.read(&mut buf) { dx.send(buf[..n].to_vec()).unwrap(); + info!("Got from tun"); } }); @@ -53,6 +55,7 @@ pub async fn server_mode() { loop { if let Ok(bytes) = thread_mx.recv() { sock_writer.write(&bytes).await.unwrap(); + info!("Wrote to sock"); } } }); @@ -60,50 +63,11 @@ pub async fn server_mode() { tokio::spawn(async move { let mut buf = vec![0; 2048]; loop { - let n = sock_reader.try_read(&mut buf).unwrap(); - thread_tx.send(buf[..n].to_vec()).unwrap(); + if let Ok(n) = sock_reader.try_read(&mut buf) { + thread_tx.send(buf[..n].to_vec()).unwrap(); + info!("Got from sock"); + } } }); } - - /* let mut set = JoinSet::new(); - - set.spawn(async move { - let mut buf = [0; 4096]; - loop { - let size = reader.read(&mut buf)?; - let pkt = &buf[..size]; - use std::io::{Error, ErrorKind::Other}; - let m = clients_getter.lock().await; - match m.get(&"10.0.8.2") { - Some(&ref sock) => { sock.send(&pkt).await.unwrap(); info!("Wrote to sock") }, - None => { error!("There's no client!") } - }; - drop(m); - () - } - #[allow(unreachable_code)] - Ok::<(), std::io::Error>(()) - }); - - set.spawn(async move { - let mut buf = [0; 4096]; - loop { - if let Ok((len, addr)) = receiver_sock.recv_from(&mut buf).await { - let mut m = clients_inserter.lock().await; - if !m.contains_key(&"10.0.8.2") { - let cl = UdpSocket::bind("0.0.0.0:59611").await?; - cl.connect(addr).await?; - m.insert("10.0.8.2", cl); - } - drop(m); - writer.write_all(&buf[..len])?; - info!("Wrote to tun"); - } - } - }); - - while let Some(res) = set.join_next().await {} - - Ok(())*/ } \ No newline at end of file