Changes to be committed:

modified:   src/tcp_client.rs
	modified:   src/tcp_server.rs
This commit is contained in:
Michael Wain 2024-08-12 04:05:45 +03:00
parent 4fc9ccb860
commit 673413fabc
2 changed files with 14 additions and 45 deletions

View File

@ -85,6 +85,7 @@ pub async fn client_mode(remote_addr: String) {
tokio::spawn(async move { tokio::spawn(async move {
while let Ok(bytes) = rx.recv() { while let Ok(bytes) = rx.recv() {
dev_writer.write(&bytes).unwrap(); 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]; let mut buf = vec![0; 2048];
while let Ok(n) = dev_reader.read(&mut buf) { while let Ok(n) = dev_reader.read(&mut buf) {
dx.send(buf[..n].to_vec()).unwrap(); dx.send(buf[..n].to_vec()).unwrap();
info!("Got from tun");
} }
}); });
tokio::spawn(async move { tokio::spawn(async move {
let mut buf = vec![0; 2048]; let mut buf = vec![0; 2048];
loop { loop {
let n = sock_reader.try_read(&mut buf).unwrap(); if let Ok(n) = sock_reader.try_read(&mut buf) {
tx.send(buf[..n].to_vec()).unwrap(); tx.send(buf[..n].to_vec()).unwrap();
info!("Got from sock");
}
} }
}); });
loop { loop {
if let Ok(bytes) = mx.recv() { if let Ok(bytes) = mx.recv() {
sock_writer.write(&bytes).await.unwrap(); sock_writer.write(&bytes).await.unwrap();
info!("Wrote to sock");
} }
} }
} }

View File

@ -31,6 +31,7 @@ pub async fn server_mode() {
tokio::spawn(async move { tokio::spawn(async move {
while let Ok(bytes) = rx.recv() { while let Ok(bytes) = rx.recv() {
dev_writer.write(&bytes).unwrap(); dev_writer.write(&bytes).unwrap();
info!("Wrote to tun");
} }
}); });
@ -38,6 +39,7 @@ pub async fn server_mode() {
let mut buf = vec![0; 2048]; let mut buf = vec![0; 2048];
while let Ok(n) = dev_reader.read(&mut buf) { while let Ok(n) = dev_reader.read(&mut buf) {
dx.send(buf[..n].to_vec()).unwrap(); dx.send(buf[..n].to_vec()).unwrap();
info!("Got from tun");
} }
}); });
@ -53,6 +55,7 @@ pub async fn server_mode() {
loop { loop {
if let Ok(bytes) = thread_mx.recv() { if let Ok(bytes) = thread_mx.recv() {
sock_writer.write(&bytes).await.unwrap(); sock_writer.write(&bytes).await.unwrap();
info!("Wrote to sock");
} }
} }
}); });
@ -60,50 +63,11 @@ pub async fn server_mode() {
tokio::spawn(async move { tokio::spawn(async move {
let mut buf = vec![0; 2048]; let mut buf = vec![0; 2048];
loop { loop {
let n = sock_reader.try_read(&mut buf).unwrap(); if let Ok(n) = sock_reader.try_read(&mut buf) {
thread_tx.send(buf[..n].to_vec()).unwrap(); 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(())*/
} }