Changes to be committed:
modified: src/tcp_client.rs modified: src/tcp_server.rs
This commit is contained in:
parent
4fc9ccb860
commit
673413fabc
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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(())*/
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user